Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Split a file into 2, matched and unmatched, using a Ref File

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

New User


Joined: 12 Apr 2012
Posts: 30
Location: LA, California

PostPosted: Mon Aug 06, 2012 5:49 pm    Post subject: Split a file into 2, matched and unmatched, using a Ref File
Reply with quote

I have a master file which has huge numeber of records.

My requirement is to split the Master file into two output files, based on another Reference File. The output files should in the same layout/format as that of the Master file.

The reference file is completely of a different layout. A particular key field matches with the Master file and Refence file.

The key fields in the reference file needs to be matched with the (first 13 bytes of the) master file and for a matching key records, the records needs to be written in the matched output file. Vice versa, for an unmatched key records, the records needs to be written in another unmatched output file.

Master File: [Duplicates possible in the first 13 bytes and first 13 bytes form the Reference file's Key]
Code:

Keyfield                Data_part

015015000000198781  KIM WILSON 45578 asdsaduhjdasd
015015000000198782  KIM WILSON 47851 asdsaduhjdasd
015015000000198783  KIM WILSON 47221 asdsaduhjdasd
015015000000198784  KIM WILSON 21351 asdsaduhjdasd
015015000120178948  JULES THOM 21351 asdsaduhjdasd
015015000120178947  JULES THOM 21351 asdsaduhjdasd
015015000120178946  JULES THOM 21351 asdsaduhjdasd
015015000779846241  STANLEE JO 21351 asdsaduhjdasd
015015000999846241  CHRISTO    21351 asdsaduhjdasd
015015000999846241  DALE JAMES 21351 asdsaduhjdasd




Reference File: [First 13 bytes is the Key field for this File ]
Code:


Keyfield            Data_part

0150150000001  KIM WILSON 45578 asdsaduhjdasd
0150150007798  STANLEE JO 21351 asdsaduhjdasd
0150150009998  DALE JAMES 21351 asdsaduhjdasd


MAtched Output File: (same as master file layout)
Code:


015015000000198781  KIM WILSON 45578 asdsaduhjdasd
015015000000198782  KIM WILSON 47851 asdsaduhjdasd
015015000000198783  KIM WILSON 47221 asdsaduhjdasd
015015000000198784  KIM WILSON 21351 asdsaduhjdasd
015015000779846241  STANLEE JO 21351 asdsaduhjdasd
015015000999846241  DALE JAMES 21351 asdsaduhjdasd


Unmatched Output File: (same as master file layout)
Code:


015015000120178948  JULES THOM 21351 asdsaduhjdasd
015015000120178947  JULES THOM 21351 asdsaduhjdasd
015015000120178946  JULES THOM 21351 asdsaduhjdasd
015015000999846241  DALE JAMES 21351 asdsaduhjdasd


note: My system doesnt support the JOIN keys function , So I had to use the Splice function.
I tried up things, but dint successfully turn up. The sum of the records in the matched and unmatched did not match up the master file.

So please help me on this.
Back to top
View user's profile Send private message

Pandora-Box

Moderator


Joined: 07 Sep 2006
Posts: 1529
Location: Andromeda Galaxy

PostPosted: Mon Aug 06, 2012 6:53 pm    Post subject:
Reply with quote

If you have referred the manual you could have made use of ready made code using SPLICE
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7223

PostPosted: Mon Aug 06, 2012 7:13 pm    Post subject: Reply to: Split a file into 2, matched and unmatched, using
Reply with quote

If you don't show us your code, we can't suggest what might be wrong with it.

Can you also provide the ICE201I message from any sort step?
Back to top
View user's profile Send private message
Pandora-Box

Moderator


Joined: 07 Sep 2006
Posts: 1529
Location: Andromeda Galaxy

PostPosted: Mon Aug 06, 2012 7:31 pm    Post subject:
Reply with quote

As Bill said either show us the error you got ?

or refer this link and correct your code as per your needs
Back to top
View user's profile Send private message
Vinodh S

New User


Joined: 12 Apr 2012
Posts: 30
Location: LA, California

PostPosted: Mon Aug 06, 2012 8:45 pm    Post subject: Reply to: Split a file into 2, matched and unmatched, using
Reply with quote

Thanks Bill and Pandora..

I did refer the same link in order to find the solution for my question.

And to BILL's question on ICE201x message,

The record type is F in the ICE201x message in the SORTOUT. I have verified it today after going thru the sticky post in this forum.
I currently don't have the message in Handy to paste the exact display.

Code:


//*                                                                 
//JS010    EXEC  PGM=ICETOOL                                         
//*                                                                 
//MASTER DD  DSN=Master.File,                       
//             DISP=SHR                                               
//REFER  DD  DSN=refer.file,   
//*          LRECL=6410                   
//           DISP=SHR                                             
//MATCHF DD DSN=matched.file,               
//            DISP=(NEW,CATLG,DELETE),                               
//            DCB=(LRECL=6383,RECFM=FB,BLKSIZE=0),                   
//            SPACE=(CYL,(700,900),RLSE),                       
//            VOL=(,,,90)                                       
//UNMATCHF DD  DSN=unmatch.file,           
//            DISP=(NEW,CATLG,DELETE),                           
//            DCB=(LRECL=6383,RECFM=FB,BLKSIZE=0),               
//            SPACE=(CYL,(700,900),RLSE),                         
//            VOL=(,,,90)                                       
//T1       DD DSN=&&T1,VOL=(,,,90),                   
//            DISP=(MOD,PASS)                                   
//*                                                               
//TOOLMSG  DD  SYSOUT=*                                         
//DFSMSG   DD  SYSOUT=*                                         
//SYSOUT   DD  SYSOUT=*                                         
//*                                                             
//TOOLIN   DD  *                                                 
* ADD '11' IDENTIFIER FOR FILE1 RECORDS.                         
  COPY FROM(MASTER) TO(T1) USING(CTL1)                           
* ADD '22' IDENTIFIER FOR FILE2 RECORDS.                         
  COPY FROM(REFER) TO(T1) USING(CTL2)                         
* SPLICE TO MATCH UP RECORDS AND WRITE THEM TO THEIR               
* APPROPRIATE OUTPUT FILES.                                         
  SPLICE FROM(T1) TO(MATCHF) ON(1,15,CH)  -                       
    WITHALL WITH(1,6383) WITH(6386,1) -                             
    USING(CTL3)                                                     
/*                                                                   
//CTL1CNTL DD  *                                                   
* MARK FILE1 RECORDS WITH '11'                                     
  OUTREC FIELDS=(1,15,6385:C'11')                                   
/*                                                                 
//CTL2CNTL DD  *                                                   
* MARK FILE2 RECORDS WITH '22'                                     
  OUTREC FIELDS=(1,6383,6385:C'22')                                 
/*                                                                 
//CTL3CNTL DD  *                                                   
* WRITE MATCHING RECORDS TO MATCHF FILE.                         
  OUTFIL FNAMES=MATCHF,INCLUDE=(6385,2,CH,EQ,C'12'),OUTREC=(1,6383)
* WRITE UNMATCHING RECORDS TO UNMATCHF FILE.                       
  OUTFIL FNAMES=UNMATCHF,INCLUDE=(6385,2,CH,EQ,C'22'),OUTREC=(1,6383)

Back to top
View user's profile Send private message
Pandora-Box

Moderator


Joined: 07 Sep 2006
Posts: 1529
Location: Andromeda Galaxy

PostPosted: Mon Aug 06, 2012 8:52 pm    Post subject:
Reply with quote

Where you able to get the solution that you expected??
Back to top
View user's profile Send private message
Skolusu

Senior Member


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

PostPosted: Mon Aug 06, 2012 11:01 pm    Post subject: Re: Split a file into 2, matched and unmatched, using a Ref
Reply with quote

Vinodh S wrote:
note: My system doesnt support the JOIN keys function , So I had to use the Splice function.
I tried up things, but dint successfully turn up. The sum of the records in the matched and unmatched did not match up the master file.

So please help me on this.


Joinkeys is available since November, 2009 . If you are running a version of DFSORT that doesn't support joinkeys, then you probably are running an Unsupported version of DFSORT.
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7223

PostPosted: Tue Aug 07, 2012 4:51 am    Post subject: Reply to: Split a file into 2, matched and unmatched, using
Reply with quote

Vinodh S,

Is there a chance of your site bringing DFSORT more up-to-date? JOINKEYS would simplify and save on runtimes.

Have you tested what you have written?

Just run that OUTREC for the master file standalone, and have a look at what it produces. Is that what you were expecting? Is that why you have the first WITH? Does that first WITH give you the actual results you want?

You have copied it, but not bothered to change the comments, so the comments now mislead. Do you realise that the extra space in the example was just for demonstration purposes? You don't need it.

For your case

Code:
OUTREC OVERLAY=(6384:C'xx')


is more likely what you want.

How do your counts not balance? Is the discrepency something you can trace to having duplicates on both files?
Back to top
View user's profile Send private message
Skolusu

Senior Member


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

PostPosted: Tue Aug 07, 2012 9:28 pm    Post subject:
Reply with quote

Vinod s,

Here is a splice JCL which will give you the desired results

Code:

//STEP0100 EXEC PGM=ICETOOL                                   
//TOOLMSG  DD SYSOUT=*                                       
//DFSMSG   DD SYSOUT=*                                       
//MASTER   DD DISP=SHR,DSN=Your Input Master File
//REFER    DD DISP=SHR,DSN=Your Input REFER File
//T1       DD DSN=&&T1,DISP=(MOD,PASS),SPACE=(CYL,(X,Y),RLSE)
//MATCH    DD SYSOUT=*                                       
//NOMATCH  DD SYSOUT=*                                       
//TOOLIN   DD *                                               
* ADD 'RR' IDENTIFIER FOR REFER FILE RECORDS.                 
  COPY FROM(REFER)  TO(T1) USING(CTL1)                       
* ADD 'MM' IDENTIFIER FOR MASTER FILE RECORDS.               
  COPY FROM(MASTER) TO(T1) USING(CTL2)                       
* SPLICE THE IDENTIFIER ON TO MASTER RECORDS                 
* AND WRITE THEM OUT TO MATCH AND NOMATCH FILE               
  SPLICE FROM(T1) TO(MATCH) ON(1,13,CH) WITHALL  -           
  WITH(1,6384) KEEPNODUPS KEEPBASE USING(CTL3)               
//*                                                           
//CTL1CNTL DD *                                               
* MARK REFER FILE RECORDS WITH 'RR'                           
  INREC OVERLAY=(6384:C'RR')                                 
//*                                                           
//CTL2CNTL DD *                                               
* MARK MASTER FILE RECORDS WITH 'MM'                         
  INREC OVERLAY=(6384:C'MM')                                 
//*                                                   
//CTL3CNTL DD *                                                   
* SPLIT THE FILES INTO MATCH AND NOMATCH                           
* MATCHING RECORDS WILL HAVE 'MR' AT POS 6384                     
* NON MATCHING RECORDS WILL HAVE 'MM' AT POS 6384                 
  OUTFIL FNAMES=MATCH,INCLUDE=(6384,2,CH,EQ,C'MR'),BUILD=(1,6383) 
  OUTFIL FNAMES=NOMATCH,INCLUDE=(6384,2,CH,EQ,C'MM'),BUILD=(1,6383)
//*
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 Add PD field from 2nd file to PD in 1st Sushant Garje DFSORT/ICETOOL 6 Thu Dec 01, 2016 4:32 pm
No new posts File Aid to File Manager conversion murali3955 IBM Tools 4 Thu Nov 24, 2016 3:41 pm
No new posts How to convert the VBM file to VB or... Sulabh Agrawal JCL & VSAM 4 Fri Nov 18, 2016 1:04 pm
No new posts CICS Roll back partially - Need to re... dwijadas CICS 4 Wed Nov 16, 2016 4:30 pm
No new posts Problem in writing Output file vickey_dw COBOL Programming 5 Mon Nov 14, 2016 11:14 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us