jzhardy
Active User
Joined: 31 Oct 2006 Posts: 131 Location: brisbane
|
|
|
|
I have an input file (NOT SORTED) that I want to set sequence numbers on, with a RESTART that comprises segemented fields. Consider the following input :
111 aaa 222 0000
111 bbb 222 0000
111 ccc 223 0000
111 ddd 224 0000
111 ddd 224 0000
as output I want :
111 aaa 222 0001
111 bbb 222 0002
111 ccc 223 0001
111 ddd 224 0001
111 ddd 224 0002
my problem is that I want to sort and overlay with SEQNUM with a RESTART on (1,3) and (9,3), but OVERLAY seems to want contiguous data.
So ... I can achive this using a control statement like :
INREC=() * reformat input to put the key fields together.
SORT FIELDS=(...)
OUTREC OVERLAY=( ... RESTART=(1,6) )
my problem is that I then have to reformat the output to put it back in the original format ... is there a more
elegant approach .... |
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
I'm not quite sure what you're looking for, but how about this DFSORT job?
Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
111 aaa 222 0000
111 bbb 222 0000
111 ccc 223 0000
111 ddd 224 0000
111 ddd 224 0000
//SORTOUT DD SYSOUT=*
//SYSIN DD *
INREC OVERLAY=(81:1,3,9,3)
SORT FIELDS=(1,3,CH,A,9,3,CH,A)
OUTREC IFOUTLEN=80,
IFTHEN=(WHEN=INIT,OVERLAY=(13:SEQNUM,4,ZD,RESTART=(81,6)))
/*
|
|
|