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