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

Reply via email to