Sri h Kolusu wrote: >> I am having problems with variable record lengths where minimum record >> length is 211, 4 (RDW) plus 207 characters. The rest of the record is >> varying from 0 (zero) to max of LRECL=32756. I am just interested in the >> first 1000 characters of the input records. (See below for the input record >> sample)
First thing first - Where I said 211, it musts be 210 and where I said 207, it must be 206. Browsing the input dataset, it starts at 1 and last column ends at 206 and then there are more columns if present up to 32756 columns as per LRECL. Documentation shows offsets as starting at 0 and the variable part is starting at 207. ICETOOL statements for first few columns starts on column 5 (4 for RDW + 1). Pretty confusing, eh... ;-) >There are couple of ways to handle. I was also considering the VTOF statement as a work-around: As documented: "By default, VTOF or CONVERT automatically uses VLFILL=X'40' (blank fill byte) to allow processing of variable-length input records which are too short to contain all specified BUILD or OUTREC fields. You can specify VLFILL=byte to change the fill byte." > You can pad the 712 byte with a SPACE. That would allow CSVARDATA contents > as is if a record happens to have all the 550 bytes >//VLSHCNTL DD * > OPTION COPY > INREC OVERLAY=(712:X) That resolved my problem! This is the magic solution! Thanks! I eventually ended up on this: ... HEADER('Shunted') ON(189,1,CH) - HEADER('CSVARDATA') ON(211,500,CH) /* //VLSHCNTL DD * OPTION VLSHRT,COPY INREC OVERLAY=(712:X) /* Which shows me this correct output: Activity Status Shunted CSVARDATA -------- ------ ------- -------------------------------------- MQPUT C N AMD 4 PHASE1 C N PHASE2 C N MQGET C N MQPUTPRP C N AMD MQSTR Records for PHASE1, PHASE2 and MQGET are exactly 206 bytes long and were filled up by INREC OVERLAY=(712:X) so it could be included in CSVARDATA to avoid ICE218A. The other two lines are containing hex values in CSVARDATA. The people needing these reports need to issue SET HEX ON to see the actual values. > You can INCLUDE records with a minimum length of 711. Since the input is a > VB file you can validate the RDW and INCLUDE those Records >//VLSHCNTL DD * > OPTION COPY,VLSCMP > INCLUDE COND=(1,2,BI,GE,711) Thanks. I will also look at that. Thanks again Sri for your very helpful and kind assistance. I really appreciate it much! Kudos to you! Groete / Greetings Elardus Engelbrecht ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN