> Please "light us" with the trick.
Max,
Here is the trick job I was talking about. Basically you resize the record
into 4 byte chunks and use 4 IFTHEN statements to space out the record.
This job will work for any LRECL 1-9999(assuming you adjust the pos and
lengths) and if you want to handle LRECL (10000 - 32760), then it would be
a 5 byte resize.
//***************************************************************
//** CREATE SAMPLE DATA WITH LRECL=101 AND RECFM=FB **
//***************************************************************
//STEP0050 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
H 01 COMMENT: "01" IS SIGNIFICANT DATA COLUMNS
D 12345XYZ ABC DEF
D 45678GHI JKL MNO
H 05 COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
D 12345XYZ ABC DEF
D 45678GHI JKL MNO
H 10
D 1234567890 ABCDEFGHIJKL
D 9876543210 MNOPQWRSTUVWXYZ
H 98
Y A234567890 ABCDEFGHIJKL
Y B876543210 MNOPQWRSTUVWXYZ
Y C876543210 MNOPQWRSTUVWXYZ
H 99
Z A234567890 ABCDEFGHIJKL
Z B876543210 MNOPQWRSTUVWXYZ
Z C876543210 MNOPQWRSTUVWXYZ
//SORTOUT DD DSN=&&IN,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//SYSIN DD *
OPTION COPY
INREC IFOUTLEN=101,
IFTHEN=(WHEN=(1,3,CH,EQ,C'Y A'),OVERLAY=(3:98C'A',C'@')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'Y B'),OVERLAY=(3:98C'B',C'#')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'Y C'),OVERLAY=(3:98C'C',C'$')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'Z A'),OVERLAY=(3:99C'X',C'@')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'Z B'),OVERLAY=(3:99C'Y',C'#')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'Z C'),OVERLAY=(3:99C'Z',C'$'))
/*
//***************************************************************
//** BLANK OUT THE DETAIL RECORD WITH LENGTH VALUE ON HEADER **
//***************************************************************
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//INP DD DISP=SHR,DSN=&&IN
//TMP DD DSN=&&TMP,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//OUT DD SYSOUT=*
//TOOLIN DD *
RESIZE FROM(INP) TO(TMP) TOLEN(004) USING(CTL1)
RESIZE FROM(TMP) TO(OUT) TOLEN(108) USING(CTL2)
//CTL1CNTL DD *
OMIT COND=(3,2,ZD,LT,1)
INREC IFOUTLEN=108,
IFTHEN=(WHEN=INIT,
BUILD=(C'00',2X,1,101)),
IFTHEN=(WHEN=GROUP,BEGIN=(5,1,CH,EQ,C'H'),
PUSH=(03:7,2)),
IFTHEN=(WHEN=INIT,
OVERLAY=(01:01,4,ZD,ADD,+2,EDIT=(TTTT),
01:5,1,CHANGE=(4,C'H',C'0101'),
NOMATCH=(1,4)))
OUTFIL IFOUTLEN=4,
IFTHEN=(WHEN=GROUP,RECORDS=27,PUSH=(6:1,4,ID=8)),
IFTHEN=(WHEN=INIT,
OVERLAY=(20:SEQNUM,4,ZD,START=0,INCR=4,RESTART=(6,12),
26:06,4,ZD,SUB,20,4,ZD,ZD,LENGTH=4)),
IFTHEN=(WHEN=(26,4,ZD,EQ,-1),OVERLAY=(4:1X)),
IFTHEN=(WHEN=(26,4,ZD,EQ,-2),OVERLAY=(3:2X)),
IFTHEN=(WHEN=(26,4,ZD,EQ,-3),OVERLAY=(2:3X)),
IFTHEN=(WHEN=(26,4,ZD,LE,-4),OVERLAY=(1:4X))
/*
//CTL2CNTL DD *
OUTFIL BUILD=(5,101)
/*
Thanks,
Kolusu
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN