Improve creation of file/rpt reducing the number of passes



IBM's flagship sort product DFSORT for sorting, merging, copying, data manipulation and reporting. Includes ICETOOL and ICEGENER

Improve creation of file/rpt reducing the number of passes

Postby tony2nd » Wed Oct 01, 2014 11:40 pm

After I got help with the TIME2 question I still have one more question.

I am creating a file and a report.

The report has 5 parts:
1. list of all records
2. total of records
3. total by service code (I only have one: 9999)
4. total by bank and service code
5. final total by service code

I created 4 CTLs, one for the file and three for the report. I imagine the job will sort the same file 4 times. Since the sort is always the same: bank/service code - is there a way to combine them so I have less passes?

Thank you,
Tony

The code:
//S1       EXEC PGM=ICETOOL             
//TOOLMSG  DD  SYSOUT=*                 
//DFSMSG   DD  SYSOUT=*                 
//IN       DD  *                         
 0000000000001 001                       
 0000000000002 002                       
 0000000000003 001                       
 0000000000005 001                       
//OUT      DD  SYSOUT=*                 
//RPT1     DD  SYSOUT=*,LRECL=132       
//TOOLIN   DD  *                         
* CREATES THE XX FILE                   
  COPY FROM(IN) TO(OUT) USING(CTL1)     
* CREATES THE XX REPORT                 
  COPY FROM(IN) TO(RPT1) USING(CTL2)     
  COPY FROM(IN) TO(RPT1) USING(CTL3)     
  COPY FROM(IN) TO(RPT1) USING(CTL4)     
//CTL1CNTL DD  *                         
  SORT FIELDS=(016,003,CH,A,002,013,CH,A)
  INREC OVERLAY=(101:TIMENS=(24))       
  OUTFIL REMOVECC,                     
  HEADER1=(001:C'HEADER',             
           010:DATENS=(4MD),           
           018:101,4,                 
           025:C'SOME TITLE'),         
  BUILD=(001:C'D11',                   
         004:016,003,                 
         007:C'01',                   
         009:C'00000',                 
         014:002,013,                 
         027:C'9999',                 
         031:C'00000000000000001',     
         048:DATENS=(4MD),             
         100:C' '),                   
  TRAILER1=(001:C'TRAILER',           
            010:DATENS=(4MD),         
            018:101,4,                 
            025:COUNT=(TO=ZD,LENGTH=6),
            100:C' ')                 
/*                                     
//CTL2CNTL DD  *                                               
  SORT FIELDS=(016,003,CH,A,002,013,CH,A)                       
  OUTFIL REMOVECC,                                             
  HEADER1=(001:C'REPORT ID:  XXXXXXXX',                         
           045:C'ANOTHER TITLE',                               
           125:DATENS=(4MD),/,                                 
           043:C'THIS REPORT IS WORTH SOMETHING',/),           
  HEADER2=(001:C'BANK   ACCOUNT        SVC           NUMBER OF',
           057:C'AMOUNT            ORIGIN         COST',       
           109:C'LOCKBOX    EFFECTIVE',/,                       
           001:C'       NUMBER         CODE          ITEMS',   
           090:C'CENTER             NO.        DATE'),         
  OUTREC=(001:016,003,                                         
          008:002,013,                                         
          023:C'9999',                                         
          029:C'00000000000000001',                             
          120:DATENS=(4MD),                                     
          132:C' '),                                           
  TRAILER1=(015:C'TOTALS',                                     
            029:COUNT=(TO=ZD,LENGTH=17))                       
/*                                                             
//CTL3CNTL DD  *                                               
  SORT FIELDS=(016,003,CH,A,002,013,CH,A)                       
  OUTFIL REMOVECC,NODETAIL,                                     
  BUILD=(132:X),                                               
  HEADER1=(/,                                                   
           001:C'SERVICE CODE TOTALS              NUMBER ITEMS',
           057:C'AMOUNT'),                                     
  TRAILER1=(001:C'9999',                                       
            029:COUNT=(TO=ZD,LENGTH=17),/)                     
/*                                                             
//CTL4CNTL DD  *                                               
  SORT FIELDS=(016,003,CH,A,002,013,CH,A)                       
  OUTFIL REMOVECC,NODETAIL,                                     
  BUILD=(132:X),                                               
  SECTIONS=(016,003,SKIP=P,                                     
     HEADER3=(001:C'BANK',006:016,003,011:C'TOTAL',/,           
              001:C'SERVICE CODE TOTALS   ITEMS AMOUNT'),       
    TRAILER3=(001:C'9999',                                     
              020:COUNT=(TO=ZD,LENGTH=17),/)),                 
    TRAILER1=(001:C'GRAND TOTAL',/,                       
              001:C'SERVICE CODE TOTALS   ITEMS AMOUNT',/,
              001:C'9999',                                 
              020:COUNT=(TO=ZD,LENGTH=17))                 
//                                                         


And the report:
REPORT ID:  XXXXXXXX                        ANOTHER TITLE                                                                   20141001
                                          THIS REPORT IS WORTH SOMETHING                                                           
                                                                                                                                   
BANK   ACCOUNT        SVC           NUMBER OF           AMOUNT            ORIGIN         COST               LOCKBOX    EFFECTIVE   
       NUMBER         CODE          ITEMS                                                CENTER             NO.        DATE         
001    0000000000001  9999  00000000000000001                                                                          20141001     
001    0000000000003  9999  00000000000000001                                                                          20141001     
001    0000000000005  9999  00000000000000001                                                                          20141001     
002    0000000000002  9999  00000000000000001                                                                          20141001     
              TOTALS        00000000000000004                                                                                       
                                                                                                                                   
SERVICE CODE TOTALS              NUMBER ITEMS           AMOUNT                                                                     
9999                        00000000000000004                                                                                       
                                                                                                                                   
BANK 001  TOTAL                                                                                                                     
SERVICE CODE TOTALS   ITEMS AMOUNT                                                                                                 
9999               00000000000000003                                                                                               
                                                                                                                                   
BANK 002  TOTAL                                                                                                                     
SERVICE CODE TOTALS   ITEMS AMOUNT                                                                                                 
9999               00000000000000001         
                                             
GRAND TOTAL                                 
SERVICE CODE TOTALS   ITEMS AMOUNT           
9999               00000000000000004         
tony2nd
 
Posts: 4
Joined: Wed Jun 22, 2011 12:19 am
Has thanked: 0 time
Been thanked: 0 time

Re: Improve creation of file/rpt reducing the number of passes

 

Return to DFSORT/ICETOOL/ICEGENER

 


  • Related topics
    Replies
    Views
    Last post