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

Reply via email to