Selva0202
New User
Joined: 17 Oct 2008 Posts: 18 Location: USA
|
|
|
|
Hi there,
I've got a requirement to do the follwing.
Write records in a new file (FILE C) which are available only in FILE A but not FILE B.
Used the following JCL:
Code: |
//S1 EXEC PGM=SYNCTOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//F1IN DD DSN=Q01374.GDG.INPUT1,DISP=SHR
//F2IN DD DSN=Q01374.GDG.INPUT2,DISP=SHR
//T1 DD DSN=&&T1,DISP=(MOD,PASS),
// UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//MATCH DD DSN=Q01374.DASD.TCM2.MATCH,DISP=(,CATLG,DELETE),
// SPACE=(CYL,(5,5))
//F1ONLY DD DSN=Q01374.DASD.TCM2.INONLY,DISP=(,CATLG,DELETE),
// SPACE=(CYL,(5,5))
//F2ONLY DD DSN=Q01374.DASD.TCM2.ADD,DISP=(,CATLG,DELETE),
// SPACE=(CYL,(5,5))
//TOOLIN DD *
COPY FROM(F1IN) TO(T1) USING(MATA)
COPY FROM(F2IN) TO(T1) USING(MATB)
SPLICE FROM(T1) TO(MATCH) ON(1,40,CH) -
WITH(42,1) KEEPNODUPS USING(MATC)
/*
//MATACNTL DD *
OUTREC FIELDS=(1:1,40, GENERATION NAME
41:C'11')
/*
//MATBCNTL DD *
OUTREC FIELDS=(1:1,40, GENERATION NAME2
41:C'22')
/*
//MATCCNTL DD *
OUTFIL FNAMES=MATCH,INCLUDE=(41,2,CH,EQ,C'12'),OUTREC=(1,40)
OUTFIL FNAMES=F1ONLY,INCLUDE=(41,2,CH,EQ,C'11'),OUTREC=(1,40)
OUTFIL FNAMES=F2ONLY,INCLUDE=(41,2,CH,EQ,C'22'),OUTREC=(1,40)
/*
|
ERROR MSG
+WER247A Q01374U8,S1 , -MATCH HAS INCOMPATIBLE LREC
+WER247A Q01374U8,S1 , -F1ONLY HAS INCOMPATIBLE LREC
+WER247A Q01374U8,S1 , -F2ONLY HAS INCOMPATIBLE LREC
Can someone have a look and tell me how to come out from this problem. |
|
Alissa Margulies
SYNCSORT Support
Joined: 25 Jul 2007 Posts: 496 Location: USA
|
|
|
|
Quote: |
Write records in a new file (FILE C) which are available only in FILE A but not FILE B. |
This would be much simpler to accomplish using SyncSort's JOIN feature.
Code: |
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTJNF1 DD DSN=FILEA
//SORTJNF2 DD DSN=FILEB
//SORTOUT DD DSN=FILEC
//SYSIN DD *
JOINKEYS FILE=F1,FIELDS=(1,40,A)
JOINKEYS FILE=F2,FIELDS=(1,40,A)
JOIN UNPAIRED,F1,ONLY
SORT FIELDS=COPY
|
|
|