Ken,
What about SAS?
If you only have the workstation variety you can still read and write
datasets directly to and from the mainframe using the "FTP" operator in the
FILENAME statement.
For example I read SMF concatenated SMF datasets from my laptop using the
following:
FILENAME SMF FTP (
"'PESMF.SMFDUMP.PE02.D120104.T000111'"
"'PESMF.SMFDUMP.PE02.D120105.T000110'"
"'PESMF.SMFDUMP.PE02.D120106.T000110'"
"'PESMF.SMFDUMP.PE02.D120107.T000111'"
"'PESMF.SMFDUMP.PE02.D120108.T000116'"
"'PESMF.SMFDUMP.PE02.D120109.T000119'"
"'PESMF.SMFDUMP.PE02.D120109.T052018'"
"'PESMF.SMFDUMP.PE02.D120110.T000124'"
"'PESMF.SMFDUMP.PE02.D120110.T082924'"
)
USER='userid' HOST='172.17.51.21' DEBUG
S370VS RCMD='SITE RDW' LRECL=32760
PASS='password';
The method described by Tony or the process you currently use for REXX could
be reworked in SAS, and this would be faster than using EXECIO based on some
recent experience, even over FTP.
Ron
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]] On
Behalf Of
> Frank Yaeger
> Sent: Tuesday, January 31, 2012 10:52 AM
> To: [email protected]
> Subject: Re: [IBM-MAIN] Split records using SORT
>
> Ken MacKenzie at IBM Mainframe Discussion List <
<mailto:[email protected]> [email protected]> 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-2 2-byte binary length
> > 3-4 2-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.SMITHY USR0002 JEFFREY.SNOTRAG USR0003 JOE.SCHMO
> >
>
0100EEDFFFF4CDCC4EDCECE0100EEDFFFF4DCCCDCE4EDDEDCC0100EEDFFFF4DDC4ECCDD0000
> >
>
0700429000106954B2493880B00429000201566958B2563917050042900030165B238460000
> >
> >
> > I want to split the above into 3 records (presumably using RECM=VB):
> > ----+----1----+----
> > USR0001 FRED.SMITHY
> > EEDFFFF4CDCC4EDCECE
> > 429000106954B249388
> >
> > ----+----1----+----2---
> > USR0002 JEFFREY.SNOTRAG
> > EEDFFFF4DCCCDCE4EDDEDCC
> > 429000201566958B2563917
> >
> > ----+----1----+--
> > USR0003 JOE.SCHMO
> > EEDFFFF4DDC4ECCDD
> > 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) - <mailto:[email protected]>
[email protected]
> Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
>
> => DFSORT/MVS is on the Web at <http://www.ibm.com/storage/dfsort>
http://www.ibm.com/storage/dfsort
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions, send email
to
> <mailto:[email protected]> [email protected] with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN