Re: Can DFSORT do pattern matching?
Ken Leidner at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/31/2012 07:15:13 AM: Thanks to all. Frank Yaeger suggestion worked as always. He will be missed Ken, I'm glad my DFSORT solution worked for you. I'm sure Kolusu and Dave will do a good job of representing the DFSORT Team on this list from now on. Frank Yaeger - DFSORT Development Team (IBM) - RETIRED -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Strip column 1 from reports - Resolved - Thank you!
Paul Gilmartin at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/30/2012 08:32:36 AM: The very best thing of this - These reports are shifted to the left automagically despite the output datasets are still RECFM=FBA. So no blanks lines in column 1 are shown, especially in e-mails to my clients. Best? Doesn't this imply that if you printed these RECFM=FBA reports on a real printer, you'd get (very) undesirable results? ... If I browse the FBA dataset as it is used by SMTP, I see this using ISPF browse (not Edit! ): ainTitle2012/05/30 12:34 eader ata It would be worse on a printer, where col. 1, not seen here, would cause skips and page throwups, etc. I would suggest specifying RECFM=FB on the DFSORT output DD when you remove the carriage control characters, to override the default of RECFM=FBA, so the carriage control characters won't be expected. 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
Re: Strip column 1 from reports - Resolved - Thank you!
Paul Gilmartin at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/30/2012 11:32:21 AM: It would be _so_ clever if DFSORT performed this adjustment of its default automatically when NOCC was specified. Oops. I misspoke. Actually, I should have been more clear about this. When you use NOCC or REMOVECC and let DFSORT/ICETOOL set the attributes automatically, it does set RECFM=FB. It will only use RECFM=FBA if the output data set already exists with that attribute. I suspect that was the case here, so RECFM=FB would be needed explicitly to override the existing RECFM of FBA. If the output data set did not have a RECFM attribute, then RECFM=FB would be set by default. Sorry for the confusion. 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
Re: Comparing datasets
Zaromil at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/29/2012 01:32:36 AM: ... Before you post this, I have already found SPLICE example 8 in the same publication and was also able to get the results I wanted. I would never come to JOINKEYS myself. If you're not familiar with DFSORT and DFSORT's ICETOOL, I'd suggest reading through z/OS DFSORT: Getting Started. It's an excellent tutorial, with lots of examples, that will show you how to use DFSORT, DFSORT's ICETOOL and DFSORT Symbols. It can introduce you to the DFSORT and ICETOOL functions you may not know about. You can access it online, along with all of the other DFSORT books, from: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T780 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
Re: Can DFSORT do pattern matching?
��z{S���}�ĝ��xjǺ�*'���O*^��m��Z�w!j�
Re: Can DFSORT do pattern matching?
��z{S���}�ĝ��xjǺ�*'���O*^��m��Z�w!j�
Re: Can DFSORT do pattern matching?
Hmmm ... seems to be some problem posting from Lotus Notes here today. So I'm trying again from the archives. Note: I'm not unretired today - I don't retire until Thursday. :-) Assuming ** will only appear as the last node, and * will never appear as the first node, I think the DFSORT JOINKEYS job below will give you the output you want. I set it up to do a maximum of 8 nodes, but if it does what you want, it can be extended to do more nodes. I tested it with various patterns and dsnames I made up. I assumed I understood which dsnames you would want to include, but my understanding of the rules could be wrong. If you find a pattern/dsname pair that doesn't work, let me know what it is and what the rules are. //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //IN1 DD DSN=... pattern file (e.g. xxx.yyy.*.zzz.**) //IN2 DD DSN=... dsnames file (e.g. xxx.yyy.a.zzz.q.r) //SORTOUT DD DSN=... output file //SYSIN DD * JOINKEYS F1=IN1,FIELDS=(101,8,A) JOINKEYS F2=IN2,FIELDS=(101,8,A) REFORMAT FIELDS=(F2:1,44,F1:201,8,F1:101,64,F2:101,64) INREC IFTHEN=(WHEN=(53,8,CH,EQ,117,8,CH),OVERLAY=(45:C'1'), HIT=NEXT), IFTHEN=(WHEN=(46,1,CH,EQ,C'0',AND, 61,8,CH,EQ,125,8,CH),OVERLAY=(46:C'1'),HIT=NEXT), IFTHEN=(WHEN=(47,1,CH,EQ,C'0',AND, 69,8,CH,EQ,133,8,CH),OVERLAY=(47:C'1'),HIT=NEXT), IFTHEN=(WHEN=(48,1,CH,EQ,C'0',AND, 77,8,CH,EQ,141,8,CH),OVERLAY=(48:C'1'),HIT=NEXT), IFTHEN=(WHEN=(49,1,CH,EQ,C'0',AND, 85,8,CH,EQ,149,8,CH),OVERLAY=(49:C'1'),HIT=NEXT), IFTHEN=(WHEN=(50,1,CH,EQ,C'0',AND, 93,8,CH,EQ,157,8,CH),OVERLAY=(50:C'1'),HIT=NEXT), IFTHEN=(WHEN=(51,1,CH,EQ,C'0',AND, 101,8,CH,EQ,165,8,CH),OVERLAY=(51:C'1'),HIT=NEXT), IFTHEN=(WHEN=(52,1,CH,EQ,C'0',AND, 109,8,CH,EQ,173,8,CH),OVERLAY=(52:C'1')) SORT FIELDS=(1,44,CH,A,45,8,CH,A),EQUALS SUM FIELDS=NONE OUTFIL INCLUDE=(45,8,CH,EQ,C''),BUILD=(1,44) //JNF1CNTL DD * INREC IFTHEN=(WHEN=INIT, PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8), %02=(ENDBEFR=C'.',FIXLEN=8), %03=(ENDBEFR=C'.',FIXLEN=8), %04=(ENDBEFR=C'.',FIXLEN=8), %05=(ENDBEFR=C'.',FIXLEN=8), %06=(ENDBEFR=C'.',FIXLEN=8), %07=(ENDBEFR=C'.',FIXLEN=8), %08=(ENDBEFR=C'.',FIXLEN=8)), OVERLAY=(101:%01,%02,%03,%04,%05,%06,%07,%08,201:8C'0')), IFTHEN=(WHEN=(109,2,CH,EQ,C'* '),OVERLAY=(202:C'1'),HIT=NEXT), IFTHEN=(WHEN=(117,2,CH,EQ,C'* '),OVERLAY=(203:C'1'),HIT=NEXT), IFTHEN=(WHEN=(125,2,CH,EQ,C'* '),OVERLAY=(204:C'1'),HIT=NEXT), IFTHEN=(WHEN=(133,2,CH,EQ,C'* '),OVERLAY=(205:C'1'),HIT=NEXT), IFTHEN=(WHEN=(141,2,CH,EQ,C'* '),OVERLAY=(206:C'1'),HIT=NEXT), IFTHEN=(WHEN=(149,2,CH,EQ,C'* '),OVERLAY=(207:C'1'),HIT=NEXT), IFTHEN=(WHEN=(157,2,CH,EQ,C'* '),OVERLAY=(208:C'1'),HIT=NEXT), IFTHEN=(WHEN=(109,2,CH,EQ,C'**'),OVERLAY=(202:7C'1')), IFTHEN=(WHEN=(117,2,CH,EQ,C'**'),OVERLAY=(203:6C'1')), IFTHEN=(WHEN=(125,2,CH,EQ,C'**'),OVERLAY=(204:5C'1')), IFTHEN=(WHEN=(133,2,CH,EQ,C'**'),OVERLAY=(205:4C'1')), IFTHEN=(WHEN=(141,2,CH,EQ,C'**'),OVERLAY=(206:3C'1')), IFTHEN=(WHEN=(149,2,CH,EQ,C'**'),OVERLAY=(207:2C'1')), IFTHEN=(WHEN=(157,2,CH,EQ,C'**'),OVERLAY=(208:C'1')) //JNF2CNTL DD * INREC IFTHEN=(WHEN=INIT, PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8), %02=(ENDBEFR=C'.',FIXLEN=8), %03=(ENDBEFR=C'.',FIXLEN=8), %04=(ENDBEFR=C'.',FIXLEN=8), %05=(ENDBEFR=C'.',FIXLEN=8), %06=(ENDBEFR=C'.',FIXLEN=8), %07=(ENDBEFR=C'.',FIXLEN=8), %08=(ENDBEFR=C'.',FIXLEN=8)), OVERLAY=(101:%01,%02,%03,%04,%05,%06,%07,%08)) /* Frank Yaeger - DFSORT Development Team (IBM) - yae...@us.ibm.com Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL
Re: Retiring after 43+ years with IBM
Elardus Engelbrecht at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/16/2012 12:10:22 AM: I'm happy to say that others on the DFSORT Team will continue to contribute. Could you introduce them to us? Well, you already know David Betten, the DFSORT performance expert, who has been posting on ibm-main for years. My protege, Kolusu, here in San Jose, will be replacing me on the function side. He has been posting solutions every day for years on the various MVS help boards (as have I). He will start posting on ibm-main as well. 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
Re: Retiring after 43+ years with IBM
Rick Fochtman at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/16/2012 03:49:01 PM: Enjoy all the grandkids, too. No grandkids, but granddogs, and our beloved pet rats, to enjoy :-) Our four pet rats will be very happy to have me at home more since that means even more out-of-cage playtime for them. Frank -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Retiring after 43+ years with IBM
Just a note to let everyone know I'll be retiring at the end of this month (5/31/2012). I've been with IBM for 43+ years (plus a couple of summers in college) and I've enjoyed my career immensely. I've especially enjoyed being able to help people use the DFSORT/ICETOOL functions I developed, over many years, in new and interesting ways. Once I retire, I won't be posting solutions any more since I won't have access to a mainframe to test them, and I don't like posting untested solutions. I may lurk a bit or I may not. I'm looking forward to retirement, but I'll also miss this list. I'm happy to say that others on the DFSORT Team will continue to contribute. Thanks to everyone for giving me the chance to earn a living all these years doing something that was a lot of fun for me. Long live the mainframe, IBM, z/OS, DFSORT and ICETOOL! 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
Re: Clearing installation options Was: Confused on DFSORT SORTWK
Skip Robinson wrote at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/08/2012 10:55:02 AM: I'm pursuing conversion to PARMLIB from ICEAMx usermod. Is it possible via ICEPRMxx to reset all options to IBM defaults? It appears from my testing that the 'clear' process (empty ICEPRMxx) only resets options to the combination of IBM+ICEAMx usermod. In order to get back to the IBM default starting point, do I have to redo ICEAMx first? If you've made any changes with ICEMAC, then you'll either have to undo them, or override them back to the defaults with ICEPRMxx. For example, if you have the following via ICEMAC: ICEMAC JCL,RESALL=8000 and you want the shipped default of RESALL=4096, you can either change ICEMAC back via: ICEMAC JCL or override the RESALL value via ICEPRMxx JCL RESALL=4096 DFSORT will use any changed ICEMAC options that you don't override with ICEPRMxx. Does that answer your question? 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
Re: Strip column 1 from reports
Elardus Engelbrecht at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 04/24/2012 07:01:01 AM: For example, using ICETOOL, despite trying out options and RECFM=FB, my output ends up having RECFM=FBA (column 1 with that control characters and other columns the report/output) If you are using the DISPLAY or OCCUR operator of DFSORT's ICETOOL, you can specify the NOCC operand to remove the carriage control characters. For DFSORT reports, you can use the REMOVECC operand. You can use DFSORT's INREC statement to remove the first character from any file, e.g. OPTION COPY INREC BUILD=(2,n) where n=LRECL-1 (e.g. 2,132 for LRECL=133). 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
Re: DFSORT, no records for SORTOUT
Frank Swarbrick at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 04/19/2012 10:22:56 AM: I know of the NULLOUT and NULLOFL options to specify return code setting if there are no records to be written to the output file. I'm wondering if there is any option I can specify so that the SORTOUT file will not even be opened if there are no records to be written to it. Basically, I want to leave the old records that were in SORTOUT alone if there is nothing new to go in to it for this run. At this point the best thing I can think of is to run SORT twice; the first time copying one record to a dummy file with NULLOUT=RC4 set. Then skipping step 2, the actual copy into the real SORTOUT, if the RC from step 1 is not 0. If there is a program other than SORT (IDCAMS?) that I can use to accomplish this, that's fine as well. No actual sorting is being done; just a straight copy. Frank, You could use a DFSORT ICETOOL job with COUNT and COPY like this: //S1EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD DSN=... input file //OUT DD DSN=... output file //TOOLIN DD * MODE STOP COUNT FROM(IN) EMPTY RC12 COPY FROM(IN) TO(OUT) /* If IN is emtpy, the COUNT operator will set RC=12 and the COPY operator will NOT be executed so OUT will not be opened. The step will give back cc=12. COUNT does not require an output data set. If IN is not empty, the COUNT operator will set RC=0 and the COPY operator will be executed so OUT will be opened and IN will be copied to it. The step will give back cc=0 Note that MODE STOP is the default so you don't have to specify it, but I put it in for doc purposes. 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
Re: MERGE question: Does SEQNUM restart for each SORTINxx?
Peter Farley at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/30/2012 06:35:35 AM: One further question about this technique -- If possible, I would like to have the DATE field in the trailer contain the same business processing date as the only selected header record. Is there any way in SORT to save the date value from the header record and propagate that date to the trailer? That header date is NOT necessarily the current system date (e.g., on weekends and holidays), so I cannot just use the current date to fill the trailer date field. There are several ways to do that with DFSORT, but the easiest way is to generate a symbol for the target date from that first record. Here's the DFSORT job for that: //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=... input file 1 (VB) //SORTOUT DD DSN=S1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) //SYSIN DD * OPTION COPY,STOPAFT=1 OUTFIL VTOF,BUILD=(C'TARGDATE,''',22,6,C,80:X) //S2 EXEC PGM=SORT //SYMNAMES DD DSN=S1,DISP=(OLD,PASS) //SYSOUT DD SYSOUT=* //SORTIN01 DD DSN=... input file 1 (VB) //SORTIN02 DD DSN=... input file 2 (VB) //SORTIN03 DD DSN=... input file 3 (VB) //SORTOUT DD DSN=... output file (VB) //SYSIN DD * OPTION VLSCMP,VLSHRT OMIT COND=(((5,3,CH,EQ,C'000'),AND, OMIT(HEADER RECORD AND (34,5,CH,NE,C'FILE1')),OR,NOT FILE1) OR (5,3,CH,EQ,C'999')) TRAILER RECORD) MERGE FIELDS=(5,3,CH,A),EQUALS OUTFIL REMOVECC, TRAILER1=(C'999FILE TLR CNT=', COUNT-1=(TO=ZD,LENGTH=11), C',DATE=',TARGDATE) /* 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
Re: MERGE question: Does SEQNUM restart for each SORTINxx?
Peter Farley at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/30/2012 06:41:17 AM: However, I'm not sure if I understand you correctly: Are you saying that the IFTHEN's which add the SEQNUM in the INREC would move to the OUTREC, but the BUILD of each IFTHEN in the OUTREC would then strip off? How could I both add SEQNUM and remove it at the same time? Like this: OPTION VLSHRT,VLSCMP OMIT COND=(((5,3,CH,EQ,C'000'),AND, OMIT(HEADER RECORD AND (34,5,CH,NE,C'FILE1')),OR,NOT FILE1) OR (5,3,CH,EQ,C'999')) TRAILER RECORD) MERGE FIELDS=(5,03,CH,A), EQUALS,FILES=4 SORTIN01 TO 04 * ADD SEQNUM BETWEEN RDW AND DATA. OUTREC IFTHEN=(WHEN=INIT,BUILD=(1,4,5:SEQNUM,11,ZD,16:5)), * USE SEQNUM-2 TO PUT COUNT OF DATA RECORDS INTO * DUMMY TRAILER RECORD (IDENTIFIED BY X'FAFAFA'). IFTHEN=(WHEN=(16,3,CH,EQ,X'FAFAFA'), BUILD=(1,4,19,13,5,11,ZD,SUB,+2,M11,LENGTH=11,43)), IFTHEN=(WHEN=NONE,BUILD=(1,4,5:16)) Alternatively, you could use OUTREC to build the records with the SEQNUM, and OUTFIL to remove the SEQNUM like this: OPTION VLSHRT,VLSCMP OMIT COND=(((5,3,CH,EQ,C'000'),AND, OMIT(HEADER RECORD AND (34,5,CH,NE,C'FILE1')),OR,NOT FILE1) OR (5,3,CH,EQ,C'999')) TRAILER RECORD) MERGE FIELDS=(5,03,CH,A), EQUALS,FILES=4 SORTIN01 TO 04 * ADD SEQNUM BETWEEN RDW AND DATA. OUTREC IFTHEN=(WHEN=INIT,BUILD=(1,4,5:SEQNUM,11,ZD,16:5)), * USE SEQNUM-2 TO PUT COUNT OF DATA RECORDS INTO * DUMMY TRAILER RECORD (IDENTIFIED BY X'FAFAFA'). IFTHEN=(WHEN=(16,3,CH,EQ,X'FAFAFA'), OVERLAY=(32:5,11,ZD,SUB,+2,M11,LENGTH=11)) OUTFIL BUILD=(1,4,5:16) However, I would suggest using my TRAILER1 job as it's simpler. 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
Re: MERGE question: Does SEQNUM restart for each SORTINxx?
Peter Farley at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/30/2012 12:01:36 PM: Frank, one small fly in the TRAILER1 ointment. In the VB SORTOUT file, the TRAILER1 parameter generates a maximum-length record regardless of whether less data is specified in the TRAILER1 subparameters. I tried using a / subparameter at the end of the TRAILER1 specification, but that does not truncate the trailer and also generated an additional blank record following the TRAILER1 record. Is there a way to truncate the output from TRAILER1 at a specific length? In my real-world business case I need it to stop at 700 data bytes (plus RDW) where the LRECL=8004. In my test case already presented, could the generated TRAILER1 data be truncated at, say 40 bytes? Peter, DFSORT does NOT generate a maximum length record for TRAILER1. Are you using DFSORT? When I run the DFSORT job I gave you, I see a length of 43 for the trailer record in SORTOUT. I use this DFSORT step to display the record length and data: //SHOWV EXEC PGM=SORT //SYSOUTDD SYSOUT=* //SORTIN DD DSN=... output data set from S2 //SORTOUT DD SYSOUT=* //SYSINDD* OPTION COPY OUTFIL BUILD=(1,4,1,2,BI,EDIT=(TT),3,2,BI,EDIT=(TT),5) It shows the following for the S2 SORTOUT data set: 430FILE HDR DATE=032912,FILE=FILE1.NAME 191DATA REC 001 192DATA REC 002 193DATA REC 003 194DATA REC 004 195DATA REC 005 315DATA REC 005 SECOND TIME 196DATA REC 006 197DATA REC 007 198DATA REC 008 199DATA REC 009 4300999FILE TLR CNT=010,DATE=032912 If that's not what you're getting with DFSORT, then something is different in your run. If you send me the complete JES log with all of the messages offline, maybe I can figure out what's different. 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
Re: MERGE question: Does SEQNUM restart for each SORTINxx?
Peter Farley at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/29/2012 02:28:49 PM: ... As can be seen, the trailer count is not correct. It should be 009. ... I'm confused. Since you have 10 data records (1,2,3,4,5,5,6,7,8.9), wouldn't you want the count to be 10, not 9? Assuming you do, this would be a simpler DFSORT solution: //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN01 DD DSN=... input file 1 (VB) //SORTIN02 DD DSN=... input file 2 (VB) //SORTIN03 DD DSN=... input file 3 (VB) //SORTOUT DD DSN=... output file (VB) //SYSIN DD * OPTION VLSCMP,VLSHRT OMIT COND=(((5,3,CH,EQ,C'000'),AND, OMIT(HEADER RECORD AND (34,5,CH,NE,C'FILE1')),OR,NOT FILE1) OR (5,3,CH,EQ,C'999')) TRAILER RECORD) MERGE FIELDS=(5,3,CH,A),EQUALS OUTFIL REMOVECC, TRAILER1=(C'999FILE TLR CNT=', COUNT-1=(TO=ZD,LENGTH=11), C',DATE=00') /* For your input example (SORTIN01-03), SORTOUT would have: 000FILE HDR DATE=032912,FILE=FILE1.NAME 001DATA REC 001 002DATA REC 002 003DATA REC 003 004DATA REC 004 005DATA REC 005 005DATA REC 005 SECOND TIME 006DATA REC 006 007DATA REC 007 008DATA REC 008 009DATA REC 009 999FILE TLR CNT=010,DATE=00 If that's not what you want for output, then please explain the rules for getting from input to output more clearly. 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
Re: MERGE question: Does SEQNUM restart for each SORTINxx?
Peter, As a postscript to my earlier note, I can explain why you are not getting the sequence numbers the way you expected. DFSORT does NOT restart the SEQNUM at 1 for each SORTINxx. However, ... INREC is processed before MERGE. For a MERGE, DFSORT first reads one record from each SORTINxx file. DFSORT reads SORTIN01 record 1 and INREC sets it's SEQNUM to 1. DFSORT reads SORTIN02 record 1 and INREC sets it's SEQNUM to 2. DFSORT reads SORTIN03 record 1 and INREC sets it's SEQNUM to 3. DFSORT reads SORTIN04 record 1 and INREC sets it's SEQNUM to 4. So your DUMMY trailer record (SORTIN04 record 1) gets 4 as it's SEQNUM. If you want the DUMMY trailer record to get the last SEQNUM, you would have to use OUTREC, which which is processed after MERGE to set the SEQNUM, rather than INREC which is processed before MERGE. 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
Re: RES: z/OS 1.11 DFSORT ICE046A
Ituriel do Nascimento Neto at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/27/2012 08:13:45 AM: If we SORT datasets in dasd, then IGNWKDD is perfect. But what happens when SORTIN is a TAPE dataset and tape management software is not RMM ? What is the best approach, is it necessary to specify USEWKDD ? Other tape management products (e.g. CA-1) can supply an ICETPEX exit that will pass the filesize to DFSORT (similar to what RMM does). Are you saying that your tape management product does NOT supply an ICETPEX exit? 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
Re: z/OS 1.11 DFSORT ICE046A
Jerry Bergman on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/26/2012 09:49:24 AM: We recently upgraded from 1.9 to 1.11. It went well, but now several of our production jobs are dying with ICE406A - Sort Capacity Exceeded. The JCL has 3 sortwork DDs with an allocation of CYL(1,1) or (2,1). Quite frankly I'm surprised they ever worked. When I tell the application folks they need to follow the recommendation from the doc for ICE046A, namely increase their sortwork size, their response is that I need to set some parameter so they don't have to change their JCL and if I ask someone will surely know what that parameter is and tell me. So I am asking. I need to set some parameter so they don't have to change their JCL Consider setting the DFSORT installation option DYNAUTO=IGNWKDD (via an ICEPRMxx member). This would tell DFSORT to deallocate any SORTWKdd DD data sets and use dynamically allocated work data sets instead, which we recommend. For more details, see the DFSORT books at: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T780 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
Re: IBM Main Forum
Grahan Hobbs at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/29/2012 05:10:25 PM: http://ibmmainframeforum.com/index.php is where I found an interesting site. Seems I was a member years ago. When I registered I got an automated response .. There are actually several z/OS Help Boards (I'm a Moderator on many of them). The one you mentioned is for beginners, so it's probably NOT the best one for anyone on IBM-MAIN. Instead, I would suggest: http://ibmmainframes.com/index.php (the most active) or http://www.mvsforums.com (run by my DFSORT colleague, Kolusu) 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
Re: DFSORT question - How to combine several records to one record
Minoru Massaki at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/29/2012 07:37:40 AM: Yaeger-san, Thank you very much for telling me the way without additional DFSORT step. It is very helpful for me. I really appreciate your support. I'm glad I could help. 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
Re: DFSORT question - How to combine several records to one record
Minoru Massaki at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/27/2012 06:21:40 PM: 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. KEYBEGIN has been available with DFSORT since October, 2010 with z/OS DFSORT V1R10 PTF UK90025 and z/OS DFSORT V1R12 PTF UK90026. If you don't have that PTF installed, you can do what you want without KEYBEGIN using a DFSORT job like this: //S1EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD * dsn-aaa08:00 open dsn-aaa08:10 close dsn-aaa08:15 delete dsn-bbb07:55 delete dsn-ccc08:05 open dsn-ccc08:07 close dsn-ddd08:01 open dsn-ddd08:02 close dsn-ddd08:03 open dsn-ddd08:04 close dsn-ddd08:05 open dsn-ddd08:06 close dsn-ddd08:07 open dsn-ddd08: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=INIT, OVERLAY=(125:SEQNUM,1,ZD,START=1,RESTART=(1,11))), 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
Re: DFSORT question - How to combine several records to one record
Minoru Massaki at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/27/2012 07:23:45 PM: 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. ... You don't need to add a STEP - you can just use an IFTHEN clause with RESTART instead of the IFTHEN clause with KEYBEGIN, as shown in my other note. 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
Re: DFSORT question - How to combine several records to one record
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-aaa08:00 open dsn-aaa08:10 close dsn-aaa08:15 delete dsn-bbb07:55 delete dsn-ccc08:05 open dsn-ccc08:07 close I want to get a record by each dsname from multiple records as following. (each dsname has max 8 records(status)) dsn-aaa08:00 open 08:10 close 08:15 delete dsn-bbb07:55 delete dsn-ccc08: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: //S1EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD * dsn-aaa08:00 open dsn-aaa08:10 close dsn-aaa08:15 delete dsn-bbb07:55 delete dsn-ccc08:05 open dsn-ccc08:07 close dsn-ddd08:01 open dsn-ddd08:02 close dsn-ddd08:03 open dsn-ddd08:04 close dsn-ddd08:05 open dsn-ddd08:06 close dsn-ddd08:07 open dsn-ddd08: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
Re: Avoiding DFSORT dynamic allocatoin, was: Abend S0C4 in an internal sort
Staffan Tylen at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/22/2012 11:08:10 AM: I wish to be able to sort records in storage without risking that work files are dynamically allocated Staffan, I don't know exactly what your job looks like so it's difficult to tell you how to do what you want. Can you try doing the following with your job: Remove any SORTWKdd DD statements you have coded. Add: //DFSPARM DD * OPTION MOSIZE=0,HIPRMAX=0,DSPSIZE=0,DYNALLOC=OFF /* If the job still dynamically allocates work data sets, then send me your complete JES log offline (yae...@us.ibm.com) and I'll take a look. 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
Re: Avoiding DFSORT dynamic allocatoin, was: Abend S0C4 in an internal sort
Staffen Tylen at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/22/2012 12:34:17 PM: Frank, you did it again! I start to believe that I had not tried the MOSIZE parameter together with all the rest, so when it's there - no more dynamic allocations :) But as expected I got sort capacity exceeded situations, which I only could solve by adding a high MAINSIZE value like 1000M together with REGION=0M. With all this in place in a separate test job that just ran a standard PGM=SORT with no sort work files it worked like a charm and with an incredible performance, less than 20 secs to sort almost 750,000 records :) Again, many thanks Frank and all others involved. I'm glad to hear you got what you wanted, and glad I could help. 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
Re: Abend S0C4 in an internal sort
Shmuel (Seymour J.) Metz at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/13/2012 07:25:11 PM: Does the sort expect a non-standard plist? Should the 4rh word be A(=F'-1')+X'8000'? The end of the extended parameter list is indicated by a F'-1' (X'') word. For details, see: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA60/6.7.1.1?SHELF=DT=20110608113434 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
Re: Abend S0C4 in an internal sort
Staffan Tylen at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/13/2012 09:31:08 AM: I can't get my head around this one, I'm 100% sure the answer is starring at me but I just don't see it. I'm writing an assembler program that invokes SORT using LINK. There are E15 and E35 exits to handle records going in and out of the sort, but it keeps abending with S0C4 and sometimes S0C1, depending on whether the exit routines are half or fullword aligned ... I think the problem may be that you don't have the top bit set on for the exit addresses. If you look in the DFSORT APG, you'll see that the exit addresses look like this: |f|Address of user exit E15| |f|Address of user exit E35| f (bit 0) has the following meaning: 0 = Enter the user exit with 24-bit addressing in effect (AMODE 24). 1 = Enter the user exit with 31-bit addressing in effect (AMODE 31). I believe you want your exits to run in AMODE 31, not AMODE 24 so you need f to be 1, not 0. When I ran your program as is with DFSORT, I got S0C1. When I changed it as follows to set the f flag on for each exit: ... OISORTE15,X'80' OISORTE35,X'80' LA1,SORTPARM LINK EP=SORT ... SORTPARM DCA(SORTSTMT) SORTE15 DCA(E15_EXIT) SORTE35 DCA(E35_EXIT) DCF'-1' I got a RC=16 as expected (since your E15 passes RC=16) Try that and see if solves the problem. 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
Re: ICETOOL extract fields from input dsn and copy to an output dsn
af dc at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/09/2012 03:45:23 AM: From: af dc acbi...@gmail.com To: IBM-MAIN@bama.ua.edu Date: 02/09/2012 03:47 AM Subject: ICETOOL extract fields from input dsn and copy to an output dsn Sent by: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu Hello, I'm hanging around with this task and I'm not getting what I want, can you pls give me an help ?? input dsn: Organization . . . : PS Record format . . . : VB ... I'm using ICETOOL with: //TOOLIN DD * * COPY FROM(INDD) TO(OUT1) USING(COP1) * //COP1CNTL DD * SORT FIELDS=COPY OUTREC FIELDS=(9,40) and I'm getting: ICE251A 0 MISSING RDW OR DATA FOR *OUTREC : REASON CODE 03, IFTHEN 0 What am I missing ?? As indicated by the ICE251A message, you're missing the RDW in the OUTREC statement. You have a VB input file, but you're treating it like an FB input file. If you want a VB output file, you can use a DFSORT/ICETOOL job like the following: //S1EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //INDD DD DSN= input file (VB) //OUT1 DD DSN=... output file (VB) //TOOLIN DD * COPY FROM(INDD) TO(OUT1) USING(COP1) * //COP1CNTL DD * SORT FIELDS=COPY OUTREC BUILD=(1,4,9,40) /* Note that you must specify the RDW (1,4) in OUTREC. If you want an FB output file, you can use a DFSORT/ICETOOL job like the following: //S2EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //INDD DD DSN= input file (VB) //OUT1 DD DSN=... output file (FB) //TOOLIN DD * COPY FROM(INDD) USING(COP1) * //COP1CNTL DD * SORT FIELDS=COPY OUTFIL FNAMES=OUT1,BUILD=(9,40),VTOF /* Note the use of VTOF. 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
Re: How to reformat JFCB creation date in SMF to 'yyyy/mm/dd' format by DFSORT
Minoru Massaki at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 02/05/2012 10:11:51 PM: I did a test with following DFSORT control statements on z/OS V1.12. It worked fine. Assume that input JFCB creation date field is at location 149 in SMF type 15 and output field is at location 128 in SORTOUT record. 128:149,1,BI,ADD,+1900,TO=ZD,LENGTH=4,C'/', 150,2,BI,TO=ZD,LENGTH=3, I found that adding operation had to be specify 'ADD' instead of '+' and the constant 1900 had to have '+' prefix sign.;-) I didn't test '/mm/dd' reformat yet. It requires me more time to understand the DFSORT control statements you gave me. You can use DFSORT statements like the following to get the date in '/mm/dd' form: INREC IFTHEN=(WHEN=INIT, * Convert X'yy' to 'ddd' BUILD=(128:149,1,BI,ADD,+1900,TO=ZD,LENGTH=4, 150,2,BI,TO=ZD,LENGTH=3)), * Convert 'ddd' to '/mm/dd' IFTHEN=(WHEN=INIT,BUILD=(128:128,7,Y4T,TOGREG=(Y4T(/ 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/dfsor -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Split records using SORT
Ken MacKenzie at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/31/2012 05:56:43 AM: I wonder if anyone knows if I can achieve the following in SORT. I've already done it in REXX but I think SORT may be more efficient since my input file has 92 records resulting in more than 30,000 records. Each record is fixed (lrecl=8906) and is built as follows: 1-22-byte binary length 3-42-byte filler contains '00'x 5-11 Userid 12 Space 13-? Username This is then repeated across the record until we encounter a length of zero. So a record containing 3 names (in reality they contain hundreds) would look like this: +1+2+3+4+5+6+7+ USR0001 FRED.SMITHYUSR0002 JEFFREY.SNOTRAGUSR0003 JOE.SCHMO 0100EED4CDCC4EDCECE0100EED4DCCCDCE4EDDEDCC0100EED4DDC4ECCDD 0700429000106954B2493880B00429000201566958B2563917050042900030165B23846 I want to split the above into 3 records (presumably using RECM=VB): +1+ USR0001 FRED.SMITHY EED4CDCC4EDCECE 429000106954B249388 +1+2--- USR0002 JEFFREY.SNOTRAG EED4DCCCDCE4EDDEDCC 429000201566958B2563917 +1+-- USR0003 JOE.SCHMO EED4DDC4ECCDD 42900030165B23846 SORT doesn't have any built-in functions to handle individual length/field information. Of course, you could write an E15 or E35 exit with the appropriate logic to do what you want and it might be more efficient than the REXX solution. 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
Re: Split records using SORT
Tony at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/31/2012 11:36:40 AM: I did something like this a while back in order to convert a SAP database that was downloaded to z/OS. The SAP record was very wide with a repeating occurence of a known value. I wanted to convert this to a fixed block sequential disk dataset. What I did was parse left to right looking for (in the case below, the string 'USR') a value, which when found, was written to a separate output file. I ended up with a series of SORTOUTs, one for each occurrence of 'USR' (for example). The second pass was to merge the outputs. Not very elegant but the price was right. I see the following problem with that approach in this case: DFSORT allows a maximum of 100 PARSE fields (%00-%99) which isn't enough given the OPs statement So a record containing 3 names (in reality they contain hundreds). I also doubt that every userid starts with the same characters. I guess you might be able to do something with the X'' string as the delimiter, but it depends on exactly what the individual fields look like, the maximum length of a field (for FIXLEN), etc. BTW, with DFSORT you wouldn't need a series of SORTOUTs - you'd just need one. OUTFIL can create multiple records in the output same data set, e.g. BUILD=(%00,/,%01,/,...) You could do up to 100 output records per input record. You would end up with some records that contained no data which you could filter out in a second pass. But you're still limited to 100 fields per record, and it's not clear what you'd use for the PARSE start and end delimiters given the structure of the different length fields within each record. 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Frank Yaeger Sent: Tuesday, January 31, 2012 12:52 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Split records using SORT Ken MacKenzie at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/31/2012 05:56:43 AM: I wonder if anyone knows if I can achieve the following in SORT. I've already done it in REXX but I think SORT may be more efficient since my input file has 92 records resulting in more than 30,000 records. Each record is fixed (lrecl=8906) and is built as follows: 1-22-byte binary length 3-42-byte filler contains '00'x 5-11 Userid 12 Space 13-? Username This is then repeated across the record until we encounter a length of zero. So a record containing 3 names (in reality they contain hundreds) would look like this: +1+2+3+4+5+6+7+ USR0001 FRED.SMITHYUSR0002 JEFFREY.SNOTRAGUSR0003 JOE.SCHMO 0100EED4CDCC4EDCECE0100EED4DCCCDCE4EDDEDCC0100EED4DDC4ECCDD 0700429000106954B2493880B00429000201566958B2563917050042900030165B23846 I want to split the above into 3 records (presumably using RECM=VB): +1+ USR0001 FRED.SMITHY EED4CDCC4EDCECE 429000106954B249388 +1+2--- USR0002 JEFFREY.SNOTRAG EED4DCCCDCE4EDDEDCC 429000201566958B2563917 +1+-- USR0003 JOE.SCHMO EED4DDC4ECCDD 42900030165B23846 SORT doesn't have any built-in functions to handle individual length/field information. Of course, you could write an E15 or E35 exit with the appropriate logic to do what you want and it might be more efficient than the REXX solution. 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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Sort repeating date field
James Chambers at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/30/2012 02:12:18 AM: I am trying to repeat the Start and end Date/Time for an Omegamon Cics report. Is it possible using DFSORT repeat a field for all the records after that have a blank for that field? The below is an example of the output DATE AND TIME- TRAN AVG START- -STOP-NAME COUNT RESP - 01/20/12 01:00 01/20/12 01:59 CATD1 .011 CESC 2 .004 CSPQ 10 .001 CWBG 5 .001 01/20/12 02:00 01/20/12 02:59 CSPQ 10 .001 CWBG 5 .001 James, It's not clear to me what you're trying to do exactly. Please show an example of the records in your input file (relevant fields only) and what you expect for output. Explain the rules for getting from input to output. Give the starting position, length and format of each relevant field. Give the RECFM and LRECL of the input files. It's also difficult to determine where your fields are from you post, so feel free to send me the input and expected output offline (yae...@us.ibm.com) as plain text files so I can see what they really look like. 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
Re: Sort repeating date field
James, I think I understand what you're trying to do and you can use DFSORT's WHEN=GROUP function to do it. Here's an example: //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD * 01/20/12 08:00 01/20/12 08:59 XRQ0 11.419 X257 63 .178 01/20/12 09:00 01/20/12 09:59 ACFT 12 .001 CATA177 .008 CATD 34 .005 CDTS 9 .003 //SORTOUT DD SYSOUT=* //SYSIN DD * OPTION COPY INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,2,CH,NE,C' '), PUSH=(1:1,30)) /* SORTOUT would have: 01/20/12 08:00 01/20/12 08:59 XRQ0 11.419 01/20/12 08:00 01/20/12 08:59 X257 63 .178 01/20/12 09:00 01/20/12 09:59 ACFT 12 .001 01/20/12 09:00 01/20/12 09:59 CATA177 .008 01/20/12 09:00 01/20/12 09:59 CATD 34 .005 01/20/12 09:00 01/20/12 09:59 CDTS 9 .003 Does that help? 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
Re: DFSORT - How to split detailed record based on master record
Minoru Massaki at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/23/2012 10:26:47 PM: Yaeger-san and McKown-san, Thank you very much for your kind help. It is exactly what I want to do. By the way, one of our customer is still using z/OS V1.10. Does DFSORT for z/OS V1R10 support JOINKEYS application? If it doesn't, are there any way to do same thing as JOINKEYS does on z/OS V1.10 with DFSORT? Yes, DFSORT's JOINKEYS function is available with z/OS V1.10. You just need z/OS DFSORT V1R10 PTF UK51707 which has been available since Nov, 2009. 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
Re: DFSORT - How to split detailed record based on master record
John McKown at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/24/2012 05:16:56 AM: I don't see JOINKEYS in z/OS 1.10's version of the DFSORT manual, so I'd say No, you can't do this in z/OS 1.10. ... John, Because some functions of DFSORT/ICETOOL are implemented as PTFs, you can't assume that a function isn't available if it isn't documented at a particular level of the book. Doc for a funcitonal PTF is first made available as a paper and then added to the next level of the book later. The JOINKEYS PTF is available all the way back to z/OS DFSORT V1R5. JOINKEYS was documented in the following paper at GA of the PTF http://www.ibm.com/support/docview.wss?rs=114uid=isg3T7000174 and is now documented in the DFSORT books. I know it's confusing, but we don't update old levels of the books for new functions. 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
Re: DFSORT - How to split detailed record based on master record
Minoru Massaki at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/23/2012 08:47:00 AM: I'm looking for a way to do following by DFSORT. I have read through DFSORT manuals but I could not find out the method. Your help would be highly appreciated. There is a master file which contains Volume serial (VOLSER). The master file is sorted by VOLSER and there is NO duplicate VOLSER. Each record of the detailed record file contains VOLSER and data set name. The detailed record file is also sorted by VOLSER and there are duplicate VOLSER. In some case, detailed record file does not contain VOLSER record which is in mster record. I want to split detailed record file into two files based on master record file as following: Master record file VOL000 VOL001 VOL005 VOL010 Detailed record file VOL001 AAA VOL002 BBB VOL005 CCC VOL005 DDD VOL007 EEE VOL007 FFF DFSORT output master-exist VOL001 AAA VOL005 CCC VOL005 DDD non-master VOL002 BBB VOL007 EEE VOL007 FFF Can DFSORT do it? You can use a DFSORT JOINKEYS job like the following to do what you asked for. I made some assumptions about the RECFM and LRECL of you input files and the starting positions of your fields, but you can adjust as needed if I guessed wrong. //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //IN1 DD * VOL000 VOL001 VOL005 VOL010 //IN2 DD * VOL001 AAA VOL002 BBB VOL005 CCC VOL005 DDD VOL007 EEE VOL007 FFF //OUT1 DD SYSOUT=* //OUT2 DD SYSOUT=* //SYSIN DD * JOINKEYS F1=IN1,FIELDS=(4,6,A),SORTED JOINKEYS F2=IN2,FIELDS=(5,6,A),SORTED JOIN UNPAIRED,F2 REFORMAT FIELDS=(F2:1,80,?) OPTION COPY OUTFIL FNAMES=OUT1,INCLUDE=(81,1,CH,EQ,C'B'),BUILD=(1,80) OUTFIL FNAMES=OUT2,INCLUDE=(81,1,CH,EQ,C'2'),BUILD=(1,80) /* For complete details on DFSORT's JOINKEYS function, see: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA60/4.0?DT=20110608113434 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
Re: DFSORT and a variable length field question
Ken Leidner at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/20/2012 06:21:08 AM: I have an input dataset that looks like the following. Note the columns for the data are 2, 11, and, 56. I use the sort control cards to remove the unwanted records and generate ALTER statements for IDCAMS to change the GDG bases with Noscratch to Scratch. This works well, but it does lead me to one question that I wonder how other solve or if DFSORT has addressed the issue and I just don't know about it. Is there a way to extract a variable length field, like a dataset name, and build an output record with that extracted field and its variable length used rather than a fixed length? The problem is to have other fields follow the variable length field without having to use a second pass to remove the extra spaces when a fixed length field is used. If this is possible it does raise a second question as to how to do this and output a fixed length record as you would have to be able to calculate the size of the final padding blank field. Maybe that problem could be overcome by first building the correct record length as all blanks and then using the overlay parameter to build the real record. Currently all I know how to do is build the varying length field into a fixed length field that is the maximum size for the field and then in a second past squeeze out the extra spaces between it and the following fields. ... Extracting the variable field as a fixed field and squeezing would be the right technique to use. In my case here I was able to use the TRAIL parameter to solve the problem, but in other cases the trailing data may be several fields from the original input record and the TRAIL parameter would not work. If you show me an example of input and expected output for the situation where TRAIL would not work, I'll show you how to do what you want with DFSORT another way. 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
Re: Number of SORT WORKs needed
Peter Farley at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/20/2012 07:49:48 AM: I'm sure Frank Y. will chime in here, Nope. David Betten is the DFSORT Performance/Capacity/Tuning expert and he has already chimed in. 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
Re: I thought it would be easy (IEBDG)
Donald Russell at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/17/2012 04:01:47 PM: ... The hex data is constant, I just want it written to a new data set when a job runs... Is there another utility that can do this easily? In a nutshell: //S1 EXEC PGM=... //SYSUT1 DD * a1b2c3d4e5f6 /* //SYSUT2 DD LRECEL=6,RECFM=F,... //SYSIN DD * COPY HEXCHARTOBINARY /* and the resulting file will be 6 bytes long, with x'a1b2c3d4e5f6' as contents. Here's a DFSORT job that will do what you asked for using the TRAN=UNHEX function:: //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD * A1B2C3D4E5F6 //SORTOUT DD DSN=... //SYSIN DD * OPTION COPY INREC BUILD=(1,12,TRAN=UNHEX) /* I assumed you could use uppercase characters (A-F) for the input rather than lowercase characters (a-f). But if you really need to use lowecase characters, DFSORT's TRAN=LTOU (lowercase to uppercase) and TRAN=UTOL (uppercase to lowercase) functions can be used as well. 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
Re: strcoll(), sort(1), LC_COLLATE (and perhaps DFSORT)
Paul Gilmartin on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/03/2012 05:48:30 AM: And, BTW, I'm quite unfamiliar with DFSORT. What collating options does it support? DFSORT's support for LOCALE is described in z/OS DFSORT Application Programming Guide, e.g. General: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA60/1.5.3?DT=20110608113434 LOCALE parameter of OPTION statement: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA60/3.14?DT=20110608113434 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
Re: What SMF record types and formats does ACF2 write?
Ed Gould at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/06/2011 09:22:50 AM: The SMF record layouts ar in a GC manual. This also has DFSORT and a few other PP record layouts. Actually, the DFSORT Type 16 SMF records are documented in Appendix D of z/OS DFSORT Installation and Customization (SC26-7524). You can access all of the DFSORT books online from: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T780 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: What SMF record types and formats does ACF2 write?
Ed Gould at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/06/2011 10:12:49 AM: Frank, Interesting. This seems to have changed from last time I looked as I think at one time there was a note in the DFSORT manual as it used to tell the people to look at the SMF manual. The DFSORT SMF Type 16 record has been documented in the DFSORT IC for a very long time (at least 10 years if not more). I think at one time it was documented in both the SMF book and the DFSORT IC, but we decided it would be easier to keep it current in the DFSORT book. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT JOINKEYS question
Frank Swarbuck on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/05/2011 11:43:27 AM: Can DFSORT be used to do the following? ... Frank, If I understand correctly what you want to do, you can use a DFSORT JOINKEYS job like the following to do it. Note the use of ? in REFORMAT as an indicator. //SORT1EXEC PGM=SORT //SYMNAMES DD * CHR-PAN-ACCOUNT,6,19,CH CHR-PIC-CNT,1223,1,PD CHR-ISSUE-CNT,1224,1,PD CHR-CNT-DATE,1228,3,PD CHR-FEE-BILL-AMT,1234,2,PD CHS-PAN-ACCOUNT,1,19,CH CHS-CNT-DATE,20,3,PD CHS-PIC-CNT,23,2,PD CHS-ISSUE-CNT,25,2,PD CHS-FEE-BILL-AMT,27,3,PD INT-CHR-PAN-ACCOUNT,1,19,CH INT-CHR-CNT-DATE,*,3,PD INT-CHR-PIC-CNT,*,1,PD INT-CHR-ISSUE-CNT,*,1,PD INT-CHR-FEE-BILL-AMT,*,2,PD INT-CHS-CNT-DATE,*,3,PD INT-CHS-FEE-BILL-AMT,*,3,PD INT-FLAG,*,1,CH //SYMNOUT DD SYSOUT=* //CHFIN DD DISP=SHR,DSN=DVFJS.CVSC.CVSCHF //CHSIN DD DISP=SHR,DSN=DEVA.CVSC.CHS //CHSOUT DD DISP=SHR,DSN=DEVC.CVSC.CHS //SYSINDD * * CONTROL STATEMENTS FOR JOINKEYS APPLICATION JOINKEYS F1=CHFIN,FIELDS=(CHR-PAN-ACCOUNT,A),SORTED,NOSEQCK JOINKEYS F2=CHSIN,FIELDS=(CHS-PAN-ACCOUNT,A),SORTED,NOSEQCK JOIN UNPAIRED,F1 REFORMAT FIELDS=(F1:CHR-PAN-ACCOUNT,CHR-CNT-DATE, CHR-PIC-CNT,CHR-ISSUE-CNT,CHR-FEE-BILL-AMT, F2:CHS-CNT-DATE,CHS-FEE-BILL-AMT,?) * CONTROL STATEMENTS FOR MAIN TASK (JOINED RECORDS) OPTION COPY OUTREC IFTHEN=(WHEN=(INT-FLAG,EQ,C'1'), BUILD=(INT-CHR-PAN-ACCOUNT, INT-CHR-CNT-DATE, INT-CHR-PIC-CNT,TO=PD,LENGTH=2, INT-CHR-ISSUE-CNT,TO=PD,LENGTH=2, INT-CHR-FEE-BILL-AMT,TO=PD,LENGTH=3)), IFTHEN=(WHEN=(INT-FLAG,EQ,C'B'), BUILD=(INT-CHR-PAN-ACCOUNT, INT-CHS-CNT-DATE, INT-CHR-PIC-CNT,TO=PD,LENGTH=2, INT-CHR-ISSUE-CNT,TO=PD,LENGTH=2, INT-CHS-FEE-BILL-AMT,TO=PD,LENGTH=3)) OUTFIL FNAMES=CHSOUT,FTOV /* 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT JOINKEYS question
Frank Swarbuck at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/05/2011 03:42:03 PM: Very cool. I obviously had no understanding of what the ? option was really to be used for. :-) Frank, I'm glad my example gave you a starting point for figuring out how to do what you needed. As you realized, the ? and JNFxCNTL functions of DFSORT's ICETOOL are quite powerful. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT JOINKEYS question
Frank Yaeger on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/05/2011 04:39:38 PM: As you realized, the ? and JNFxCNTL functions of DFSORT's ICETOOL are quite powerful. Oops. I meant JOINKEYS, not ICETOOL (although, of course, JOINKEYS can be used from ICETOOL). 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Simple record extraction from a sequential file
Donald Russell on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 11/21/2011 10:16:26 AM: I have a tape dataset from which I need to extract all records that begin with a specific 2 byte prefix. The RECFM is VB or possibly U. Is there an IBM utility that lets me just select those given records? I thought IEBEDIT sounded like a good candidate, but that seems to deal with actual job streams then I thought of IEBGENR, but that doesn't appear to do what I want either. Surely I'm missing something, I'd think this is a very common task. For example, CMS/TSO PIPELINES PIPE input | STRFIND /xx/ | output If you want to select VB records that have XX in positions 5-6 (after the RDW in positions 1-4), you can use a DFSORT job like the following: //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=... input tape file (VB) //SORTOUT DD DSN=... output file (VB) //SYSIN DD * OPTION COPY INCLUDE COND=(5,2,CH,EQ,C'XX') /* However, DFSORT cannot process RECFM=U data sets. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Simple record extraction from a sequential file
Rick Fochtman on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 11/21/2011 01:38:29 PM: Take a look at DFSORT, using INCLUDE/EXCLUDE control statements For the record, that's INCLUDE/OMIT, not INCLUDE/EXCLUDE. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Simple record extraction from a sequential file
Donald Russell on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 11/21/2011 02:43:10 PM: The use of the SORT to do this job seems to me to be much akin to using a piledriver to set a ten-penny nail., and I should be interested to know why you sought a canned solution to a problem of this sort. Though clearly the programming effort to write my own code to do this is trivial, the reason for wanting a canned solution is to avoid all the business rules and procedures associated with writing custom code. If I roll my own, it has to go through the whole QA process, and distributed to various geographically diverse MVS systems where I need this capability. DFSORT is available right now. It's been debugged, it's been accepted, it's in production, now. If DFSORT can do what I need, that's perfect. The cycles to run DFSORT for this are less expensive than my and other people's time to properly support it. If there's another out-of-the-box solution, I'm all ears. i.e. my cms/tso pipelines solution suggested in my original post. (But I'm note sure we have PIPELINES on all our MVS systems.) I'm also a big believer in using existing wheels. Why do I want to write a program that already does what another, already available one does? The reason I need this capability is so I can extract a subset of records from one or more tapes in various geographically diverse MVS sites, send that data to another MVS site that has USS and do some stuff with it there. I could just copy the entire tape across the country/globe, but I do have some limits regarding wasted bandwidth/cycles. :-) It's a trade-off/balancing act. I'm glad to hear that devoting most of my career at IBM to adding more and more functions to DFSORT and DFSORT's ICETOOL hasn't been a waste of time. :-) It's nice to know I can't be completely replaced by a couple of teenagers writing PL/I code. The use a utility vs roll your own argument seems to come up every now and then. Besides the QA process considerations and efficiency considerations, it often comes down to a how complex does something have to be before you stop rolling your own decision. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT / ICETOOL split file into smaller files adding header
John Mattson on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 10/07/2011 12:08:51 PM: I have a large file, and I need to split it into smaller files of 50,000 recs each I started off using Batch REXX so that I could dynamically allocate a large number of output files, each with a different name. The same REXX also creates SORT control cards (see below). The REXX increments the SKIPREC by 50,000 each time. OPTION NULLOUT=RC4 SORT FIELDS=COPY,STOPAFT=5,SKIPREC=15 So far so good. First DS has records 1 thru 50,000, next ds has 50,001 thru 100,000 and so on. Now they want a single header record for each new data sets. All header records will be identical. I could just create a single record header data set , concatenate and copy again to a new ds, but I am hoping that there is a better way to do this in one execution of DFSORT per data set. BUT I have not been able to find it. Any help here? Maybe I don't understand what you're trying to do, but if you just want to add the same header at the top of each file, just have the REXX generate an OUTFIL HEADERx statement along with the OPTION and SORT statements: OPTION NULLOUT=RC4 SORT FIELDS=COPY,STOPAFT=5,SKIPREC=15 OUTFIL REMOVECC,HEADER1=('THIS IS THE HEADER') 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT / ICETOOL split file into smaller files adding header
John Mattson at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 10/07/2011 02:04:48 PM: FRANK ! HEADER1 would do what I want, but the header may be up to 2,000 chars long. Is this possible with OUTFIL? Yes, the total number of header bytes can be that large (actually much larger). Caveat: Each individual character string ('string') in the header can be a maximum of 256 bytes but you can have multiple such character strings. So your REXX would have to be smart enough to build the header in valid pieces and observe the continuation rules, e.g. OUTFIL REMOVECC, HEADER1=('string1',21:DATE, 35:'string2',51:TIME,...) If you need help with the syntax for setting up your header, give me details on the pieces that make up the header (strings, fields, date, time, page, etc). Feel free to e-mail me offline with the details (yae...@us.ibm.com). 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT JOINKEYS question: Where to put INREC and OUTREC?
Peter, I'm not sure exactly what you're trying to do, but I can think of two ways to get a count like that. One would be to use an IFTHEN WHEN=INIT clause in each OUTFIL before the other IFTHEN clauses to insert the sequence number (of course, you have to adjust the positions in the subsequent IFTHEN clauses). The other would be to use COUNT-2=(edit) in TRAILER1 for each OUTFIL. If you want more help with this, feel free to send me more details offline (yae...@us.ibm.com): Please show an example of the records in each input file (relevant fields only) and what you expect for output. Explain the rules for getting from input to output. Give the starting position, length and format of each relevant field. Give the RECFM and LRECL of the input files. If file1 can have duplicates within it, show that in your example. If file2 can have duplicates within it, show that in your example. 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 Peter Farley on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 09/15/2011 11:09:13 AM: From: Farley, Peter x23353 peter.far...@broadridge.com To: IBM-MAIN@bama.ua.edu Date: 09/15/2011 11:10 AM Subject: DFSORT JOINKEYS question: Where to put INREC and OUTREC? Sent by: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu I have developed a JOINKEYS application, but I need to do one more function as part of the process, if it is possible. I am joining two VB files on 2 keys in the fixed part of the VB records and using OUTFIL statements to split the result into multiple output files. In each of the output files there is a header record (key values = all X'00') and a trailer record (key values = all X'FF'). I also want to insert a true record count into each trailer record in each output file, i.e. a record count that excludes the header and trailer records in a particular output file. Frank Yaeger already helped me in a prior email to construct a way to produce this count for a single-file COPY operation using an INREC and an OUTREC, which would require a separate pass over each output file. This is that function: OPTION COPY * ADD SEQNUM BETWEEN RDW AND DATA. INREC IFTHEN=(WHEN=INIT,BUILD=(1,4,5:SEQNUM,11,ZD,16:5)), * USE SEQNUM-2 TO PUT COUNT OF DATA RECORDS IN * LAST RECORD (IDENTIFIED BY X'FF'). IFTHEN=(WHEN=(16,1,BI,EQ,X'FF'), OVERLAY=(160:5,11,ZD,SUB,+2,M11,LENGTH=11)) * REMOVE SEQNUM. OUTREC BUILD=(1,4,5:16) Below is a sanitized version of my JOINKEYS application with just two of the OUTFIL statements as an example. My question is, where do I place the INREC above to accomplish the insertion of the SEQNUM fields for each record in each OUTFIL such that each OUTFIL has the correct record count in the trailer record? If I could do that, I could adjust the BUILD parameters in the OUTFIL statements to remove the SEQNUM inserted by the INREC. I did try just adding the INREC/OUTREC following the SORT statement, but that results in a trailer count for the entire JOINed file, not individually for each OUTFIL file. Can this be done in one pass? Or do I need a separate trailer count pass for each output file? Sanitized JOINKEYS application: OPTION VLSCMP,VLSHRT * SPECIFY JOIN RECORD RETENTION JOIN UNPAIRED,F2 * SPECIFY THE JOIN KEYS FOR FILE 1 AND 2 JOINKEYS FILE=F1,FIELDS=(21,3,A,83,25,A) JOINKEYS FILE=F2,FIELDS=(21,3,A,83,25,A) * SPECIFY REFORMAT FOR FILE 1 AND 2 * POSITIONS 1-2 OF ALL INPUT DATA RECORDS (VB POS 5-6) ALWAYS CONTAIN 'D1' * POSITION 106 (VB POS 110) OF F1 DATA RECORDS ALWAYS CONTAINS 'J' * POSNS 1-2 AND 106 (VB POS 506 AND 110) OF HEADER RECORDS CONTAIN X'00' * POSNS 1-2 AND 106 (VB POS 506 AND 110) OF TRAILER RECORDS CONTAIN X'FF' REFORMAT FIELDS=(F2:1,4,F1:110,1,F2:6) SORT FIELDS=COPY * THIS SELECTS ONLY MATCHED RECORDS * AND HEADER/TRAILER RECORDS * OUTPUT RECORD BUILD CHANGES THE 'J' BACK TO 'D' OUTFIL FNAMES=OUT1,INCLUDE=((5,2,CH,EQ,C'J1'),OR, (5,2,CH,EQ,X''),OR, (5,2,CH,EQ,X'')), IFTHEN=(WHEN=(5,2,CH,EQ,C'J1'), BUILD=(1,4,C'D',6:6)), IFTHEN=(WHEN=((5,2,CH,EQ,X''),OR, (5,2,CH,EQ,X'')), BUILD=(1,4,5:5)) * THIS SELECTS ONLY UNMATCHED RECORDS OF ONE TYPE * AND HEADER/TRAILER RECORDS * OUTPUT RECORD BUILD CHANGES THE ' ' BACK TO 'D' OUTFIL FNAMES=OUT2,INCLUDE=(((05,2,CH,EQ,C' 1'),AND, (15,4,CH,EQ,C'0700')),OR, (5,2,CH,EQ,X''),OR, (5,2,CH,EQ,X'')), IFTHEN=(WHEN=(5,2,CH,EQ,C' 1'), BUILD=(1,4,C'D',6:6)), IFTHEN=(WHEN=((5,2,CH
Re: DFSORT JOINKEYS question: Where to put INREC and OUTREC?
Peter, Looking at your note again. I suspect that DFSORT's relatively new IFTRAIL function of OUTFIL can help you do what you want more easily (I suspect it wasn't yet available when I showed you the SEQNUM trick). For complete details on DFSORT's IFTRAIL, see: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T7000242 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Cobol and large QSAM record length
Martin Packer on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 08/31/2011 07:31:23 AM: DFSORT can process VBS. Whether it goes to 32767 or not I'll leave to Frank to clear up. A useful technique I've found in the past is to make DFSORT do my I/O to SMF and use an exit to pick up the records in a buffer. Yes, DFSORT can process data sets with RECFM=VBS and LRECL=32767 and pass the complete record to the exit. The SPANINC option can be used to tell DFSORT what to do if it encounters an incomplete spanned record. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Has anyone replaced ca-sort with ibm sort recently? any issues?
Brian Westerman at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 08/02/2011 11:20:13 PM: We have recently migrated two sites from CA-Sort to DF/Sort. The only real issues you can run up against are when the site decides to use the sort exits because they are not compatible. I talked to Brian offline about this because I wasn't sure what he meant about the exits and wanted to get clarification. He's actually referring to some add-on products CA supplies that are built as exits. If you use those add-on products, you may or may not have to make changes - the DFSORT Team can tell you if you contact us and let us know what add-on product you're using. As for the normal exits you'd write yourself (e.g. E15), AFAIK the interfaces for those are the same and you wouldn't have to change anything. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: 2nd question about SORT: only taking the last n records into SORTOUT
Dr. Stephen Fedtke at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/28/2011 05:22:59 AM: does any of you have a recommendation on advising SORT to only take the last n records into SORTOUT. problem is, for STARTREC=xxx you would need to know the resulting total number in advance. DFSORT's ICETOOL has an app for that called SUBSET. :-) For example if you want to get the last 8 records from a data set, you can use a DFSORT job like the following: //S1EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //IN DD DSN=... input file //OUT DD DSN=... output file //TOOLIN DD * SUBSET FROM(IN) TO(OUT) INPUT KEEP LAST(8) /* SUBSET has lots of other variations. For complete details, see: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA50/7.17?DT=20100630155256 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Q for SORT gurus: identifying unprintable chars via INCLUDE COND=
Dr. Stephen Fedtke at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/27/2011 10:54:05 PM: does any of you SORT gurus have a recommendation on efficiently identifying records including unprintable chars in a given range of columns. something like: is there any char lower than x'40' at any position in column range x:y? You could use DFSORT control statements like the following. I assumed your input file has RECFM=FB and LRECL=80, and you want to check between positions 11-60, but the statements can be changed appropriately for other situations: OPTION COPY INREC IFTHEN=(WHEN=INIT,BUILD=(1,80,81:11,50)), IFTHEN=(WHEN=INIT,FINDREP=(STARTPOS=81,OUT=X'00', IN=(X'01',X'02',X'03',X'04',X'05',X'06',X'07', X'08',X'09',X'0A',X'0B',X'0C',X'0D',X'0E',X'0F', X'10',X'11',X'12',X'13',X'14',X'15',X'16',X'17', X'18',X'19',X'1A',X'1B',X'1C',X'1D',X'1E',X'1F', X'20',X'21',X'22',X'23',X'24',X'25',X'26',X'27', X'28',X'29',X'2A',X'2B',X'2C',X'2D',X'2E',X'2F', X'30',X'31',X'32',X'33',X'34',X'35',X'36',X'37', X'38',X'39',X'3A',X'3B',X'3C',X'3D',X'3E',X'3F'))) OUTFIL INCLUDE=(81,50,SS,EQ,X'00'),BUILD=(1,80) The first IFTHEN makes a copy of 11-60 in 81-130. The second IFTHEN will change any character in 81-130 below X'40' to X'00' The OUTFIL with SS will include any record that has X'00' in 81-130 and then remove 81-130. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: 2nd question about SORT: only taking the last n records into SORTOUT
Robert A. Rosenberg at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/28/2011 09:55:42 AM: I was wondering if anyone would suggest this simple solution to the problem (you can then do a 2nd sort of the original SORTOUT to restore to original order). I forget the function of STARTREC (ie: does it suppress the first INPUT or OUTPUT records?). If suppressing OUTPUT records this solution will work since you first must sort ALL the records to identify the last X records. If it skips X input records before sorting the rest then this solution will not work since it will not produce the same result as STARTREC= (where is total records minus X). STARTREC=n starts at the nth OUTFIL input record. ENDREC=n stops at the nth OUTFIL input record. So you could SORT descending and use ENDREC=n to get the last n records, and then SORT ascending to get those n records back in order. But the SUBSET operator of DFSORT's ICETOOL is simpler and more efficient since it uses COPY instead of SORT. SUBSET FROM(IN) TO(OUT) INPUT KEEP LAST(8) 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: How to merge two differents files with ICETOOL
Hilario G. at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/18/2011 05:18:02 AM: I need to obtain an output file of 300 bytes from two differents files: - FILE1 with a lenght of 80 - FILE2 with a lenght of 300 I need to merge both files, first FILE1 and after FILE2. I have several tested but I don't find the correct solution. The last one JCL that I used, I only obtain FILE2: //STEP0001 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1DD DSN=FILE1,DISP=SHR //IN2DD DSN=FILE2,DISP=SHR //OUT DD DSN=FILE3,SPACE=(CYL,(10,1),RLSE), // DISP=(NEW,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=300,RECFM=FB) //TOOLIN DD * COPY FROM(IN1) TO(OUT) USING(CTL1) COPY FROM(IN2) TO(OUT) USING(CTL2) //CTL1CNTL DD * INREC FIELDS=(1,80) //CTL2CNTL DD * INREC FIELDS=(1,300) /* Where is the error or how to obtain FILE3 with the combination of two different files ? The correct DFSORT JCL would be: //STEP0001 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1 DD DSN=FILE1,DISP=SHR //IN2 DD DSN=FILE2,DISP=SHR //OUT DD DSN=FILE3,SPACE=(CYL,(10,1),RLSE), //DISP=(MOD,CATLG,DELETE),UNIT=SYSDA //TOOLIN DD * COPY FROM(IN1) TO(OUT) USING(CTL1) COPY FROM(IN2) TO(OUT) //CTL1CNTL DD * INREC OVERLAY=(300:X) /* Note the use of MOD for // OUT. Note also that this is not a merge - it is a copy. Merge implies that the input files are already in sorted order and the output file should be in sorted order. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: How to merge two differents files with ICETOOL
From: Frank Yaeger/San Jose/IBM To: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu Date: 07/18/2011 08:09 AM Subject:Re: How to merge two differents files with ICETOOL Sent this morning but hasn't made it to the list, so resending (please ignore if already posted). Hilario G. at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/18/2011 05:18:02 AM: I need to obtain an output file of 300 bytes from two differents files: - FILE1 with a lenght of 80 - FILE2 with a lenght of 300 I need to merge both files, first FILE1 and after FILE2. I have several tested but I don't find the correct solution. The last one JCL that I used, I only obtain FILE2: //STEP0001 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1DD DSN=FILE1,DISP=SHR //IN2DD DSN=FILE2,DISP=SHR //OUT DD DSN=FILE3,SPACE=(CYL,(10,1),RLSE), // DISP=(NEW,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=300,RECFM=FB) //TOOLIN DD * COPY FROM(IN1) TO(OUT) USING(CTL1) COPY FROM(IN2) TO(OUT) USING(CTL2) //CTL1CNTL DD * INREC FIELDS=(1,80) //CTL2CNTL DD * INREC FIELDS=(1,300) /* Where is the error or how to obtain FILE3 with the combination of two different files ? The correct DFSORT JCL would be: //STEP0001 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1 DD DSN=FILE1,DISP=SHR //IN2 DD DSN=FILE2,DISP=SHR //OUT DD DSN=FILE3,SPACE=(CYL,(10,1),RLSE), //DISP=(MOD,CATLG,DELETE),UNIT=SYSDA //TOOLIN DD * COPY FROM(IN1) TO(OUT) USING(CTL1) COPY FROM(IN2) TO(OUT) //CTL1CNTL DD * INREC OVERLAY=(300:X) /* Note the use of MOD for // OUT. Note also that this is not a merge - it is a copy. Merge implies that the input files are already in sorted order and the output file should be in sorted order. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: How to obtain a file bigger than 80 chars from two inputs file
Hilario G. at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/18/2011 11:57:52 AM: The additional information for the problem are: 1) FILE1 MEMBER OF A PDS LRECL=80. FB 2) FILE2 PS LRECL=210, FB 3) OUTPUT=FILE1+FILE2 PS,LRECL=210, FB FILE1 contains the header data for SMTP protocol. FILE2 is the attached file sentd via SMTP. I need to merge FILE1 (LRECL 80, FB) with data file FILE2 (LRECL 210, FB) to obtain a PS (LRECL 210, RECFM=FB)- I hope that anybodoy can help me. I thought I had already helped you. Anyway, you can use a DFSORT/ICETOOL job that like this: //S1EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1 DD DSN=pds(member),... (FB/80) //IN2 DD DSN=... input file2 (FB/210) //OUT DD DISP=(MOD,CATLG,DELETE),DSN=... output file (FB/210) //TOOLIN DD * COPY FROM(IN1) TO(OUT) USING(CTL1) COPY FROM(IN2) TO(OUT) //CTL1CNTL DD * INREC OVERLAY=(210:X) /* 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SHOWMVS and DFSORT 1.10 ICEPRMxx
Randy Hoekstra at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/14/2011 06:25:31 AM: ICETOOL DEFAULTS provided the confirmation I needed. Good. We were just confused by the SHOWMVS DFSORT information. Hopefully, the owners of SHOWMVS will comment on that here. If not, perhaps you could contact them offline. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SHOWMVS and DFSORT 1.10 ICEPRMxx
Randy Hoekstra at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/13/2011 10:12:15 AM: Going from z/OS 1.9 to 1.11 and using SHOWMVS to check some options. We implemented the new with z/OS 1.10 PARMLIB support for DFSORT installtion defaults (ICEPRMxx). Has anyone else noticed that SHOWMVS appears to be picking up the IBM DFSORT defaults, perhaps expecting the linked options module, not the ICEPRMxx options. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html I don't know anything about SHOWMVS and what it does/expects (and I suspect the author of SHOWMVS doesn't know anything about how I implemented the ICEPRMxx options). From a DFSORT perspective, you should use the DEFAULTS operator of DFSORT's ICETOOL to check your DFSORT installation defaults. I updated DEFAULTS to understand ICEPRMxx options and produce a report with complete details on the DFSORT installation options. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Merge two files with different lenght
Hilario G. at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/08/2011 02:12:33 AM: I solve the problem using next JCL: //STEP1 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1 DD DSN=file80,DISP=SHR //IN2 DD DSN=file210,DISP=SHR //OUT DD DSN=file210.output, // DISP=(MOD,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=210,RECFM=FB) //TOOLIN DD * COPY FROM(IN1) TO(OUT) COPY FROM(IN2) TO(OUT) USING(CTL1) //CTL1CNTL DD * INREC FIELDS=(1,210) /* I thank all who have given me ideas. Thank you very much everyone. Hilario, You don't need the INREC statement since the input in that case (file2) is 120 bytes. Are you aware that your job pads the 80-byte records on the right with binary zeros (X'00'). Is that what you really want? Normally blank padding (X'40') is preferred and if that's what you want, I'd suggest using the following DFSORT/ICETOOL job: //STEP1 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN1 DD DSN=file80,DISP=SHR //IN2 DD DSN=file210,DISP=SHR //OUT DD DSN=file210.output, //DISP=(MOD,CATLG,DELETE),UNIT=SYSDA //TOOLIN DD * COPY FROM(IN1) TO(OUT) USING(CTL1) COPY FROM(IN2) TO(OUT) //CTL1CNTL DD * INREC OVERLAY=(210:X) /* Note that DFSORT will automatically set RECFM=FB and LRECL=210 for the output data set. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Ads on IBM-MAIN
Ed Gould at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/07/2011 05:43:26 PM: ... Frank Yeager (sp?) It's ae, not ea (Yaeger) as shown twice in my signature line. ea is the more normal spelling, so I don't worry about it when people get it wrong. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Ads on IBM-Main
Shane at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/07/2011 11:28:56 PM: I must admit I've been ignoring/deleting this drivel till now, but anybody pissing on Sam and/or Frank (and their ilk) need to pull their bloody head(s) in. But as Sam just said, enough. Shane, Thanks for defending me, but as far as I can tell, nobody said anything bad about me in this thread. I've always felt very welcome on ibm-main. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SV: Ads on IBM-MAIN
Thomas Berg at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/07/2011 02:12:40 AM: ... Someone said that he fears that the list would be cluttered by technical questions and answers for products. Does that also e g include Yeager's answers to DFSORT questions ? Or is IBM as a software vendor excluded in this matter ? I actually answer very few questions about DFSORT and DFSORT's ICETOOL on ibm-main compared to the very large number of how-to questions I answer every day on various z/OS Help Boards and via direct e-mail. Obviously, I think answers to DFSORT questions are appropriate for ibm-main, but feel free to use those other channels instead. Note that I do post ads giving a URL for information on new DFSORT functional SPEs every so often, but I always get approval from Darren first. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: How to obtain a file bigger than 80 chars from two inputs file
Hilario G. wrote on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/07/2011 12:22:28 AM: I need to obtain a file of 210 bytes that contain the content of two files: . First file is a PDS 80 bytes . Second file is a flat file 210 bytes I tryed to obtain via IEBGENER and ICETOOL but after some examples I never get the end file with the contents of both files. May anybody send me an example for it ? If you explain in more detail what you're trying to do, I can tell you if DFSORT/ICETOOL can do it. Is the first file a complete PDS, one or more PDS members or what? What is the RECFM and LRECL of each file? Do you want the output to contain the records from the first file followed by the records from the second file, or something else (what)? If you want to send me the JES log from your ICETOOL run offline (yae...@us.ibm.com), I can take a look and try to help. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SV: Ads on IBM-MAIN
Rick Fochtman at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/07/2011 10:11:41 AM: Frank, I don't ever have a problem with your posts, and I think that the other list members would agree with that. We all know you follow the rules and the occasional plug for SPE's doesn't really qualify as an advertisement, at least to me. (To me, a SPE is a PTF that adds or improves function.) Please continue to monitor, and contribute whenever you feel it's appropriate. Rick and others, Thanks for the vote of confidence. I didn't mean to imply that I thought anyone had a problem with my posts or that I would stop contributing. I was just trying to let people know that there are other ways to get answers to DFSORT how-to questions if you don't want to use ibm-main for that purpose. I'm happy to answer questions on ibm-main, via direct e-mail, on Help boards, etc. The Ask Professor Sort topic Where can I ask specific questions about DFSORT gives more details. If you're interested, see: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T793 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SV: SV: Ads on IBM-MAIN
Thomas Berg at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/07/2011 11:41:31 AM: To be clear: I used You as an absurd example of consequences to makemy point. I very much appreciate Your postings. Thomas, Yes, that was clear (to me at least); that's how I interpreted it.. Thanks. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: FB to VB can DFsort do this?
Ravi Gaur on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 06/25/2011 05:41:10 PM: CONVERT option.. No. CONVERT is equivalent to VTOF for VB to FB. FTOV is the right option for FB to VB. That's why I gave them better names in DFSORT - to avoid confusion. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: FB to VB can DFsort do this?
Ken Leidner on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 06/22/2011 01:43:26 PM: I want to take a numbered FB 80 dataset (member) and convert it to a VB 255 format dataset, each line will really be 80 bytes long. I know how to reformat the line numbers 73-80 to the start of each line, and I can add the RDW (54 00 hex) before that, but what must I do to get the VB part? Will sort still think the output dataset is FB? Is there a keyword I need to use, much like when going from VB to FB? I don't have a place to run this right now, hence the question. Ken, If you want to take FB/80 records that look like this: 72 bytes of data and convert them to VB/255 records that look like this: 72 bytes of data where is the RDW containing X'5400', you would use a DFSORT job like this: //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=... input file (FB/80) //SORTOUT DD LRECL=255,DSN=... output file (VB/255) //SYSIN DD * OPTION COPY OUTFIL FTOV,BUILD=(73,8,1,72) /* If that's not what you want to do, then please explain in more detail what you want to do. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT
matan cohen on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 06/15/2011 04:59:44 AM: I need to convert this DFSORT function to an older version of DFSORT (FINDREP is not supported) : ... *//SYSIN DD ** * OPTION COPY OUTREC FINDREP=(IN=(X'00',...), OUT=C' ') the problem is that i need to run it in flexible way so it will run the same on different kind of datasets* (FB datasets) , so i tried this :* OPTION COPY ALTSEQ CODE=(0040,0140) OUTREC FIELDS=(1,TRAN=ALTSEQ) ... is there a way to run it without knowing the LRECL of the dataset? There's no built-in equivalent to FINDREP for that, but you can use the following DFSORT/ICETOOL job to do what you asked for. It uses the first FB record to create one VB record with LRECL+4, uses the RDW length-4 to construct an OUTREC statement with the correct LRECL as the length, and then uses the OUTREC statement to change the FB input records. //S1 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD DSN=... input file (FB/n) //T1 DD DSN=T1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) //C3 DD DSN=C3,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) //OUT DD DSN=... output file (FB/n) //TOOLIN DD * COPY FROM(IN) TO(T1) USING(CTL1) COPY FROM(T1) TO(C3) USING(CTL2) COPY FROM(IN) TO(OUT) USING(CTL3) /* //CTL1CNTL DD * OPTION STOPAFT=1 OUTFIL FTOV /* //CTL2CNTL DD * OUTFIL VTOF,BUILD=(C' OUTREC BUILD=(1,', 1,2,BI,SUB,+4,EDIT=(T),C',TRAN=ALTSEQ)',80:X) /* //CTL3CNTL DD * ALTSEQ CODE=(0040,0140) //DD DSN=*.C3,VOL=REF=*.C3,DISP=(OLD,PASS) 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: ICETOOL : Summarize DCOLLECT data for HLQ's
Varun Manocha wrote on 06/07/2011 08:58:57 AM: I have created a report from DCOLLECT data with dataset_name volume_serial creation_date space (in kb) and various other fields. I am looking for a way to scan this report and summarise the space used by each HLQ. Could someone help me out with this requirement please. The input record layout is something like : SYS1.VVDS.VPROD46 PROD46 2011123 10 ABC.DATASET.SOMETHING XYZA41 2008101 80 XYZ.SOMETHING.ELSE YXZA44 2007114 90 ABCXYZ.SOMETHING.ELSE ABC123 2006762 100 ABC.SOME.OTHER.DATASET AAA111 2005092 20 SYS1.VTOCIX.PROD46 ZZZ123 2005123 20 I would like the output to be something like this: SYS130 ABC 100 XYZ 90 ABCXYZ 100 You can use a DFSORT job like the following to do what you asked for. I couldn't tell the position, length and format of your fields or the RECFM of your input data set. I assumed it's RECFM=FB and just guessed at the positions - adjust as necessary. //S1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD * SYS1.VVDS.VPROD46 PROD46 2011123 10 ABC.DATASET.SOMETHING XYZA41 2008101 80 XYZ.SOMETHING.ELSEYXZA44 2007114 90 ABCXYZ.SOMETHING.ELSE ABC123 2006762100 ABC.SOME.OTHER.DATASETAAA111 2005092 20 SYS1.VTOCIX.PROD46ZZZ123 2005123 20 //SORTOUT DD SYSOUT=* //SYSIN DD * INREC PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8)), BUILD=(%01,11:61,8) SORT FIELDS=(1,8,CH,A) OUTFIL REMOVECC,NODETAIL, SECTIONS=(1,8, TRAILER3=(1,8,11:TOT=(11,8,ZD,M10,LENGTH=8))) /* SORTOUT would have: ABC100 ABCXYZ 100 SYS130 XYZ 90 If you need more specific help, feel free to e-mail me directly with the details of your input file (yae...@us.ibm.com). 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT E35 problem
DFSORT Release 14 was the DFSORT release for z/OS 1.4 and below. It was first available in 1998. z/OS DFSORT V1R5 was the DFSORT release for z/OS 1.5-1.9. It was first available in 2004. z/OS DFSORT V1R10 is the DFSORT release for z/OS 1.10-1.11. It was first available in 2008. z/OS DFSORT V1R12 is the DFSORT release for z/OS 1.12. It was first available in 2010. 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 From: daver++ da...@reinken.us To: IBM-MAIN@bama.ua.edu Date: 05/14/2011 08:43 AM Subject:Re: DFSORT E35 problem Sent by:IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu FYI, the shipped default for DFSORT R14 was COBEXIT=COB1 and we changed it to COBEXIT=COB2 starting with z/OS DFSORT V1R10. Hopefully, your site will move to supported releases of z/OS and DFSORT soon. How old are DFSORT R14 and z/OS V1R4? How old is z/OS V1R10? It will help me make a case for upgrading. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT E35 problem
BTW, for a chronological history of enhancements to DFSORT by release and PTFs, see: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T784 Frank -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT E35 problem
daver on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/13/2011 06:44:58 AM: I'm running into a weird problem with an E35 sort exit under DFSORT REL 14.0. Every time the exit executes, it has completely reset itself. From variables to files that have to be reopened with each new record. I previously developed on a z/VSE system, and I took my object code from there and linked it on the z/OS system where it evidenced the same problem. I've been over my linker options and everything appears to be reentrant and fine. DFSORT throws out an option list when it runs, I don't know anything about those options, I've always used SyncSort before. Can anyone point me in the right direction to figure out what is going on here? I'd need to see your E35 exit source, JES log, etc to help. Normally, I'd tell you to open a PMR so IBM service could collect the doc we need. But you're using DFSORT R14, which is no longer supported, so the service guys won't accept the PMR. The only currently supported DFSORT releases are z/OS DFSORT V1R10 and z/OS DFSORT V1R12. I'm willing to help via direct e-mail when I get back from vacation on Monday. Send me the following information offline from your Release 14 run(yae...@us.ibm.com) and I'll take a look: o E35 source and Assembly listing o complete JES log o a description of what the exit should do and what it is actually doing. I prefer attached .txt files. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT E35 problem
John McKown on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/13/2011 08:55:00 AM: Frank may correct me on this, but this problem sounds similar to one I had with a different product. It was calling a COBOL subroutine, but was not setting up an LE environment (due to an error on my part). So each invocation of the subroutine created and destroyed the LE environment, leading to a result similar to what you are seeing. Make sure that you have COBEXIT=COB2 as part of your SORT configuration. http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICECI107/2.2.5 I assumed we were talking about an Assembler E35 exit, but you may be right that it's a COBOL E35 exit in which case the problem could be related to LE. But I'd need the requested doc to say more. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT E35 problem
daver on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/13/2011 09:35:15 AM: It is a COBOL exit, and the COBEXIT=COB2 took care of it! Thanks so much for the help John. And thank you Frank for offering your assistance on an outdated product, I really appreciate it! I'm glad to hear that solved the problem (thanks, John). FYI, the shipped default for DFSORT R14 was COBEXIT=COB1 and we changed it to COBEXIT=COB2 starting with z/OS DFSORT V1R10. Hopefully, your site will move to supported releases of z/OS and DFSORT soon. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT merge, no duplicates
Frank Swarbuck on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 05/09/2011 02:09:40 PM: Given the following: //MERGESCF JOB ,'MERGE SCF',NOTIFY=SYSUID //MERGEEXEC PGM=SORT //SORTIN01 DD DISP=SHR,DSN=DAT1.CVSC.CVSSCF //SORTIN02 DD DISP=SHR,DSN=DAT2.CVSC.CVSSCF //SORTOUT DD DISP=SHR,DSN=DVFJS.CVSC.CVSSCF //SYSOUT DD SYSOUT=* //SYSINDD * MERGE FIELDS=(1,30,BI,A) SUMFIELDS=NONE /* Can I be guaranteed that if there a record with the same key in both SORTIN01 and SORTIN02 that SORTOUT will always get the record from SORTIN01 and not SORTIN02? You need to have EQUALS in effect to guarantee that. For example, add the following to //SYSIN: OPTION EQUALS 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Anyone good with DFSORT? Does DFSORT have the ability to multiply offsets that are not known until that time?
Brian Westerman on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 04/26/2011 02:25:05 AM: The occurrence fields are 1 byte hex fields, and their offsets change based on what they are set to as I outlined before. I noticed that Elardaus in a previous response had said you can save into temporary fields, which is what I would like to do, (I think). Is anyone familiar enough with DFSORT to show me how that's done for something like this? Brian, Well, I'd like to think I'm pretty good with DFSORT and DFSORT's ICETOOL. :-) But, I'm having trouble understanding exactly what you're trying to do and I suspect it involves using dynamically computed positions which DFSORT can't do. By saving into temporary fields, I'd guess Elardaus was referring to the trick of inserting fields temporarily at the end of a record. For example, in the first IFTHEN clause, you could multiply two fields and put the result at the end of the record (after the existing fields, e.g. at positions 81-88 if the LRECL is 80). You could then use that temporary saved value from positions 81-88 in the next IFTHEN clause, and so on. But the computed (saved) value could not be used as the starting position (p) for a field since that must be a static value. I suppose you might be able to come up with some way to dynamically generate control statements with those saved values, but I suspect this would be very, very difficult to accomplish. However, perhaps if I understood better what you were tyring to do, I could come up with something. If you want me to try, please give me a better example of your input records and what you expect for output. Explain the rules for getting from input to output. Give the RECFM and LRECL of the input file. It would be best if we work on this offline (yae...@us.ibm.com). 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Some basic sorts explained
Elardus Engelbrecht on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 04/11/2011 09:52:11 AM: Nice music too. Wonder what DFSORT ... people would say while dancing? To paraphrase Fred Astaire: I will sort, but I won't dance - don't ask me. :-) 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Why does SORT forbid E15+E35 in COBOL for OPTION COPY?
Peter Farley on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/29/2011 08:51:20 AM: I have a fairly simple application requirement to be able to use BOTH an E15 and an E35 exit in an OPTION COPY execution of SORT, but this is specifically disallowed (generates RC=16 message ICE161A from DFSORT and WER102A from SYNCSORT). If I use a MERGE FIELDS=(p,l,f,A) on a known ascending field (and the EQUALS option just for insurance that the record order is not disturbed) and use SORTIN01 for the input instead of SORTIN, it works just fine with both exits in COBOL. Can Mr. Yeager or some other SORT knowledgeable soul explain to me why this simple and straightforward use of SORT exits in a COPY operation is specifically forbidden? It simply makes no sense to me Peter, In the SORT case, the COBOL E15 and COBOL E35 are NEVER active at the same time, so the tricks we play with the COBOL environment work ok and we can allow both exits. For a SORT, the input (E15) and output (E35) phases are performed separately. In the COPY case, the COBOL E15 and COBOL E35 are active at the same time, so the tricks we play with the COBOL environment won't work and we don't allow both exits. For a COPY, the input (E15) and output (E35) phases are combined. In the MERGE case, the E15 is actually ignored (MERGE uses an E32 for input, not an E15). That's as much detail as I can give you. Not being a COBOL guy, I couldn't explain the tricks even if I was allowed to. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: binary add
Mike Schwab on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/29/2011 10:25:11 AM: You can use DFSORT SUM FIELDS to consolidate records. When adding two records together would overlow any output field, it will not consolidate those records and you end up with multiple records for the same key. You might be able to extend the fields with x'00' fillers in front, depending on how large a binary field it will allow. Or convert them to PD or ZD fields which allow 15 digits. DFSORT supports 8-byte binary values for SUM, so you could use INREC to extend the 4-byte binary values with 4 binary zeros on the left before SUMming to prevent overflow. Alternatively, you could use OUTFIL's SECTIONS with TRAILER3 and TOTAL. That way, you could add the 4-byte BI fields and get a larger BI, ZD or PD total without worrying about overflow. Frank Yaeger - DFSORT Development Team (IBM) - yae...@us.ibm.com Specialties: FINDREP, WHEN=GROUP, DATASORT, 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Why does SORT forbid E15+E35 in COBOL for OPTION COPY?
Peter Farley on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 03/29/2011 11:31:13 AM: Related question: Can a plain C subroutine (LE-enabled, not MetalC or SP C) be used as a DFSORT exit routine? If so, what would the fourth exit parameter be set to? C like for COBOL, or N for none? I'm an Assembler guy - I don't use C - so I'm probably the wrong person to ask. However, I suppose it depends on which type of exit parameter list C can take advantage of (if either). The Assembler exit lists are simple ones whereas the COBOL exit lists are more complex. Both are described in the DFSORT book here: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA50/4.0?DT=20100630155256 You would use N in the MODS statement for a routine that uses the Assembler exit list, or C in the MODS statement for a routine that uses the COBOL exit list. Maybe somebody who actually uses C can give you a better answer. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Darren's approval
Eric Bielefeld on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/10/2010 11:56:09 AM: It would be nice to be able to clear postings with Darren, but when is the last time you saw anything posted by him? I don't know if he still owns the list or not, but several years ago he told us he wouldn't be doing much with the list. If anyone has any different information, I for would like to know. I e-mailed Darren on 10/25/2010, asking him to approve my new DFSORT PTF announcement before I posted it, and he replied I could the same day. So as of Oct, 2010, he was still available for approving posts. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Darren's approval
Stephen Mednick on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/10/2010 12:53:54 PM: Frank, For the benefit of others, are you able to post Darren's email address? Well, I believe I got it from a public source (and it wouldn't be difficult to guess), so I hope Darren doesn't mind me posting it here. The e-mail address I used was: dar...@bama.ua.edu 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: FITS requirement
Hmmm. I gave the same meaning for FITS based on the same research (opening the tool). I guess Peter must be more believable. :-) 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 IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/08/2010 09:18:25 AM: I'll take this as official. Thanks! Frank On 12/8/2010 at 5:55 AM, in message of26b88749.75617325-on852577f3.00467f4f-852577f3.0046f...@us.ibm.com, Peter Relson rel...@us.ibm.com wrote: IBM's requirement process's use of FITS actually does stand for Fully Integrated Tool Set (I had never known that before, but I found it fairly easily when I opened the tool. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: FITS requirement
Frank Swarbrick on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/07/2010 12:11:46 PM: What does the FITS in FITS Requirement stand for? I believe it's: Fully Integrated Tool Set Frank Yaeger - DFSORT Development Team (IBM) - yae...@us.ibm.com Specialties: FINDREP, WHEN=GROUP, DATASORT, 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: FITS requirement
Frank Swarbrick on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 12/07/2010 01:16:38 PM: Let me quote the context. This is from an IBM response to a PMR: I have discussed this with other member sof the team and we realise that the way things work at the moment are different, but that is the design and is not fixable via an APAR. We would suggest that a FITS requirement be raised which includes all of Franks very good points which development can review. I guess I don't understand your question. I thought you were asking what the FITS abbeviation stood for and that's the question I answered. FITS is the name of the system used to submit formal requirements to IBM. Are you trying to find out how to submit a requirement via FITS? If so, somebody else will have to help you with that. I have access to the requirements database so I can see the requirements, but I've never actually submitted one and don't know how it's done. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
New DFSORT/ICETOOL Features (Oct, 2010)
(Darren pre-approved this post.) PTF UK90025 for z/OS DFSORT V1R10 and PTF UK90026 for z/OS DFSORT V1R12 (Oct, 2010) provide important enhancements to DFSORT and DFSORT's ICETOOL for resizing records (RESIZE operator); updating the trailer record (IFTRAIL); processing subsets (ACCEPT); translation of ASCII to EBCDIC (TRAN=ATOE), EBCDIC to ASCII (TRAN=ETOA), EBCDIC hex to binary (TRAN=UNHEX), and more; date field arithmetic (ADDDAYS, ADDMONS, ADDYEARS, SUBDAYS, SUBMONS, SUBYEARS, DATEDIFF, NEXTDday, PREVDday, LASTDAYW, LASTDAYM, LASTDAYQ and LASTDAYY); timestamp constant with microseconds (DATE5); group functions (KEYBEGIN); use of SET and PROC symbols in control statements (JPnstring in EXEC PARM); more information in reports; arger fields; easier migration from other sort products, and more. For complete details on these new features, see my User Guide for DFSORT PTFs UK90025 and UK90026 paper (sortugph.pdf) at: http://www.ibm.com/support/docview.wss?rs=114uid=isg3T7000242 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT: SUM count?
Frank Swarbuck on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 10/18/2010 03:49:54 PM: Is there any way using the SUM statement to get not only the totals but the total number of records that fed in to that total? In other words, if I have 10 records with duplicate keys totalling 500.00 I want to know that there were 10 (maybe put it in to a count field somewhere in the OUTREC). Frank, You could probably use the SECTIONS parameter of DFSORT's OUTFIL statement with TOTAL and COUNT to do what you want more easily. SECTIONS is more flexible then SUM. But if you want to do it with SUM, you can just set up a counter with a ZD 1 in it somewhere in the record and SUM that. If you want more help with this, feel free to send me the details offline (an example of your input and expected output, rules for getting from input to output, RECFM, LRECL, position, length and format of fields). 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT: SUM count?
Frank Swarbuck on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 10/19/2010 01:37:16 PM: I just needed a quick and dirty program to tell me how many duplicate records were in a file. I ended up doing something else, though I've already forgotten what! But I will review your ideas more thoroughly later. My first recommendation was based on getting both totals and counts, which is what I thought you originally asked for. If you just want a count of the duplicate records, the OCCUR operator of DFSORT's ICETOOL will do that quite easily: OCCUR FROM(IN) LIST(OUT) ON(p,m,f) ON(VALCNT) ALLDUPS For more information on what you can do with OCCUR, see: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA50/7.11?DT=20100630155256 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: How to determine software levels of DFSORT
Lizette Koehler at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 10/12/2010 08:01:45 AM: I got a little confused looking at a DB2 using DFSORT. We are z/OS V1.11 and when the job ran it showed CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R10 - 10:34 ON TUE OCT 12, 2010 - Is this the correct level of DFSORT for z/OS V1.11? Is there a table somewhere I can verify this? o z/OS DFSORT V1R12 is used for z/OS 1.12 o z/OS DFSORT V1R10 is used for z/OS 1.10 and z/OS 1.11 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SORT question
Terry Draper on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 09/30/2010 04:18:38 AM: Frank, I did not plan for SORT to read the records. SORTIN is dummy. The exit reads the records directly and inserts the records into sort. I have written many such E15 exits to process SMF data. The E15 does the read from its own input file. It then only reads the records until the higher date is reached. It then stops reading any more records and signals to sort that the input is finished. This will only read the required records. Thanks for clarifying. It wasn't clear that you meant to have the E15 read the records instead of DFSORT. That might be more efficient, or or it might not, depending on the input records and kept records, the efficiency of the E15 in reading the records vs DFSORT, etc. The only way to tell would be to try both approaches. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SORT question
Terry Draper wrote on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 09/29/2010 02:43:19 AM: Maybe try using an E15 exit to read the input file. Stop passing the records when you reach the date higher than required.. I am not sure how I would pass the date to the E15. Could it be a parm. Or it could be read from a separate single record input file on first pass through the E15. Any comments on this? This would probably have the opposite effect of what was requested (better performance due to NOT reading records once the date is found). Although, you can stop passing the records to the exit by having the exit pass back RC=8 early, ALL of the records will still be read; some will just not be passed to the exit. But since an exit is not really needed in this case, and using an exit involves additional overhead, this wouldn't accomplish anything. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SORT question
David Bettern on IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 09/28/2010 08:14:26 AM: I think the real question was how to tell sort to stop reading anymore input records when it reaches the first record that's greater than the selection criteria instead of reading through the rest of the file but not selecting any of those records. I'm not sure we have a way to do that but I'm sure Frank will weigh in shortly. The only way to tell DFSORT to stop processing records is with STOPAFT=n. But in this case, we can't know what n is ahead of time. So I don't see a way to do it in one pass. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SORT question
Martin Packer at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 09/28/2010 12:19:50 PM: E15 exit? NOT the nicest of solutions. :-( The only way an E15 could stop DFSORT from processing all of the records would be to pass back RC=16 which DFSORT would interpret as terminate with RC=16. The condition code would then be RC=16 which I doubt would be acceptable. If the E15 passed back an early RC=8 (end of input), DFSORT would still read all of the records - it just wouldn't pass the rest of the records to the E15. 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: DFSORT DATE conversion
Frank Swarbrick at IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 09/24/2010 08:26:27 AM: Frank, Just got the PTF applied (had to wait for an IPL for it to become effective) and it's exactly what I wanted. Thanks! Ended up using 67,3,Y2U,TOGREG=(Y4W(/)) to give me C'mm/dd/ccyy' format. Great! Nice to be able to use something other than COBOL for simple file extracts. I appreciate the feedback. We aim to please. :-) 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: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html