icetool читает входной файл с датой и накладывает на другой файл - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть входной файл (80 знаков) с датой в позиции от 1 до 10, формат YYYY-MM-DD.Я хотел бы выделить эту дату, а затем записать ее в другой существующий файл (возможно, использовать оверлей?).В этом существующем файле я хочу, чтобы дата заменяла ГГГГ-ММ-ДД.этот гггг-мм-дд находится в позиции 59 в выходном файле.

Я не уверен, что мы можем выполнить это только за один шаг или нам нужно два шага.

ВХОДНОЙ ФАЙЛ (80 символов): 2018-06-28, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Я хочу переопределить параметр выходного файла YYYY-MM-DD.ВЫХОДНОЙ ФАЙЛ (80 символов): ФАЙЛ = / DATA / EXT / RECEPTION / TEST01_DTE / PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ ФАЙЛА ФАЙЛА: FILE = / DATA / EXT / RECEPTION_TESTPT_D.2018-06-28.QS

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

вот как я решаю проблему:

//EXTRCT EXEC PGM=SORT                                            
//SYSOUT DD SYSOUT=*                                              
//SORTIN DD 
        DSN=INPUT.DATE.CTL.FILE,DISP=SHR 
//SORTOUT DD 
        DSN=OUTPUT.FILE.TEST,    
//      DISP=(,CATLG),UNIT=SYSDA,SPACE=(TRK,(10,10),RLSE)       
//SYSIN DD *                                                      
 OPTION COPY                                                      
 OUTFIL REMOVECC,                                                      
 OUTREC FIELDS= 
      (C'FILE=/DATA/EXT/TEST01_DTE/PASSING_DTE_PARAM_CTL.',59:1,10,         
       C'.QS         ')
/*                                                                
//                                                                

ФАЙЛ ВЫХОДА Результат будет:

ФАЙЛ = / DATA / EXT / TEST01_DTE / PASSING_DTE_PARAM_CTL.2019-02-20.QS

Я не хотел использовать ключ соединения.

Спасибо

0 голосов
/ 19 февраля 2019

Можно достичь ожидаемого результата за один шаг, используя ICETOOL.

Я сделал следующие предположения:

  1. Оба входных набора данных имеют LRECL 80.
  2. В обоих входных наборах данных одинаковое количество записей.

Записи во входном файле 1:

FILE=/DATA/EXT/RECEPTION/TEST01_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST02_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST03_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST04_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST05_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST06_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS

Записи во входном файле 2:

2018-06-28,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-06-29,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-06-30,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-07-01,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-07-02,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-07-03,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Задание:

//Z31084A  JOB 1,NOTIFY=&SYSUID            
//SRTJK EXEC PGM=ICETOOL                   
//TOOLMSG DD SYSOUT=*                      
//DFSMSG DD SYSOUT=*                       
//INA DD DSN=Z31084.DATASET.A,DISP=SHR     
//INB DD DSN=Z31084.DATASET.B,DISP=SHR     
//JNA DD DSN=&&JNA,DISP=(,DELETE),         
//       SPACE=(CYL,(1,0),RLSE),           
//       DCB=(LRECL=84,RECFM=FB,BLKSIZE=0) 
//JNB DD DSN=&&JNB,DISP=(,DELETE),         
//       SPACE=(CYL,(1,0),RLSE),           
//       DCB=(LRECL=84,RECFM=FB,BLKSIZE=0) 
//OUT DD SYSOUT=*                          
//TOOLIN DD *                              
 SORT FROM(INA) TO(JNA) USING(CTL1)        
 SORT FROM(INB) TO(JNB) USING(CTL1)        
 SORT JKFROM TO(OUT) USING(CTL3)           
/*                                         
//CTL1CNTL DD *                            
 SORT FIELDS=COPY                          
 OUTREC FIELDS=(1:1,80,81:SEQNUM,4,ZD)     
/*                                         
//CTL3CNTL DD *                            
 JOINKEYS F1=JNA,FIELDS=(81,4,A)           
 JOINKEYS F2=JNB,FIELDS=(81,4,A)           
 REFORMAT FIELDS=(F1:1,58,F2:1,10,F1:69,12)
 SORT FIELDS=COPY                          
/* 

Вывод:

FILE=/DATA/EXT/RECEPTION/TEST01_DTE/PASSING_DTE_PARAM_CTL.2018-06-28.QS
FILE=/DATA/EXT/RECEPTION/TEST02_DTE/PASSING_DTE_PARAM_CTL.2018-06-29.QS
FILE=/DATA/EXT/RECEPTION/TEST03_DTE/PASSING_DTE_PARAM_CTL.2018-06-30.QS
FILE=/DATA/EXT/RECEPTION/TEST04_DTE/PASSING_DTE_PARAM_CTL.2018-07-01.QS
FILE=/DATA/EXT/RECEPTION/TEST05_DTE/PASSING_DTE_PARAM_CTL.2018-07-02.QS
FILE=/DATA/EXT/RECEPTION/TEST06_DTE/PASSING_DTE_PARAM_CTL.2018-07-03.QS

Согласно моему подходу, я заполняю порядковые номера в концезапись в обоих входных файлах, и я использую порядковые номера в качестве ключа в приложении JOINKEYS.

Надеюсь, это поможет!

...