amitchadha30
New User
Joined: 30 Sep 2008 Posts: 9 Location: Chennai
|
|
|
|
My input file contains records like:
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
Every record consists of date.
My output file looks like: it consists of header and trailer.
Header00140 12520080915abc
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
Trailer017825
The date in header in output file is run date of job. But, we want to change the date should be the date that is contained in maximum number of records in the input. Such as we need to count the occurences of date from input file,and want to change the date in header to that date. Like in example: above input file consists 20080927 four times- so my requirement is to change output file header date i.e. 20080915 to 20080927. |
|
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2481 Location: @my desk
|
|
|
|
Amit,
Here's a SYNCTOOL job which works for your requirement. I have assumed the output file has the same attributes as that of input (FBA, LRECL=133).
Code: |
//STEP1 EXEC PGM=SYNCTOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//T1 DD DSN=&&T1,DISP=(,PASS),DCB=RECFM=FB
//C1 DD DSN=&&C1,DISP=(,PASS)
//IN DD DSN= Input file
//OUT DD DSN= Output file
//TOOLIN DD *
SORT FROM(IN) TO(T1) USING(CTL1)
SORT FROM(T1) TO(C1) USING(CTL2)
COPY FROM(IN) TO(OUT) USING(CTL3)
//CTL1CNTL DD *
SORT FIELDS=(17,8,CH,A)
OUTREC BUILD=(17,8,9:SEQNUM,8,ZD,RESTART=(17,8))
//CTL2CNTL DD *
SORT FIELDS=(9,8,CH,D)
OUTFIL REMOVECC,ENDREC=1,
BUILD=(C' OUTFIL HEADER1=(''Header XXXXXXX '',C''',1,8,C'''),',/,
C' TRAILER1=(''Trailer YYYY ''),BUILD=(2,132)')
//CTL3CNTL DD DSN=*.C1,VOL=REF=*.C1,DISP=(OLD,PASS) |
OUT
Code: |
Header XXXXXXX 20080927
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080926abcdefghijkl
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080925abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
abcdefghijklmno20080927abcdefghijkl
Trailer YYYY |
|
|