Re: Can DFSORT do pattern matching?

2012-05-31 Thread Frank Yaeger
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!

2012-05-30 Thread Frank Yaeger
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!

2012-05-30 Thread Frank Yaeger
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

2012-05-29 Thread Frank Yaeger
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?

2012-05-29 Thread Frank Yaeger

��z{S���}�ĝ��xjǺ�*'���O*^��m��Z�w!j�

Re: Can DFSORT do pattern matching?

2012-05-29 Thread Frank Yaeger

��z{S���}�ĝ��xjǺ�*'���O*^��m��Z�w!j�

Re: Can DFSORT do pattern matching?

2012-05-29 Thread Frank Yaeger
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

2012-05-16 Thread Frank Yaeger
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

2012-05-16 Thread Frank Yaeger
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

2012-05-15 Thread Frank Yaeger
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

2012-05-08 Thread Frank Yaeger
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

2012-04-24 Thread Frank Yaeger
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

2012-04-19 Thread Frank Yaeger
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?

2012-03-30 Thread Frank Yaeger
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?

2012-03-30 Thread Frank Yaeger
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?

2012-03-30 Thread Frank Yaeger
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?

2012-03-29 Thread Frank Yaeger
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?

2012-03-29 Thread Frank Yaeger
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

2012-03-27 Thread Frank Yaeger
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

2012-03-26 Thread Frank Yaeger
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

2012-03-01 Thread Frank Yaeger
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

2012-02-29 Thread Frank Yaeger
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

2012-02-28 Thread Frank Yaeger
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

2012-02-28 Thread Frank Yaeger
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

2012-02-27 Thread Frank Yaeger
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

2012-02-22 Thread Frank Yaeger
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

2012-02-22 Thread Frank Yaeger
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

2012-02-14 Thread Frank Yaeger
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

2012-02-13 Thread Frank Yaeger
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

2012-02-09 Thread Frank Yaeger
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

2012-02-06 Thread Frank Yaeger
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

2012-01-31 Thread Frank Yaeger
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

2012-01-31 Thread Frank Yaeger
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

2012-01-30 Thread Frank Yaeger
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

2012-01-30 Thread Frank Yaeger
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

2012-01-24 Thread Frank Yaeger
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

2012-01-24 Thread Frank Yaeger
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

2012-01-23 Thread Frank Yaeger
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

2012-01-20 Thread Frank Yaeger
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

2012-01-20 Thread Frank Yaeger
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)

2012-01-17 Thread Frank Yaeger
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)

2012-01-03 Thread Frank Yaeger
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?

2011-12-06 Thread Frank Yaeger
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?

2011-12-06 Thread Frank Yaeger
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

2011-12-05 Thread Frank Yaeger
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

2011-12-05 Thread Frank Yaeger
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

2011-12-05 Thread Frank Yaeger
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

2011-11-21 Thread Frank Yaeger
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

2011-11-21 Thread Frank Yaeger
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

2011-11-21 Thread Frank Yaeger
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

2011-10-07 Thread Frank Yaeger
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

2011-10-07 Thread Frank Yaeger
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?

2011-09-15 Thread Frank Yaeger
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?

2011-09-15 Thread Frank Yaeger
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

2011-08-31 Thread Frank Yaeger
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?

2011-08-03 Thread Frank Yaeger
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

2011-07-28 Thread Frank Yaeger
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=

2011-07-28 Thread Frank Yaeger
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

2011-07-28 Thread Frank Yaeger
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

2011-07-20 Thread Frank Yaeger
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

2011-07-18 Thread Frank Yaeger

  
  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

2011-07-18 Thread Frank Yaeger
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

2011-07-14 Thread Frank Yaeger
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

2011-07-13 Thread Frank Yaeger
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

2011-07-08 Thread Frank Yaeger
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

2011-07-08 Thread Frank Yaeger
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

2011-07-08 Thread Frank Yaeger
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

2011-07-07 Thread Frank Yaeger
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

2011-07-07 Thread Frank Yaeger
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

2011-07-07 Thread Frank Yaeger
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

2011-07-07 Thread Frank Yaeger
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?

2011-06-27 Thread Frank Yaeger
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?

2011-06-22 Thread Frank Yaeger
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

2011-06-15 Thread Frank Yaeger
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

2011-06-07 Thread Frank Yaeger
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

2011-05-14 Thread Frank Yaeger
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

2011-05-14 Thread Frank Yaeger
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

2011-05-13 Thread Frank Yaeger
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

2011-05-13 Thread Frank Yaeger
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

2011-05-13 Thread Frank Yaeger
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

2011-05-09 Thread Frank Yaeger
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?

2011-04-26 Thread Frank Yaeger
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

2011-04-11 Thread Frank Yaeger
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?

2011-03-29 Thread Frank Yaeger
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

2011-03-29 Thread Frank Yaeger
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?

2011-03-29 Thread Frank Yaeger
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

2010-12-10 Thread Frank Yaeger
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

2010-12-10 Thread Frank Yaeger
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

2010-12-08 Thread Frank Yaeger
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

2010-12-07 Thread Frank Yaeger
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

2010-12-07 Thread Frank Yaeger
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)

2010-10-26 Thread Frank Yaeger
(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?

2010-10-19 Thread Frank Yaeger
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?

2010-10-19 Thread Frank Yaeger
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

2010-10-12 Thread Frank Yaeger
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

2010-09-30 Thread Frank Yaeger
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

2010-09-29 Thread Frank Yaeger
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

2010-09-28 Thread Frank Yaeger
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

2010-09-28 Thread Frank Yaeger
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

2010-09-24 Thread Frank Yaeger
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


  1   2   3   4   5   >