Charles, You can parse up to 100 bad records (%00-%99) . If you have more than 100 bad records per large record, then you may have to do another pass of data.
Thanks, Sri Hari Kolusu DFSORT Development IBM Mainframe Discussion List <[email protected]> wrote on 01/15/2013 10:41:28 AM: > From: Charles Mills <[email protected]> > To: [email protected], > Date: 01/15/2013 10:42 AM > Subject: Re: Break a dataset into new record boundaries? > Sent by: IBM Mainframe Discussion List <[email protected]> > > Sri - > > Thanks! That will do it, assuming I do have ICETOOL. I will have to check. > > The only issue is that I don't know what the maximum number of "real" > records per "bad" record is. But as I said, can live with a 90% job and then > figure out how to manually repair the remaining 10%. > > Currently have another crisis on my plate but I may give this a try. Thanks > again, > > Charles > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:[email protected]] On > Behalf Of Sri h Kolusu > Sent: Tuesday, January 15, 2013 10:20 AM > To: [email protected] > Subject: Re: Break a dataset into new record boundaries? > > Charles, > > You can use RESIZE operator to break a large record into small records. I > assumed that each record starts with X'5B' ($) and each record has a max > length of 200 bytes and you have a max of 10 records in a single large FB > record. > > //STEP0100 EXEC PGM=ICETOOL > //TOOLMSG DD SYSOUT=* > //DFSMSG DD SYSOUT=* > //IN DD * > $AAAAAAAAAAAAAAAAAAA$BBBBBBB$CCCCCC$DDD > //OUT DD SYSOUT=* > //TOOLIN DD * > RESIZE FROM(IN) TO(OUT) TOLEN(200) USING(CTL1) > //* > //CTL1CNTL DD * > OPTION COPY > INREC PARSE=(%01=(ABSPOS=2,ENDBEFR=C'$',FIXLEN=199), > %02=(ENDBEFR=X'5B',FIXLEN=199), > %03=(ENDBEFR=X'5B',FIXLEN=199), > %04=(ENDBEFR=X'5B',FIXLEN=199), > %05=(ENDBEFR=X'5B',FIXLEN=199), > %06=(ENDBEFR=X'5B',FIXLEN=199), > %07=(ENDBEFR=X'5B',FIXLEN=199), > %08=(ENDBEFR=X'5B',FIXLEN=199), > %09=(ENDBEFR=X'5B',FIXLEN=199), > %10=(ENDBEFR=X'5B',FIXLEN=199)), > BUILD=(X'5B',%01,X'5B',%02,X'5B',%03,X'5B',%04,X'5B',%05, > X'5B',%06,X'5B',%07,X'5B',%08,X'5B',%09,X'5B',%10) > > OUTFIL FTOV,VLTRIM=C' ',OMIT=(2,199,CH,EQ,C' ') > //* > > The output from this job is > > $AAAAAAAAAAAAAAAAAAA > $BBBBBBB > $CCCCCC > $DDD > > > Check this link which explains in detail about RESIZE operator. > > http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA60/7.13 > > If that is not what you want please show us a sample data and desired output > along with DCB properties of both input and output.. > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
