Извлечение данных из входного файла с использованием SORT в различные выходные файлы, не обеспечивающие ожидаемые данные - PullRequest
0 голосов
/ 15 ноября 2018

Я использую SORT для обработки входного файла и извлечения записей, которые соответствуют трем различным критериям. Критерии изложены в контрольных заявлениях. Я ищу поля, соответствующие тексту GROUND OPERATIONS, TECHNICAL OPERATI и AIRPORT TRANSFERS. Я хочу, чтобы записи из входных данных, которые соответствуют каждому из условий, были записаны в соответствующий выходной файл. DD для выходного файла: SORTOF01, SORTOF02 и SORTOF03 соответственно.

Я вижу, что во входном файле есть записи, которые соответствуют моим критериям, но при выполнении SORT завершается, но записи не выбираются. Я что-то упускаю, но я не знаю, что это такое. JCL и управляющие операторы для сортировки приведены ниже.

//PROB3   EXEC PGM=SORT                                      
//SORTIN  DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON,DISP=SHR
//SORTOF01 DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLN01,       
//           DISP=(NEW,CATLG,DELETE),                        
//           LIKE=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON        
//SORTOF02 DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLN02,       
//           DISP=(NEW,CATLG,DELETE),                        
//           LIKE=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON        
//SORTOF03 DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLN03,       
//           DISP=(NEW,CATLG,DELETE),                        
//           LIKE=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON        
//SYSPRINT DD SYSOUT=*                                       
//SYSOUT   DD SYSOUT=*                                       
//SYSIN    DD *                                              
  SORT FIELDS=COPY                                           
  INCLUDE COND=(93,3,CH,EQ,C'YES')                           
  OUTFIL FILES=01,INCLUDE=(73,20,CH,EQ,C'GROUND OPERATIONS') 
  OUTFIL FILES=02,INCLUDE=(73,20,CH,EQ,C'TECHNICAL OPERATI') 
  OUTFIL FILES=03,INCLUDE=(73,20,CH,EQ,C'AIRPORT TRANSFERS') 

1 Ответ

0 голосов
/ 18 ноября 2018

Попробуйте изменить длину с 20 на 17, как показано ниже

//SYSIN    DD *                                              
  SORT FIELDS=COPY                                           
  INCLUDE COND=(93,3,CH,EQ,C'YES')                           
  OUTFIL FILES=01,INCLUDE=(73,17,CH,EQ,C'GROUND OPERATIONS') 
  OUTFIL FILES=02,INCLUDE=(73,17,CH,EQ,C'TECHNICAL OPERATI') 
  OUTFIL FILES=03,INCLUDE=(73,17,CH,EQ,C'AIRPORT TRANSFERS') 

Сравнение 20 байтов с 17 байтами, вероятно, будет ложным


Если возникают проблемы с сортировкой, Всегда проверяйте формат записи , если RECFM равен VB , вам необходимо add 4 на все позиции

...