我有一个具有不同类型记录的输入文件。不同类型的记录由第 1 列标识。例如,对于标题记录,column1 的值为 0,对于尾部记录,column1 的值为 9。对于其他记录,column1 的值为 1 到 5。文件尾部的计数为每种类型的记录。预告片如下: column1 的值为 9,以便将其识别为预告片记录 Coulmn2-10 具有记录类型 1 的计数 第 11-19 列包含记录类型 2 的计数 Cilumn20-28 具有记录类型 3 的计数 Coulmn29-37 有记录类型 4 的计数 第 38-46 列有记录类型 5 的计数 因此,在进行某种排序后,包含数据已在输出文件中更新。那么如何使用JCL更新预告片记录的计数。
爱资哈尔,
假设您的输入有 RECFM=FB 且 LRECL=80,以下 DFSORT JCL 将为您提供所需的结果。
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
0 HEADER
1 AAA 101 PICK
1 AAA 101 PICK
1 AAA 101 DROP
1 AAA 101 PICK
2 ABC 101 PICK
2 ABC 201 PICK
2 ABC 301 DROP
3 DEF 101 PICK
3 DEF 201 350
4 XQW 201 PICK
5 REW 201 PICK
5 REW 201 PICK
5 REW 201 DROP
5 REW 201 PICK
5 REW 201 PICK
9000000004000000003000000002000000001000000006
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OMIT COND=(11,4,CH,EQ,C'DROP')
OPTION COPY
INREC OVERLAY=(81:C'00000',
81:01,01,CHANGE=(5,C'1',C'10000',
C'2',C'01000',
C'3',C'00100',
C'4',C'00010',
C'5',C'00001'),
NOMATCH=(81,5))
OUTFIL BUILD=(1,80),
IFTRAIL=(TRLID=(1,1,CH,EQ,C'9'),
TRLUPD=(02:TOT=(81,1,ZD,M11,LENGTH=9),
11:TOT=(82,1,ZD,M11,LENGTH=9),
20:TOT=(83,1,ZD,M11,LENGTH=9),
29:TOT=(84,1,ZD,M11,LENGTH=9),
38:TOT=(85,1,ZD,M11,LENGTH=9)))
/*
这个的输出是
0 HEADER
1 AAA 101 PICK
1 AAA 101 PICK
1 AAA 101 PICK
2 ABC 101 PICK
2 ABC 201 PICK
3 DEF 101 PICK
3 DEF 201 350
4 XQW 201 PICK
5 REW 201 PICK
5 REW 201 PICK
5 REW 201 PICK
5 REW 201 PICK
9000000003000000002000000002000000001000000004