Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
You can use a DFSORT/ICETOOL job like the following to do what you asked for. I assumed when you said position 9, you were not counting the RDW in positions 1-4, so the actual position is 13. I also assumed the bad record had 'BAD' in positions 13-30. The job can be changed appropriately if my assumptions are incorrect.
Code: |
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=... input file (VB)
//CTL2CNTL DD DSN=&&C2,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS)
//OUT1 DD DSN=... output file1 (VB)
//OUT2 DD DSN=... output file2 (VB)
//OUT3 DD DSN=... output file3 (VB)
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
COPY FROM(IN) USING(CTL2)
//CTL1CNTL DD *
INREC BUILD=(1,4,5:SEQNUM,8,ZD,START=0,13:13,18)
OUTFIL FNAMES=CTL2CNTL,VTOF,
INCLUDE=(13,18,CH,EQ,C'BAD'),
BUILD=(C' OUTFIL FNAMES=OUT1,ENDREC=',5,8,80:X,/,
C' OUTFIL FNAMES=OUT2,STARTREC=',5,8,ZD,ADD,+1,TO=ZD,LENGTH=8,
C',ENDREC=',5,8,ZD,ADD,+1,TO=ZD,LENGTH=8,/,
C' OUTFIL FNAMES=OUT3,STARTREC=',5,8,ZD,ADD,+2,TO=ZD,LENGTH=8)
/*
|
|
|