John, I am also really splicing three record types together. The 0200 (base USER records), 0220 (TSO segment), and 0230 (CICS segment). The way that I did it was to
1) run plain SORT to split the 0200, 0220, and 0230 records into separate temporary datasets. 2) SPLICE the 0200 and 0220 records together into another temporary dataset. 3) SPLICE the temp DSN in #2 with the 0230 records. //STEP0003 EXEC PGM=SORT //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SORTIN DD DSN=TSHPN.RACF.FLATFILE,DISP=SHR //SORTOUT DD DSN=&&JUNK,LIKE=TSHPN.RACF.FLATFILE, // DISP=(NEW,PASS) //TYPE200 DD DSN=&&TYPE200,LIKE=TSHPN.RACF.FLATFILE, // DISP=(NEW,PASS) //TYPE220 DD DSN=&&TYPE220,LIKE=TSHPN.RACF.FLATFILE, // DISP=(NEW,PASS) //TYPE230 DD DSN=&&TYPE230,LIKE=TSHPN.RACF.FLATFILE, // DISP=(NEW,PASS) //SYSIN DD * OPTION VLSHRT SORT FIELDS=(COPY) INCLUDE COND=(10,3,CH,GE,C'AAA',AND, 10,3,CH,LE,C'ZZZ',AND, 13,1,CH,GE,C'0',AND, 13,1,CH,LE,C'9',AND, 14,1,CH,GE,C'0',AND, 14,1,CH,LE,C'9',AND, 15,1,CH,GE,C'0',AND, 15,1,CH,LE,C'9',AND, 10,3,CH,NE,C'IBM',AND, 10,3,CH,NE,C'MIB',AND, 10,2,CH,NE,C'TS',AND, 16,1,CH,EQ,C' ') INREC IFTHEN=(WHEN=(5,4,CH,EQ,C'0200',AND, 109,8,CH,EQ,C' '), OVERLAY=(118:C' ')) OUTFIL FNAMES=TYPE200,INCLUDE=(5,4,CH,EQ,C'0200'), BUILD=(1,4,5,4,10,8,19,10,44,1,49,1,54,1, 79,20,100,8,109,8,118,10,385,1,390,1, 395,1,400,1,C'|',28C'\') OUTFIL FNAMES=TYPE220,INCLUDE=(5,4,CH,EQ,C'0220'), BUILD=(1,4,5,4,10,8,18:63C'*',19,7,154,8,209,8,C'|') OUTFIL FNAMES=TYPE230,INCLUDE=(5,4,CH,EQ,C'0230'), BUILD=(1,4,5,4,10,8,18:87C'#',19,3,C'|') /* //STEP0006 EXEC PGM=ICETOOL //TYPE200 DD DSN=&&TYPE200,DISP=(OLD,PASS) // DD DSN=&&TYPE220,DISP=(OLD,PASS) //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=X, // HOLD=YES //TOOLMSG DD SYSOUT=X, // HOLD=YES //DFSMSG DD SYSOUT=X, // HOLD=YES //SYSIN DD DUMMY //TOOLIN DD * SPLICE FROM(TYPE200) - TO(OUTPUT1) - ON(8,8,CH) - USING(SPL1) - KEEPNODUPS - WITH(81,24) - VLENMAX SPLICE FROM(TYPE230) - TO(OUTPUT2) - ON(8,8,CH) - KEEPNODUPS - USING(SPL1) - WITH(105,4) - VLENMAX //* //SPL1CNTL DD * OPTION VLSHRT SORT FIELDS=(8,8,CH,A,5,4,CH,A) //SPL2CNTL DD * OPTION VLSHRT SORT FIELDS=(8,8,CH,A,5,4,CH,A) //OUTPUT1 DD DSN=TSHPN.RACF.OUTPUT1, // DISP=(NEW,CATLG,DELETE), // RECFM=VB,LRECL=6000,BLKSIZE=0,DSORG=PS, // SPACE=(CYL,(200,100),RLSE), // UNIT=(SYSDA,10) //TYPE230 DD DSN=&&TYPE230,DISP=(OLD,PASS) // DD DISP=(OLD,PASS),DSN=*.OUTPUT1,VOL=REF=*.OUTPUT1 //OUTPUT2 DD DSN=TSHPN.RACF.OUTPUT2, // DISP=(NEW,CATLG,DELETE), // RECFM=VB,LRECL=6000,BLKSIZE=0,DSORG=PS, // SPACE=(CYL,(200,100),RLSE), // UNIT=(SYSDA,10) -- John ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html