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) 2012年2月28日11:21 Minoru Massaki <mmass...@gmail.com>: > Yaeger-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) > > > 2012/2/28 Frank Yaeger <yae...@us.ibm.com>: >> Minoru Massaki at IBM Mainframe Discussion List <IBM-MAIN@bama.ua.edu> >> wrote on 02/27/2012 10:46:57 AM: >>> I 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 >> OPTION COPY statement: >> >> //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) >> /* >> >> Frank Yaeger - DFSORT Development Team (IBM) - yae...@us.ibm.com >> 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, >> send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN > > > > -- > > 全先 実 - Minoru Massaki (M*M) > E-mail: mmass...@gmail.com -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN