Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
escapa,
The following DFSORT/ICETOOL JCL will give you the desired results. I have taken the ascending order for the key3
Code: |
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=Your input FB 33 byte file,DISP=SHR
//T1 DD DSN=&&T1,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE)
//OUT DD SYSOUT=*
//TOOLIN DD *
SORT FROM(IN) USING(CTL1)
COPY FROM(T1) USING(CTL2)
//*
//CTL1CNTL DD *
SORT FIELDS=(1,12,CH,A,26,8,CH,A),EQUALS
OUTREC IFTHEN=(WHEN=INIT,BUILD=(157:C'99991231',
1,33,X,SEQNUM,1,ZD,RESTART=(1,12))),
IFTHEN=(WHEN=GROUP,BEGIN=(199,1,ZD,EQ,1),PUSH=(001:165,33)),
IFTHEN=(WHEN=GROUP,BEGIN=(199,1,ZD,EQ,2),PUSH=(042:165,33)),
IFTHEN=(WHEN=GROUP,BEGIN=(199,1,ZD,EQ,3),PUSH=(083:165,33)),
IFTHEN=(WHEN=(199,1,ZD,EQ,4),OVERLAY=(124:165,33),HIT=NEXT),
IFTHEN=(WHEN=(042,12,CH,NE,165,12,CH),OVERLAY=(042:115X),HIT=NEXT),
IFTHEN=(WHEN=(083,12,CH,NE,165,12,CH),OVERLAY=(083:066X),HIT=NEXT),
IFTHEN=(WHEN=(124,12,CH,NE,165,12,CH),OVERLAY=(124:33X),HIT=NEXT),
IFTHEN=(WHEN=(067,8,CH,GT,C' '),OVERLAY=(34:67,8),HIT=NEXT),
IFTHEN=(WHEN=(108,8,CH,GT,C' '),OVERLAY=(75:108,8),HIT=NEXT),
IFTHEN=(WHEN=(149,8,CH,GT,C' '),OVERLAY=(116:149,8))
OUTFIL FNAMES=T1,REMOVECC,NODETAIL,BUILD=(165X),
SECTIONS=(165,12,TRAILER3=(1,164,199,1))
//*
//CTL2CNTL DD *
OUTFIL FNAMES=OUT,IFOUTLEN=41,
IFTHEN=(WHEN=(165,1,ZD,EQ,1),BUILD=(1,33,157,8)),
IFTHEN=(WHEN=(165,1,ZD,EQ,2),BUILD=(1,41,/,42,33,157,8)),
IFTHEN=(WHEN=(165,1,ZD,EQ,3),BUILD=(1,41,/,42,41,/,83,33,157,8)),
IFTHEN=(WHEN=(165,1,ZD,EQ,4),BUILD=(1,41,/,42,41,/,83,41,124,41))
//* |
|
|