>>2. The input is a FB file of 150, and these records are just space padded. >>The other log records in the file are of all different lengths, with some >>using the whole 150.
Billy, It is quite simple to parse out the contents. I am going to 2 show different versions. Version 1 : will Parse ALL fields and then we pick and choose which fields we need Version 2 : Will Parse ONLY specific fields of interest. FIXLEN is the parm which determines the length of the parsed field, so adjust it according to your needs. I added a Delimiter of '|' to distinguish the fields. You can remove it if you don't need it Version 1 : //STEP0100 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DISP=SHR,DSN=your Input FB 150 byte file //SORTOUT DD SYSOUT=* //SYSIN DD * OPTION COPY INCLUDE COND=(001,150,SS,EQ,C'MSG004CI') INREC IFTHEN=(WHEN=INIT, BUILD=(001,150,SQZ=(SHIFT=LEFT,MID=C' '))), IFTHEN=(WHEN=INIT, PARSE=(%01=(ENDBEFR=BLANKS,FIXLEN=08), # Job Time %02=(ENDBEFR=BLANKS,FIXLEN=08), # Job num %03=(ENDBEFR=BLANKS,FIXLEN=08), # Job name %04=(ENDBEFR=BLANKS,FIXLEN=08), # Msg number %05=(STARTAFT=C'PARM ', ENDBEFR=C': ',FIXLEN=15), # Prog parm %06=(ENDBEFR=C',',FIXLEN=08), # Job Date %07=(STARTAFT=C'(', ENDBEFR=C') ',FIXLEN=10), # Run Type %08=(ENDBEFR=BLANKS,FIXLEN=15), # Location %09=(ENDBEFR=BLANKS,FIXLEN=06)), # Indicator BUILD=(%03, # Job name C'|', # Delimiter %05, # Prog Parm C'|', # Delimiter %06, # Job Date C'|', # Delimiter %07, # Run Type C'|', # Delimiter %08, # Location C'|', # Delimiter %09, # Indicator C'|')) # Delimiter /* The output from this is PAYW015A|SCHEDULED |20221008|WEEKLY |ALLSITES |10.4 | PAYW052X|REQUEST |20221012|DAILY |OH03 |10.6 | BILLW015|new |20221016|hourly |ASH01 |10.2 | Version 2: Notice the ignored fields with % and pay attention to FIXLEN parm //SYSIN DD * OPTION COPY INCLUDE COND=(001,150,SS,EQ,C'MSG004CI') INREC IFTHEN=(WHEN=INIT, BUILD=(001,150,SQZ=(SHIFT=LEFT,MID=C' '))), IFTHEN=(WHEN=INIT, PARSE=(%=(ENDBEFR=BLANKS), # Job Time %=(ENDBEFR=BLANKS), # Job num %03=(ENDBEFR=BLANKS,FIXLEN=08), # Job name %=(ENDBEFR=BLANKS), # Msg number %05=(STARTAFT=C'PARM ', ENDBEFR=C': ',FIXLEN=03), # Prog parm %06=(ENDBEFR=C',',FIXLEN=08), # Job Date %07=(STARTAFT=C'(', ENDBEFR=C') ',FIXLEN=01), # Run Type %08=(ENDBEFR=BLANKS,FIXLEN=15), # Location %09=(ENDBEFR=BLANKS,FIXLEN=06)), # Indicator BUILD=(%03, # Job name C'|', # Delimiter %05, # Prog Parm C'|', # Delimiter %06, # Job Date C'|', # Delimiter %07, # Run Type C'|', # Delimiter %08, # Location C'|', # Delimiter %09, # Indicator C'|')) # Delimiter /* The output from this is PAYW015A|SCH|20221008|W|ALLSITES |10.4 | PAYW052X|REQ|20221012|D|OH03 |10.6 | BILLW015|new|20221016|h|ASH01 |10.2 | Thanks, Kolusu DFSORT Development IBM Corporation ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN