Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
copy groups of records based on subgroup's record occurences

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
Balaji Canabady

New User


Joined: 07 Dec 2011
Posts: 19
Location: India

PostPosted: Thu Mar 15, 2012 5:56 pm    Post subject: copy groups of records based on subgroup's record occurences
Reply with quote

Hi

My input file(REFM=VB,LRECL=1000) has the following sets of records
Quote:

01 header1/
02 header2/
.
.
03 data records(which are of 2 types)

03,111111,.../(which are of 2 types)
16,101,.../
16,102,.../
49,3/

03,222222,.../
16,201,.../
16,202,.../
49,3/
.
.
98 Trailer1/
99 Trailer2/


Sample Input Data
Code:

01,000000000,000000000,120221,0021,1,01,120221,2/
02,,305100074,1,120220,0021,INR,2,/             
03,111111,22117001,INR,015,+0,,Z,045,+0,,Z,100,+0,0,Z,400,+0,0,Z/
49,2/                                                           
03,111111,59999999,USD,470/
16,101,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
49,6/
03,111111,59999999,USD,470/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
49,11/
03,222222,48888888,USD,470/
16,201,50000,V,120220,0000/
16,201,50000,V,120220,0000/
16,201,50000,V,120220,0000/
16,201,50000,V,120220,0000/
16,202,50000,V,120220,0000/
16,202,50000,V,120220,0000/
16,202,50000,V,120220,0000/
16,202,50000,V,120220,0000/
49,11/
03,222222,48888888,USD,470/
16,201,50000,V,120220,0000/
16,202,50000,V,120220,0000/
49,8/
98/     
99,37/


My requirement is to have headers, trailers and only the data records starting with '03,111111' having occurences of '16,101' and '16,102' records greater than 3 times.

Sample Output Data
Code:

01,000000000,000000000,120221,0021,1,01,120221,2/
02,,305100074,1,120220,0021,INR,2,/             
03,111111,59999999,USD,470/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,101,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
16,102,50000,V,120220,0000/
49,11/
98/     
99,15/


The following control card of mine copies the data records starting with '03,111111. But how do I modify it to include only data records having occurences of '16,101' and '16,102' more than 3 times.

Code:

//TOOLIN   DD *                           
 COPY FROM(INP) TO(OUT) USING(CTL1)       
//CTL1CNTL DD *                           
  INREC IFTHEN=(WHEN=INIT,BUILD=(1,4,6:5)),
      IFTHEN=(WHEN=GROUP,                 
      BEGIN=(9,6,CH,EQ,C'111111'),         
      END=(6,3,CH,EQ,C'49,'),             
      PUSH=(5:ID=1))                       
  OUTFIL FNAMES=OUT,                       
      INCLUDE=(5,1,CH,NE,C' ',OR,         
               6,2,CH,EQ,C'01',OR,         
               6,2,CH,EQ,C'02',OR,         
               6,2,CH,EQ,C'98',OR,         
               6,2,CH,EQ,C'99'),           
      BUILD=(1,4,5:6)                     
Back to top
View user's profile Send private message

Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Thu Mar 15, 2012 11:17 pm    Post subject: Reply to: copy groups of records based on subgroup's record
Reply with quote

Balaji Canabady,

Use the following DFSORT JCL which will give you the desired results.

Code:

//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//INA      DD DSN=Your input VB file,DISP=SHR
//INB      DD DSN=Same input VB file again,DISP=SHR
//SORTOUT  DD SYSOUT=*                                               
//SYSIN    DD *                                                     
  OPTION COPY                                                       
  JOINKEYS F1=INA,FIELDS=(5,8,A),SORTED,NOSEQCK                     
  JOINKEYS F2=INB,FIELDS=(5,8,A)                                     
  JOIN UNPAIRED                                                     
  REFORMAT FIELDS=(F1:1,4,F2:5,16,F1:21)                             
  INREC IFTHEN=(WHEN=GROUP,PUSH=(5:24,6),                           
  BEGIN=(21,2,CH,EQ,C'03'),END=(21,2,CH,EQ,C'49'))                   
                                                                     
  OUTFIL BUILD=(1,4,21),                                             
  INCLUDE=(21,2,SS,EQ,C'01,02,98,99',OR,                             
          (05,6,CH,EQ,C'111111',AND,13,4,ZD,GT,3,AND,17,4,ZD,GT,3)) 
                                                                     
//*                                                                 
//JNF1CNTL DD *                                                     
  INREC IFTHEN=(WHEN=INIT,BUILD=(1,4,SEQNUM,8,ZD,START=0,8X,5)),     
  IFTHEN=(WHEN=GROUP,PUSH=(5:ID=8),                                 
  BEGIN=(21,2,CH,EQ,C'03'),END=(21,2,CH,EQ,C'49'))                   
//*                                                                 
//JNF2CNTL DD *                                                     
  OPTION EQUALS                                                     
  INREC IFTHEN=(WHEN=INIT,BUILD=(1,4,SEQNUM,8,ZD,START=0,8C'0',5)), 
  IFTHEN=(WHEN=GROUP,PUSH=(5:ID=8),                                 
  BEGIN=(21,2,CH,EQ,C'03'),END=(21,2,CH,EQ,C'49')),                 
  IFTHEN=(WHEN=(21,6,CH,EQ,C'16,101'),OVERLAY=(16:C'1')),           
  IFTHEN=(WHEN=(21,6,CH,EQ,C'16,102'),OVERLAY=(20:C'1')) 
           
  SUM FIELDS=(13,4,ZD,17,4,ZD)
//*
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Compare and COPY using DFSORT pshongal DFSORT/ICETOOL 3 Fri Nov 17, 2017 9:49 am
No new posts Extract Record using range of Data scorp_rahul23 DFSORT/ICETOOL 3 Wed Nov 15, 2017 11:54 pm
No new posts Split files upto certain limit based ... bubbu75 DFSORT/ICETOOL 5 Tue Nov 14, 2017 11:11 pm
No new posts Squeeze record left so that zeroes ar... Vignesh Sid SYNCSORT 5 Fri Nov 10, 2017 1:40 pm
No new posts Increment number for every group of r... srajendran2 DFSORT/ICETOOL 7 Thu Nov 09, 2017 10:31 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us