I added an additional DFSORT step which add sequence number in dsname
records before ICETOOL step.
So the ICETOOL without KEYBEGIN parameter got the right result.
//ADDSEQ EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
DSN-AAA 08:00 OPEN
DSN-AAA 08:10 CLOSE
DSN-AAA 08:15 DELETE
DSN-BBB 07:55 DELETE
DSN-CCC 08:05 OPEN
DSN-CCC 08:07 CLOSE
DSN-DDD 08:01 OPEN
DSN-DDD 08:02 CLOSE
DSN-DDD 08:03 OPEN
DSN-DDD 08:04 CLOSE
DSN-DDD 08:05 OPEN
DSN-DDD 08:06 CLOSE
DSN-DDD 08:07 OPEN
DSN-DDD 08:08 CLOSE
/*
//SORTOUT DD SYSOUT=*
//ADDSEQ DD DSN=&&ADDSEQ,DISP=(NEW,PASS),UNIT=SYSDA,
// SPACE=(CYL,(2,1),RLSE),
// DCB=(RECFM=FB,LRECL=125,BLKSIZE=0)
//SYSIN DD *
INREC OVERLAY=(125:SEQNUM,1,ZD,START=1,RESTART=(1,11))
SORT FIELDS=(1,10,CH,A,12,5,CH,A)
OUTFIL FNAMES=ADDSEQ,REMOVECC,
BUILD=(1,125)
/*
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=&&ADDSEQ,DISP=(OLD,DELETE),UNIT=SYSDA
//OUT DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(1,11,CH) KEEPNODUPS WITHEACH -
WITH(26,14) WITH(40,14) WITH(54,14) WITH(68,14) -
WITH(82,14) WITH(96,14) WITH(110,14) USING(CTL1)
/*
//CTL1CNTL DD *
OPTION COPY
INREC IFTHEN=(WHEN=(125,1,ZD,EQ,2),BUILD=(1,11,26:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,3),BUILD=(1,11,40:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,4),BUILD=(1,11,54:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,5),BUILD=(1,11,68:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,6),BUILD=(1,11,82:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,7),BUILD=(1,11,96:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,8),BUILD=(1,11,110:12,14))
OUTFIL BUILD=(1,123)
/*
Again, I appreciate your kind support.
Minoru Massaki (M*M)
Post by Minoru MassakiYaeger-san,
thank very much for telling me the way what I sould code DFSORT control cards.
But unfortunately KEYBEGIN parameter became 'OPERAND DEFINER ERROR' on
my z/OS V1.12 (ADCD system) .
Then I have checked DFSORT Application Programming Guide for z/OS
V1.12, I could not find out KEYBEGIN parameter.
Is KEYBEGIN a new keyword provided by new PTF?
Is there another way to do same things without KEYBEGIN parameter?
Because we don't have a chance to apply the PTF, if the KEYEGIN is
provided by PTF.
I appreciate your support.
Minoru Massaki (M*M)
Post by Frank YaegerPost by Minoru MassakiI have to do following by DFSORT
There is a data set which contains records with dsname, time, and
status as following
(dsname, time, status fields are fixed length)
The records are sorted by dsname and time.
dsn-aaa 08:00 open
dsn-aaa 08:10 close
dsn-aaa 08:15 delete
dsn-bbb 07:55 delete
dsn-ccc 08:05 open
dsn-ccc 08:07 close
I want to get a record by each dsname from multiple records as following.
(each dsname has max 8 records(status))
dsn-aaa 08:00 open 08:10 close 08:15 delete
dsn-bbb 07:55 delete
dsn-ccc 08:05 open 08:07 close
You can use a DFSORT/ICETOOL job like the following. I assumed your
records
were already in order by the dsname as implied by your example. If not,
remove the
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD *
dsn-aaa 08:00 open
dsn-aaa 08:10 close
dsn-aaa 08:15 delete
dsn-bbb 07:55 delete
dsn-ccc 08:05 open
dsn-ccc 08:07 close
dsn-ddd 08:01 open
dsn-ddd 08:02 close
dsn-ddd 08:03 open
dsn-ddd 08:04 close
dsn-ddd 08:05 open
dsn-ddd 08:06 close
dsn-ddd 08:07 open
dsn-ddd 08:08 close
//OUT DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(1,11,CH) KEEPNODUPS WITHEACH -
WITH(26,14) WITH(40,14) WITH(54,14) WITH(68,14) -
WITH(82,14) WITH(96,14) WITH(110,14) USING(CTL1)
//CTL1CNTL DD *
OPTION COPY
INREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,11),PUSH=(125:SEQ=1)),
IFTHEN=(WHEN=(125,1,ZD,EQ,2),BUILD=(1,11,26:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,3),BUILD=(1,11,40:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,4),BUILD=(1,11,54:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,5),BUILD=(1,11,68:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,6),BUILD=(1,11,82:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,7),BUILD=(1,11,96:12,14)),
IFTHEN=(WHEN=(125,1,ZD,EQ,8),BUILD=(1,11,110:12,14))
OUTFIL BUILD=(1,123)
/*
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
--
$***@h!!<B(B - Minoru Massaki (M*M)
E-mail: ***@gmail.com
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@bama.ua.edu with the message: INFO IBM-MAIN