Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Based on what you've told me, I believe the following DFSORT/ICETOOL job will do what you want. You'll need z/OS DFSORT V1R5 PTF UK90007 or DFSORT R14 PTF UK90006 (April, 2006) in order to use INREC with SELECT. If you don't have the April, 2006 PTF, ask your System Programmer to install it (it's free). For complete details on all of the new DFSORT and ICETOOL functions available with the April, 2006 PTF, see:
Use [URL] BBCode for External Links
Code: |
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=... input file (FB/23)
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS)
//OUT1 DD DSN=... output file1 (FB/23)
//OUT2 DD DSN=... output file2 (FB/23)
//TOOLIN DD *
SELECT FROM(IN) TO(T1) ON(1,23,CH) FIRST USING(CTL1)
SORT FROM(T1) USING(CTL2)
/*
//CTL1CNTL DD *
INREC OVERLAY=(25:SEQNUM,1,ZD,RESTART=(1,15),
27:16,8,SFF,TO=ZD,LENGTH=5,
33:27,5)
OUTFIL FNAMES=T1,
IFTHEN=(WHEN=(25,1,ZD,EQ,+2),
OVERLAY=(33:27,5,ZD,MUL,-1,TO=ZD,LENGTH=5))
/*
//CTL2CNTL DD *
SORT FIELDS=(1,15,CH,A)
OPTION ZDPRINT
SUM FIELDS=(25,1,ZD,27,5,ZD,33,5,ZD)
OUTFIL FNAMES=OUT1,
BUILD=(1,15,17:27,5,ZD,EDIT=(STTT.TT),SIGNS=(+,-))
OUTFIL FNAMES=OUT2,
IFTHEN=(WHEN=(25,1,ZD,EQ,+1),
BUILD=(1,15,17:C'+000.00')),
IFTHEN=(WHEN=NONE,
BUILD=(1,15,17:33,5,ZD,EDIT=(STTT.TT),SIGNS=(+,-)))
/*
|
|
|