Можно достичь ожидаемого результата за один шаг, используя ICETOOL.
Я сделал следующие предположения:
- Оба входных набора данных имеют LRECL 80.
- В обоих входных наборах данных одинаковое количество записей.
Записи во входном файле 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.
Надеюсь, это поможет!