Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
Quote:
There will set of such records
Does this mean "there will be only one set of such records" or does it mean "there will be more than one set of such records"?
Quote:
I just need logic so you can take arbitrary position of words in a line.
Will 'STARTED - TIME' always start in position 40?
Will 'ENDED - TIME' always start in position 40?
Will 'TOTAL CPU TIME=' always start in position 65?
Why do you need 'TOTAL ELAPSED TIME=' in the INCLUDE statement since it will keep the same record as 'TOTAL CPU TIME='?
Is the .13 really on a separate line or is it at the end of the TOTAL CPU TIME line?
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
Quote:
There will be more than one such set of records.
Do you want one output record for each set?
Does a set always consist of 'STARTED - TIME', 'ENDED - TIME' and 'TOTAL CPU TIME=" records in that order?
Can we identify the start of a "set" by 'STARTED - TIME' and the end of a "set" by 'TOTAL CPU TIME='? Will that always get us the three records we need?
Can we identify the start of a "set" by 'STARTED - TIME' and the end of a "set" by 'TOTAL CPU TIME='? Will that always get us the three records we need?
Yes set will also be like this
Quote:
Does a set always consist of 'STARTED - TIME', 'ENDED - TIME' and 'TOTAL CPU TIME=" records in that order?
1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R10 - 04:23 ON SAT
OPTION COPY
INREC IFTHEN=(WHEN=GROUP,BEGIN=(40,14,CH,EQ,C'STARTED - TIME'),
END=(65,15,CH,EQ,C'TOTAL CPU TIME='),
PUSH=(135:SEQ=1,136:28,8,144:55,8)),
IFTHEN=(WHEN=GROUP,BEGIN=(40,12,CH,EQ,C'ENDED - TIME'),
END=(65,15,CH,EQ,C'TOTAL CPU TIME='),
PUSH=(152:53,8))
OUTFIL INCLUDE=(135,1,CH,EQ,C'3'),
BUILD=(136,8,C',',80,6,C',',144,8,C',',152,8)
G RECORD TYPE IS F - DATA STARTS IN POSITION 1
I am getting this error in SPOOL when I am running the above sort
ICE143I 0 BLOCKSET COPY TECHNIQUE SELECTED
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AN
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R10 - 04:23 ON SAT AU
OPTION COPY
INREC IFTHEN=(WHEN=GROUP,BEGIN=(40,14,CH,EQ,C'STARTED - TIME'),
END=(65,15,CH,EQ,C'TOTAL CPU TIME='),
PUSH=(135:SEQ=1,136:28,8,144:55,8)),
IFTHEN=(WHEN=GROUP,BEGIN=(40,12,CH,EQ,C'ENDED - TIME'),
END=(65,15,CH,EQ,C'TOTAL CPU TIME='),
PUSH=(152:53,8))
OUTFIL INCLUDE=(135,1,CH,EQ,C'3'),
BUILD=(136,8,C',',80,6,C',',144,8,C',',152,8)
ICE201I G RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE222A 0 33 BYTE FIXED RECORD LENGTH IS NOT EQUAL TO 134 BYTE LRECL FOR SORTOUT
ICE751I 0 C5-K51707 C6-K51707 C7-K51707 C8-K51707 E9-K51707 E7-K51707
ICE052I 3 END OF DFSORT
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
Code:
ICE222A 0 33 BYTE FIXED RECORD LENGTH IS NOT EQUAL TO 134 BYTE LRECL FOR SORTOUT
By my calculations your OUTFIL BUILD statement is creating a 33-BYTE fixed-block output record. You're not trying to somehow override that in your JCL, are you?
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
scorp_rahul23,
If you want your output LRECL to be 134 and you want to add a HEADER, just use an OUTFIL statement like this:
Code:
OUTFIL REMOVECC,
INCLUDE=(135,1,CH,EQ,C'3'),
BUILD=(136,8,C',',80,6,C',',144,8,C',',152,8,134:X),
HEADER1=('the string you want for the header')
If you're not familiar with DFSORT and DFSORT's ICETOOL, I'd suggest reading through "z/OS DFSORT: Getting Started". It's an excellent tutorial, with lots of examples, that will show you how to use DFSORT, DFSORT's ICETOOL and DFSORT Symbols. You can access it online, along with all of the other DFSORT books, from: