Code: Select all
//JS010 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//*
//IN DD *
HEAD1
11111
22222
33333
44444
TAIL1
//*
//OUT1 DD DSN=ABC.OUT1,
// DISP=(MOD,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=5,BLKSIZE=0)
//OUT2 DD DSN=ABC.OUT2,
// DISP=(MOD,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=5,BLKSIZE=0)
//LIST1 DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
COPY FROM(IN) USING(CTL2)
COPY FROM(IN) USING(CTL3)
//CTL1CNTL DD *
OPTION STOPAFT=1
OUTFIL FNAMES=(OUT1,OUT2)
//CTL2CNTL DD *
OPTION SKIPREC=1,STOPAFT=4
OUTFIL FNAMES=(OUT1,OUT2),SPLIT
//CTL3CNTL DD *
OPTION SKIPREC=5
OUTFIL FNAMES=(OUT1,OUT2)
Note : The order of records will change if we use SPLIT function. If the order matters then we should go by STARTREC,ENDREC.
Code: Select all
SORT FIELDS=COPY
OUTFIL FILES=01,STARTREC=AAAA,ENDREC=BBBB
OUTFIL FILES=02,STARTREC=BBBB+1,ENDREC=CCCC
Code: Select all
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
COPY FROM(IN) USING(CTL2)
COPY FROM(IN) USING(CTL3)
//CTL1CNTL DD *
OPTION STOPAFT=1
OUTFIL FNAMES=(OUT1,OUT2) -> This copies the headers into both files.
//CTL2CNTL DD *
OPTION SKIPREC=1
OUTFIL FNAMES=(OUT1,OUT2),SPLIT -> This splits the records evenly,
(But we need to avoid last record being SPLIT here)
Or generic way of doing using any means is fine.
Thanks,
Veera.