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 <[email protected]>:
> 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 <[email protected]>:
>> Minoru Massaki at IBM Mainframe Discussion List <[email protected]>
>> 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) - [email protected]
>> 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 [email protected] with the message: INFO IBM-MAIN
>
>
>
> --
>
> 全先 実 - Minoru Massaki (M*M)
> E-mail: [email protected]
--
全先 実 - Minoru Massaki (M*M)
E-mail: [email protected]
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN