Example 12 in the INREC control statement section of the DFSORT Application 
Programming Guide (SC26-7523-04) seems pretty close to what you want.

> -----Original Message-----
> From: IBM Mainframe Discussion List <[email protected]> On
> Behalf Of Gil Cardenas
> Sent: Monday, October 29, 2018 5:06 AM
> To: [email protected]
> Subject: DFSORT to insert missing values
> 
> Sorry for the long winded explanation but need to set the context of the 
> issue.
> 
> Background:
> I have a print file (LRECL=133, RECFM=FBA) that I am working with that 
> contains
> report data and is a rather large file 2,000 cylinders.
> 
> I need to extract some statistics from the file but the format needs some 
> tweaking to
> make the records consistent.
> 
> There are two types of records, a report online record and possibly (not 
> always) a report
> offline record.
> 
> The dataset is so large that it is difficult to move around.  I can exclude 
> all of the
> headers and blank lines in the file and reduce the size of the dataset to 
> about half or
> 1,000 cyl which is still fairly hefty.
> 
> I am very limited to the tools I can use and the only real utility I can use 
> is DFSORT.
> I am familiar with the typical use of DFSORT but do not have any experience 
> using
> the IFTHEN/WHEN GROUP/PUSH commands and although I can follow some of the
> online examples, none really match what I am trying to do.
> 
> Request:
> I would like to generate statistics from these records, i.e. number of 
> online/offline
> entries per report but I need to make them consistent by identifying each 
> record as
> belonging to a report.
> 
> For example, after removing all the headers and blank lines from the dataset 
> so I am
> only working with the data, REPORT01 is an online report version and right 
> below it I
> need to insert/replace the following "CART" records with REPORT01 so that they
> identify to that report and so on.
> 
> IOW, extract columns 1-10 for the report name, go to the next record and if 
> first 4
> characters are blank, insert the previous record's report name.
> 
> This way, all records will have an identity that I can then hopefully process 
> in smaller
> chunks.
> 
> 
>  REPORT  ID  DATE/TIME   CREATED    PAGES    STATUS   DATASET-NAME
> ----------  --------------------   -----    ------   ------------
> REPORT01    10/13/2018  02:30.05      55    ACTIVE   MYDSN.ARCHIVE.V6...
> REPORT01    10/12/2018  02:30.06      57    ACTIVE   MYDSN.ARCHIVE.V6...
>        UNIT       VOL SER   EXP DATE     SEQ NUM   MIGR DATASET NAME
>        --------   -------   ----------   -------   -----------------
>        CART       004016   02/10/2046    0016     MYDSN.MIG.D9930.U02...
>        CART       013773   02/16/2046    0003     MYDSN.MIG.D9930BU.V...
>  REPORT  ID  DATE/TIME   CREATED    PAGES    STATUS   DATASET-NAME
> 
> ----------  --------------------   -----    ------   ------------
> REPORT02    09/30/2018  14:01.03       4    MIGRATED MYDSN.ARCHIVE.V6...
>        UNIT       VOL SER   EXP DATE     SEQ NUM   MIGR DATASET NAME
>        --------   -------   ----------   -------   -----------------
>        CART       002363   01/31/2043    1109     MYDSN.MIG.D9925.U14...
>        CART       024147   01/08/2046    0030     MYDSN.MIG.D9925BU.V...
> REPORT02    06/30/2018  14:00.48       4    MIGRATED MYDSN.ARCHIVE.V6...
>        UNIT       VOL SER   EXP DATE     SEQ NUM   MIGR DATASET NAME
>        --------   -------   ----------   -------   -----------------
>        CART       002363   01/31/2043    1016     MYDSN.MIG.D9925.U14...
>        CART       008034   10/22/2045    0015     MYDSN.MIG.D9925BU.V...
> 
> Hope this make sense!

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to