IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Match and NoMatch using Sort


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
raj_mainframe08

New User


Joined: 11 Sep 2007
Posts: 65
Location: Gurgaon

PostPosted: Sat Feb 06, 2016 4:48 pm
Reply with quote

I have 2 files

File 1 = 260 length
File 2 = 70 length

I am trying to join File 1 to File 2 using first 20 bytes. For the records that join from File 1 to File 2 should go in one file (260 bytes from File 1 and 50 bytes from File 2) and records that doesn't match from File 1 should go in another file. Following is JCL I wrote. It was working file only for Match but when I put No Match statements, I am getting error END OF SORTOF01 FIELD BEYOND MAXIMUM RECORD LENGTH


Code:

//STEP05   EXEC PGM=SORT                                     
//SORTJNF1 DD DSN=FILE1,DISP=SHR     
//SORTJNF2 DD DSN=FILE2,DISP=SHR     
//SORTOF01 DD DSN=FILE3,           
//       DISP=(NEW,CATLG,DELETE),SPACE=(CYL,(100,200),RLSE),
//       DCB=(RECFM=FB,BLKSIZE=0,LRECL=310)                 
//*                                                         
//SORTOF02 DD DSN=FILE4,         
//       DISP=(NEW,CATLG,DELETE),SPACE=(CYL,(100,200),RLSE),
//       DCB=(RECFM=FB,BLKSIZE=0,LRECL=310)                 
//SYSIN    DD *                                             
 JOINKEYS FILES=F1,FIELDS=(1,20,A)                           
 JOINKEYS FILES=F2,FIELDS=(1,20,A)                           
 JOIN UNPAIRED,F1                                           
 REFORMAT FIELDS=(F1:1,260,F2:21,50),FILL=X'FF'             
 OUTFIL FILES=01,INCLUDE=(311,1,BI,EQ,X'FF'),               
 OUTREC=(1,310)                                             
 OUTFIL FILES=02,INCLUDE=(311,1,BI,NE,X'FF'),               
 OUTREC=(1,310)                                             
 SORT FIELDS=COPY     
/*                     


I tried changing the length of output files to 311 and also in outrec but no success. Please let me know what I am missing
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Sat Feb 06, 2016 6:34 pm
Reply with quote

Check the documentation for FILL=. You have misunderstood its use.

Use the match-marker (?) in the REFORMAT statement and test that for C'B' or C'1'.

You only need one test on one OUTFIL. On the other, use SAVE rather than reversing the condition.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts JCL sort card - get first day and las... JCL & VSAM 9
No new posts Sort First/last record of a subset th... DFSORT/ICETOOL 7
No new posts how to calculate SUM value for VB fil... DFSORT/ICETOOL 1
No new posts how to calculate SUM for VB file usin... JCL & VSAM 1
Search our Forums:

Back to Top