Quick synopsis:

* BUILD creates the record from scratch. Also the same as INREC, OUTREC, 
OUTFIL OUTREC - but nice in that you could move it from one to another.

* OVERLAY overwrites specified fields. Similarly movable.

Hoping this helps.

Cheers, Martin

Martin Packer

Systems Investigator & Performance Troubleshooter, IBM

+44-7802-245-584

email: [email protected]

Twitter / Facebook IDs: MartinPacker

Blog: https://mainframeperformancetopics.com

Mainframe, Performance, Topics Podcast Series (With Marna Walle): 
https://anchor.fm/marna-walle

Youtube channel: https://www.youtube.com/channel/UCu_65HaYgksbF6Q8SQ4oOvA



From:   Cameron Conacher <[email protected]>
To:     [email protected]
Date:   26/10/2020 19:31
Subject:        [EXTERNAL] Re: DFSORT Question
Sent by:        IBM Mainframe Discussion List <[email protected]>



Sri
Could you refer me to some documentation to help me better understand the 
differences between BUILD and OVERLAY?

Sent from my iPhone

> On Oct 26, 2020, at 1:10 PM, Sri h Kolusu <[email protected]> wrote:
> 
> Cameron,
> 
> OUTFIL is  last on the list of processing.  i.e
> 
> INCLUDE
> INREC
> SORT
> OUTREC
> OUTFIL
> 
> 
> So your traceit will be printed after OUTREC. Ideally I would use an
> OVERLAY instead of BUILD, so that I can see what exactly what was 
picked.
> 
> I optimized your control cards a bit so (clubbed multiple conditions 
into a
> single condition)
> 
> //STEP0100 EXEC PGM=SORT,PARM='JP1"&LIBNAME"'
> //SYSOUT   DD SYSOUT=*
> //SORTIN   DD DISP=SHR,DSN=Your IEBPTPCH source
> //SORTOUT  DD SYSOUT=*
> //TRACEIT  DD SYSOUT=*
> //SYSIN    DD *
>  INCLUDE COND=((2,3,CH,NE,C'//*'),AND,               * NO COMMENTS
>                (((2,11,CH,EQ,C'MEMBER NAME'),OR,     * MEMBER NAME
>                  (5,30,SS,EQ,C' EXEC ')),AND,        * EXEC PROC
>                  (5,30,SS,NE,C'PGM=')))
> 
>  INREC IFTHEN=(WHEN=GROUP,
>               BEGIN=(2,11,CH,EQ,C'MEMBER NAME'),
>                PUSH=(082:SEQ=8,                      * SEQUENCE #
>                      091:15,08)),                    * MEMBER NAME
> 
>        IFTHEN=(WHEN=(18,05,CH,EQ,C'PROC '),
>             OVERLAY=(100:23,08,                      * PROCNAME
>                      SQZ=(SHIFT=LEFT,PREBLANK=C','),
>                      110:JP1,                        * LIBRARY NAME
>                      160:C'P')),
> 
>        IFTHEN=(WHEN=(11,05,CH,EQ,C'EXEC ',OR,
>                      12,05,CH,EQ,C'EXEC ',OR,
>                      13,05,CH,EQ,C'EXEC ',OR,
>                      14,05,CH,EQ,C'EXEC '),
>               PARSE=(%01=(STARTAFT=C'EXEC ',
>                            ENDBEFR=C',',
>                             FIXLEN=8)),
>             OVERLAY=(100:%01,                        * PROCNAME
>                      110:JP1,                        * LIBRARY NAME
>                      162:C'P'))
> 
>  SORT FIELDS=(091,08,CH,A,                           * MEMBER NAME
>               100,08,CH,A)                           * PROC NAME
> 
>   SUM FIELDS=NONE
> 
>  OUTFIL INCLUDE=(162,1,CH,EQ,C'P'),
>  BUILD=(82,80,SQZ=(SHIFT=LEFT,MID=C';'))
> 
>  OUTFIL FNAMES=TRACEIT
> /*
> 
> 
> If you wish to see the contents before SORT and eliminating the dups 
(SUM),
> then it is quite simple
> 
> Change your SYSIN to the following (use a COPY operation). By default
> DFSORT will write out to the DDname SORTOUT.  So check the contents from
> position 82 thru 162.
> 
> 
> //SYSIN    DD *
>  INCLUDE COND=((2,3,CH,NE,C'//*'),AND,               * NO COMMENTS
>                (((2,11,CH,EQ,C'MEMBER NAME'),OR,     * MEMBER NAME
>                  (5,30,SS,EQ,C' EXEC ')),AND,        * EXEC PROC
>                  (5,30,SS,NE,C'PGM=')))
> 
>  INREC IFTHEN=(WHEN=GROUP,
>               BEGIN=(2,11,CH,EQ,C'MEMBER NAME'),
>                PUSH=(082:SEQ=8,                      * SEQUENCE #
>                      091:15,08)),                    * MEMBER NAME
> 
>        IFTHEN=(WHEN=(18,05,CH,EQ,C'PROC '),
>             OVERLAY=(100:23,08,                      * PROCNAME
>                      SQZ=(SHIFT=LEFT,PREBLANK=C','),
>                      110:JP1,                        * LIBRARY NAME
>                      160:C'P')),
> 
>        IFTHEN=(WHEN=(11,05,CH,EQ,C'EXEC ',OR,
>                      12,05,CH,EQ,C'EXEC ',OR,
>                      13,05,CH,EQ,C'EXEC ',OR,
>                      14,05,CH,EQ,C'EXEC '),
>               PARSE=(%01=(STARTAFT=C'EXEC ',
>                            ENDBEFR=C',',
>                             FIXLEN=8)),
>             OVERLAY=(100:%01,                        * PROCNAME
>                      110:JP1,                        * LIBRARY NAME
>                      162:C'P'))
> 
>  OPTION COPY
> 
> /*
> 
> Further if you have any questions please let me know
> 
> Thanks,
> Kolusu
> DFSORT Development
> IBM Corporation
> 
> 
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN




Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to