superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
Hey, it's my turn for one!
The input dataset is a report, RECFM=FBA, LRECL=133. The output dataset is a QSAM dataset, RECFM=FB, LRECL=119.
I need to insert the date from the page's header line into each of the detail lines for that page.
Sample input:
Code: |
1COMPUTER ASSOCIATES MAILBOX REPORT PAGE 343
TIME SCHEDULE JOB NAME JNO ST MNO USERID SSID MESSAGES ISSUED ON 07/23/07
23.58.43 TRNSFR01 P1130TFX 01 40 060 SCD1 COMPLETED AT 23.58.43 CODE:00000 AT MVSJESD ON SYSD
23.58.46 SWAT001 P5000SWD 01 40 060 SCD1 COMPLETED AT 23.58.46 CODE:00000 AT MVSJESD ON SYSD
23.58.46 SWAT001 P5010SWD 01 40 069 SCD1 JOB STARTED AT 23.58.46 AT MVSJESD ON SYSD
1COMPUTER ASSOCIATES MAILBOX REPORT PAGE 344
TIME SCHEDULE JOB NAME JNO ST MNO USERID SSID MESSAGES ISSUED ON 07/24/07
00.00.00 NEWISSUE P5330PTD 01 40 069 SCD1 JOB STARTED AT 0.00.00 AT MVSJESD ON SYSD
00.00.07 NEWISSUE P5330PTD 01 40 060 SCD1 COMPLETED AT 0.00.07 CODE:00001 AT MVSJESD ON SYSD
00.00.08 NEWISSUE P5340PTD 01 40 069 SCD1 JOB STARTED AT 0.00.08 AT MVSJESD ON SYSD
|
Sample output:
Code: |
235843 20070723 TRNSFR01 P1130TFX SCD1 COMPLETED AT 23.58.43 CODE:00000 AT MVSJESD ON SYSD
235846 20070723 SWAT001 P5000SWD SCD1 COMPLETED AT 23.58.46 CODE:00000 AT MVSJESD ON SYSD
235846 20070723 SWAT001 P5010SWD SCD1 JOB STARTED AT 23.58.46 AT MVSJESD ON SYSD
...
000000 20070724 NEWISSUE P5330PTD SCD1 JOB STARTED AT 0.00.00 AT MVSJESD ON SYSD
000007 20070724 NEWISSUE P5330PTD SCD1 COMPLETED AT 0.00.07 CODE:00001 AT MVSJESD ON SYSD
|
which is:
Time Value from columns 2-9 with the decimal point removed.
Date Value from the header line "MESSAGES ISSUED ON mm/dd/yy" in yyyymmdd format.
Columns 19-27 asis.
Columns 49-133 asis. |
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's a DFSORT/ICETOOL job that will do what you asked for:
Code: |
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=... input file (FBA/133)
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS)
//OUT DD RECFM=FB,DSN=... output file (FB/120)
//TOOLIN DD *
COPY FROM(IN) TO(T1) USING(CTL1)
SPLICE FROM(T1) TO(OUT) ON(121,8,ZD) -
WITHALL WITH(1,7) WITH(16,105) USING(CTL2)
/*
//CTL1CNTL DD *
OMIT COND=(1,9,CH,EQ,C'1COMPUTER',OR,1,9,CH,EQ,C' ')
INREC IFTHEN=(WHEN=INIT,OVERLAY=(134:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(2,4,CH,EQ,C'TIME'),
OVERLAY=(134:SEQNUM,8,ZD)),
IFTHEN=(WHEN=NONE,
OVERLAY=(142:SEQNUM,8,ZD,
134:134,8,ZD,SUB,142,8,ZD,M11,LENGTH=8))
OUTREC IFTHEN=(WHEN=(2,4,CH,EQ,C'TIME'),
BUILD=(8:C'20',79,2,73,2,76,2,121:134,8)),
IFTHEN=(WHEN=NONE,
BUILD=(2,8,UFF,EDIT=(TTTTTT),
17:11,17,35:49,85,121:134,8))
/*
|
|
|