I thought we lost you when you retired.  Good to hear that you can't keep you 
there! :)



Best Regards,
Thomas Berg
___________________________________________________________________ 
Thomas Berg   Specialist   zOS/RQM/IT Delivery   Swedbank AB (Publ)


  

> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
> Behalf Of
> Steve Comstock
> Sent: Thursday, October 23, 2014 10:33 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: DFSORT/ICETOOL pondering
> 
> On 10/23/2014 10:22 AM, Thomas Berg wrote:
> > Thanks Kolusu!
> >
> > It seems so easy when you (and Norbert) explains!  :)
> > Of course I should RTFM, but when you are ignorant it takes time find the 
> > relevant pieces.
> 
> Or ... you could take a class. I'd come out of retirement for a bit
> in order to teacch in Stockholm again. :-)
> 
>    http://www.trainersfriend.com/JCL_courses/B625descrpt.htm
> 
> (also pointed at from:
> 
>    http://www-01.ibm.com/support/docview.wss?rs=0&uid=isg3T7000082
> 
> )
> 
> 
> -Steve Comstock
> 
> 
> >
> > (I wonder how many work hours the help here at IBM-MAIN have saved?)
> >
> >
> >
> > Best Regards,
> > Thomas Berg
> > ___________________________________________________________________
> > Thomas Berg   Specialist   zOS/RQM/IT Delivery   Swedbank AB (Publ)
> >
> >> -----Original Message-----
> >> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
> >> Behalf Of
> Sri h
> >> Kolusu
> >> Sent: Thursday, October 23, 2014 6:09 PM
> >> To: IBM-MAIN@LISTSERV.UA.EDU
> >> Subject: Re: DFSORT/ICETOOL pondering
> >>
> >> Thomas,
> >>
> >> As others have explained it is quite simple to get the desired results. I
> >> am showing examples for both FB and VB files using symbols. With symbols
> >> you have the flexibility of changing it and then not worry about changing
> >> the control cards.
> >>
> >> A brief explanation of the job.
> >>
> >> 1. The first IFTHEN with WHEN=INIT, we will number all records in the file
> >> with a 8 byte sequence number.
> >>
> >> 2. The next 2 IFTHEN statements will validate that sequence number and
> >> build the record. If you have more ranges then you can add IFTHEN
> >> statements before the last IFTHEN with WHEN=NONE statement
> >>
> >>
> >> //STEP0100 EXEC PGM=SORT
> >> //SYSOUT   DD SYSOUT=*
> >> //SYMNOUT  DD SYSOUT=*
> >> //SYMNAMES DD *
> >> FILE-REC-LENGTH,1,80,CH
> >> RECORD-SEQ-NUMBER,*,8,ZD
> >> REQD-DATA1,1,3,CH
> >> REQD-DATA2,31,10,CH
> >> REQD-DATA3,71,10,CH
> >> RECD-SELECT-NUM1,5
> >> RECD-SELECT-NUM2,7
> >> RECD-SELECT-NUM3,9
> >> //SORTIN   DD DISP=SHR,DSN=Your Input FB file
> >> //SORTOUT  DD SYSOUT=*
> >> //SYSIN    DD *
> >>    OPTION COPY
> >>    INREC IFTHEN=(WHEN=INIT,OVERLAY=(RECORD-SEQ-NUMBER:SEQNUM,8,ZD)),
> >>
> >>    IFTHEN=(WHEN=(RECORD-SEQ-NUMBER,GT,RECD-SELECT-NUM1,AND,
> >>                  RECORD-SEQ-NUMBER,LE,RECD-SELECT-NUM2),
> >>    BUILD=(REQD-DATA1,REQD-DATA2)),
> >>
> >>    IFTHEN=(WHEN=(RECORD-SEQ-NUMBER,GT,RECD-SELECT-NUM2,AND,
> >>                  RECORD-SEQ-NUMBER,LE,RECD-SELECT-NUM3),
> >>    BUILD=(REQD-DATA1,REQD-DATA2,REQD-DATA3)),
> >>
> >>    IFTHEN=(WHEN=NONE,BUILD=(REQD-DATA2))
> >>
> >> //*
> >>
> >> The above control cards will be translated as the following
> >>
> >> //SYSIN    DD *
> >>    OPTION COPY
> >>    INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
> >>
> >>    IFTHEN=(WHEN=(81,8,ZD,GT,5,AND,81,8,ZD,LE,7),
> >>    BUILD=(1,3,31,10)),
> >>
> >>    IFTHEN=(WHEN=(81,8,ZD,GT,7,AND,81,8,ZD,LE,9),
> >>    BUILD=(1,3,31,10,71,10)),
> >>
> >>    IFTHEN=(WHEN=NONE,BUILD=(31,10))
> >> //*
> >>
> >> If you have VB input files then you need to use sequencing of the records
> >> right after the RDW.
> >>
> >> //STEP0200 EXEC PGM=SORT
> >> //SYSOUT   DD SYSOUT=*
> >> //SYMNOUT  DD SYSOUT=*
> >> //SYMNAMES DD *
> >> FILE-RDW,1,4,BI
> >> RECORD-SEQ-NUMBER,*,8,ZD
> >> VBDATA-SPOS,=
> >> REQD-DATA1,*,3,CH
> >> SKIP,27
> >> REQD-DATA2,*,10,CH
> >> SKIP,30
> >> REQD-DATA3,*,10,CH
> >> RECD-SELECT-NUM1,5
> >> RECD-SELECT-NUM2,7
> >> RECD-SELECT-NUM3,9
> >> //SORTIN   DD DISP=SHR,DSN=Your Input VB File
> >> //SORTOUT  DD SYSOUT=*
> >> //SYSIN    DD *
> >>    OPTION COPY
> >>    INREC IFTHEN=(WHEN=INIT,
> >>    BUILD=(FILE-RDW,RECORD-SEQ-NUMBER:SEQNUM,8,ZD,VBDATA-SPOS)),
> >>
> >>    IFTHEN=(WHEN=(RECORD-SEQ-NUMBER,GT,RECD-SELECT-NUM1,AND,
> >>                  RECORD-SEQ-NUMBER,LE,RECD-SELECT-NUM2),
> >>    BUILD=(FILE-RDW,REQD-DATA1,REQD-DATA2)),
> >>
> >>    IFTHEN=(WHEN=(RECORD-SEQ-NUMBER,GT,RECD-SELECT-NUM2,AND,
> >>                  RECORD-SEQ-NUMBER,LE,RECD-SELECT-NUM3),
> >>    BUILD=(FILE-RDW,REQD-DATA1,REQD-DATA2,REQD-DATA3)),
> >>
> >>    IFTHEN=(WHEN=NONE,BUILD=(FILE-RDW,REQD-DATA2))
> >> //*
> >>
> >> Further if you have any questions, please let me know
> >>
> >> Thanks,
> >> Kolusu
> >> DFSORT Development
> >>
> >> IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> wrote on
> >> 10/23/2014 06:43:44 AM:
> >>
> >>> From: Thomas Berg <thomas.b...@swedbank.se>
> >>> To: IBM-MAIN@LISTSERV.UA.EDU
> >>> Date: 10/23/2014 06:44 AM
> >>> Subject: Re: DFSORT/ICETOOL pondering
> >>> Sent by: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU>
> >>>
> >>>> -----Original Message-----
> >>>> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
> >>>> On Behalf Of Elardus Engelbrecht
> >>>> Sent: Wednesday, October 22, 2014 3:52 PM
> >>>> To: IBM-MAIN@LISTSERV.UA.EDU
> >>>> Subject: Re: DFSORT/ICETOOL pondering
> >>>>
> >>>> Thomas Berg wrote:
> >>>>
> >>>>> Sometimes I have a need to do a selective copy of a dataset where the
> >>>> selection is both record sequence and record position/part dependent.
> >>>>> And by that I mean the record part/position is varying depending on
> >> which
> >>>> record it's about.
> >>>>> An example (yes, it looks silly):
> >>>>
> >>>> Who ever gave you homework is silly... ;-D
> >>>
> >>> ...it's me... :)
> >>>
> >>>>> I want to copy  position 31 to 40 of all records but from record
> >>> 8 and 9 I want
> >>>> to copy also (concatenate) position 71 to 80 and from record 6 to 8 I
> >> also
> >>>> (concatenate in "front") want to copy position 1 to 3.
> >>>>
> >>>> Hmmm. Hard requirement if you want all of this in ONE pass. Could
> >>> you be kind
> >>>> to post an example of your input and output?
> >>>
> >>> An hypotethical example (monospace font recommended):
> >>>
> >>> Input:
> >>> ----+----1----+----2----+----3----+----4----+----5----+----6----
> >>> +----7----+----8
> >>>
> >>
> 001aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb01ccccccccccccccccccccccccccccccdddddddd01
> >>>
> >>
> 002aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb02ccccccccccccccccccccccccccccccdddddddd02
> >>>
> >>
> 003aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb03ccccccccccccccccccccccccccccccdddddddd03
> >>>
> >>
> 004aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb04ccccccccccccccccccccccccccccccdddddddd04
> >>>
> >>
> 005aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb05ccccccccccccccccccccccccccccccdddddddd05
> >>>
> >>
> 006aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb06ccccccccccccccccccccccccccccccdddddddd06
> >>>
> >>
> 007aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb07ccccccccccccccccccccccccccccccdddddddd07
> >>>
> >>
> 008aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb08ccccccccccccccccccccccccccccccdddddddd08
> >>>
> >>
> 009aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb09ccccccccccccccccccccccccccccccdddddddd09
> >>>
> >>
> 010aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb10ccccccccccccccccccccccccccccccdddddddd10
> >>>
> >>>
> >>> Output:
> >>> ----+----1----+----2----+----3
> >>> bbbbbbbb01
> >>> bbbbbbbb02
> >>> bbbbbbbb03
> >>> bbbbbbbb04
> >>> bbbbbbbb05
> >>> 006bbbbbbbb06
> >>> 007bbbbbbbb07
> >>> 008bbbbbbbb08dddddddd08
> >>> bbbbbbbb09dddddddd09
> >>> bbbbbbbb10
> >>>
> >>>
> >>>> What about the rest of input? Should they stay the same during
> >>> copy or left out
> >>>> of the output?
> >>>
> >>> The rest is discarded.
> >>>
> >>>>> I can see the use of the SUBSET (ICETOOL) for record selection
> >>> but how do you
> >>>> user DFSORT/ICETOOL to solve the combining record and varying position
> >> needs
> >>>> ?
> >>>>
> >>>> What about SPLICE and JOIN?
> >>>
> >>> I haven't looked more closely at these. Thought they required a
> >>> matching file etc.
> >>>
> >>>>> I now use a homegrown program for this but it's lacking
> >>> efficiency to say the
> >>>> least and I'm looking at DFSORTs efficiency and speed.
> >>>>
> >>>> How so? Could you post that program or some snippets? I believe I
> >>> could do that
> >>>> with REXX.
> >>>
> >>> That program IS coded in REXX.  It works but it's a problem with
> >>> (very) large files.
> >>> (This program is sort of a Swiss Army Knife with lot of other
> >>> functions, this copy problem is a minor subfunction in it.
> >>> I use it e g as a line command at ISPF 3.4 etc.)
> >>>
> >>>
> >>>
> >>> Best Regards,
> >>> Thomas Berg
> >>> ___________________________________________________________________
> >>> Thomas Berg   Specialist   zOS/RQM/IT Delivery   Swedbank AB (Publ)
> >>>
> >>>
> >>> ----------------------------------------------------------------------
> >>> For IBM-MAIN subscribe / signoff / archive access instructions,
> >>> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> >>
> >> ----------------------------------------------------------------------
> >> For IBM-MAIN subscribe / signoff / archive access instructions,
> >> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> >
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> >
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to