JCL 在一行中合并记录

JCL Combine records in one line

我有 4 个数据集,每个数据集只有一个包含两位数的记录。例如:

File1: 45
File2: 78
File3: 83
File4: 52

我想将数据合并到一个新的数据集中 这样:

4578
8352

如何在 Mainframe-JCL 中对此进行编码?

要完成此任务,请将您的四个输入文件连接起来进行排序:

//STEP1  EXEC PGM=SORT
//SORTIN DD DSN=File1,DISP=SHR
//       DD DSN=File2,DISP=SHR
//       DD DSN=File3,DISP=SHR
//       DD DSN=File4,DISP=SHR
//SORTOUT DD DSN=Combined
//SYSIN DD *
* Combine each pair of records into a single record
 SORT FIELDS=COPY
* Append a sequence number 00,50,00,50,00,...
 INREC BUILD=(1,2,2X,SEQNUM,2,ZD,START=0,INCR=50)
* Reformat the output record depending on the sequence number
 OUTREC IFTHEN=(WHEN=GROUP,BEGIN=(5,2,CH,EQ,C'00'),
  PUSH=(7:1,2)),
  IFTHEN=(WHEN=GROUP,BEGIN=(5,2,CH,EQ,C'50'),
  PUSH=(9:1,2))
* Include only the second record of each group (the 50 records)
 OUTFIL FILES=OUT,INCLUDE=(5,2,CH,EQ,C'50'),BUILD=(7,4)
 END

对于四个输入文件:

文件 1:

45

文件 2:

78

文件 3:

83

文件 4:

52

组合输出文件应该是:

4578
8352

这已通过 Windows v14r3 的 AHLSORT 验证,但应在 z/OS.

上与 DFSORT 或 SYNCSORT 一起使用