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 [email protected] with the message: INFO IBM-MAIN