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

Reply via email to