Frank,

You don't have to list the names of the fields to compare.  Make the 
fields you want to compare COMMON in both Copy books and the others can be 
any names.  In your case you have compare-1 and compare-2 fields in common 
and I believe those are the fields you want to compare. Since you want to 
exclude ignore-1 field from comparison, just rename the ignore-1 to some 
other name in the new copybook. I chose Ignore-A

01  CCMASTR-OLD. 
    05  COMPARE-1 PIC X(159). 
    05  IGNORE-1  PIC X(5). 
    05  COMPARE-2 PIC X(222). 

01  CCMASTR-NEW. 
    05  COMPARE-1 PIC X(159). 
    05  IGNORE-A  PIC X(5).        << diff name
    05  COMPARE-2 PIC X(222). 
    05  IGNORE-NEW PIC X(17). 


Now you can use the following Control cards

$$FILEM DSM TYPE=FORMATTED, 
$$FILEM     SYNCH=ONETOONE, 
$$FILEM     MAP=MAPPED, 
$$FILEM     TCNEW=DVFJS.OLD.COPY(CCMASTR),
$$FILEM     TCNEW=DVFJS.NEW.COPY(CCMASTR),
$$FILEM     LIST=LONG, 
$$FILEM     EXCLUDE=(,,,MATCHED), 
$$FILEM     WIDE=YES, 
$$FILEM     HILIGHT=YES 

And you get the desired results.

Hope this helps...

Kolusu
IBM Mainframe Discussion List <[email protected]> wrote on 
06/30/2015 04:32:29 PM:

> From: Frank Swarbrick <[email protected]>
> To: [email protected]
> Date: 06/30/2015 04:32 PM
> Subject: Re: FILEM DSM compare question
> Sent by: IBM Mainframe Discussion List <[email protected]>
> 
> So this is what I have:
> 
> 01  CCMASTR-OLD. 
>     05  COMPARE-1 PIC X(159).
>     05  IGNORE-1  PIC X(5). 
>     05  COMPARE-2 PIC X(222).
> 
> 01  CCMASTR-NEW. 
>     05  COMPARE-1 PIC X(159).
>     05  IGNORE-1  PIC X(5). 
>     05  COMPARE-2 PIC X(222).
>     05  IGNORE-NEW PIC X(17).
> 
> $$FILEM TCNEW=DVFJS.OLD.COPY(CCMASTR),
> $$FILEM TCNEW=DVFJS.NEW.COPY(CCMASTR),
> $$FILEM FIELDOLD=(COMPARE-1,COMPARE-2), 
> $$FILEM FIELDNEW=(COMPARE-1,COMPARE-2), 
> 
> This works fine, but it would have been simpler if I could have used
> the actual copybook and told FM which fields to ignore, rather than 
> which fields to utilize.  Did I miss some option for this? 
> Something like this (assuming the copybook above):
> 
> $$FILEM IGNOREOLD=(IGNORE-1), 
> $$FILEM IGNORENEW=(IGNORE-1,IGNORE-NEW), 
> 
> Frank
> 
> > Date: Tue, 30 Jun 2015 13:05:28 -0700
> > From: [email protected]
> > Subject: Re: FILEM DSM compare question
> > To: [email protected]
> > 
> > Frank,
> > 
> > Here is sample File Manager JCL which will compare the 2 vsam files. 
The 
> > old vsam in my case had an lrecl of 612 and the new vsam had an lrecl 
of 
> > 615. 
> > 
> > You need to use templates to compare datasets with 2 different lrecl. 
so 
> > create a pds members(see below for samples) with the mapping of the 
fields 
> > you want to compare. I had a cobol copybook which I used.
> > 
> > //STEP0100 EXEC PGM=FILEMGR 
> > //SYSPRINT DD SYSOUT=* 
> > //DDOLD    DD DISP=SHR,DSN=Your Old VSAM Cluster 
> > //DDNEW    DD DISP=SHR,DSN=Your New VSAM Cluster
> > //SYSIN    DD * 
> > $$FILEM DSM TYPE=FORMATTED, 
> > $$FILEM     SYNCH=ONETOONE, 
> > $$FILEM     MAP=MAPPED, 
> > $$FILEM     TCOLD=FRANK.PDS.MAP(SWA1), 
> > $$FILEM     TCNEW=FRANK.PDS.MAP(SWA2), 
> > $$FILEM     FIELDOLD=OLD-REC, 
> > $$FILEM     FIELDNEW=NEW-REC, 
> > $$FILEM     LIST=LONG, 
> > $$FILEM     EXCLUDE=MATCHED, 
> > $$FILEM     WIDE=YES, 
> > $$FILEM     HILIGHT=YES 
> > //*
> > 
> > The contents of FRANK.PDS.MAP(SWA1)
> > 
> > ----+----1----+----2----+----3----+----4----+-
> >         01 DATA-REC. 
> >            05 OLD-REC           PIC X(612). 
> > 
> > 
> > The contents of FRANK.PDS.MAP(SWA2)
> > 
> > ----+----1----+----2----+----3----+----4----+----5
> >         01 DATA-REC. 
> >            05 NEW-REC           PIC X(612). 
> >            05 NEW-FLD           PIC X(003). 
> > 
> > and Just for the record, DFSORT job to do the same comparison and much 

> > more efficient than File manager job.
> > 
> > //STEP0100 EXEC PGM=SORT 
> > //SYSOUT   DD SYSOUT=*
> > //INA      DD DISP=SHR,DSN=Your Old VSAM Cluster 
> > //INB      DD DISP=SHR,DSN=Your New VSAM Cluster
> > //SORTOUT  DD SYSOUT=* 
> > //SYSIN    DD * 
> >   OPTION COPY 
> >   JOINKEYS F1=INA,FIELDS=(1,612,A),TYPE=F 
> >   JOINKEYS F2=INB,FIELDS=(1,612,A),TYPE=F 
> >   REFORMAT FIELDS=(F1:1,612,?,F2:1,612) 
> >   JOIN UNPAIRED 
> >   OMIT COND=(613,1,CH,EQ,C'B') 
> >   INREC IFOUTLEN=620, 
> >   IFTHEN=(WHEN=(613,1,CH,EQ,C'1'),BUILD=(C'OLD-REC ',001,612)),
> >   IFTHEN=(WHEN=(613,1,CH,EQ,C'2'),BUILD=(C'NEW-REC ',614,612)) 
> > //*
> > 
> > 
> > Hope this helps...
> > Kolusu
> > 
> > 
> > 
> > From:   Frank Swarbrick <[email protected]>
> > To:     [email protected]
> > Date:   06/30/2015 10:08 AM
> > Subject:        Re: FILEM DSM compare question
> > Sent by:        IBM Mainframe Discussion List 
<[email protected]>
> > 
> > 
> > 
> > I'm not copying anything.  I am trying to compare two files, where one 
is 
> > the old version of the file and one is the new version, with
> > 
> > Take the following two examples
> > OLD: (0012)1234AAAABBBB 
> > NEW: (0016)1234AAAABBBB____
> > OLD: (0012)1235AAAABBBB 
> > NEW: (0016)1235AAAABBBBABCD
> > 
> > 
> > The numbers in parenthesis are the lengths of the records and are not 
part 
> > of the record.  The underscores represents blank spaces.  The first 
four 
> > bytes of each record is the key.
> > 
> > I want to do a compare so that for record 1234 they would be 
considered to 
> > be equal, but record 1235 would be considered changed.
> > 
> > > Date: Tue, 30 Jun 2015 01:03:21 -0500
> > > From: [email protected]
> > > Subject: Re: FILEM DSM compare question
> > > To: [email protected]
> > > 
> > > Frank Swarbrick wrote:
> > > 
> > > >I know we have some DFSORT experts here.  I'm hoping we also have 
some 
> > File Manager experts.
> > > 
> > > I know DFSORT and ICETOOL, but like you I also ask questions on 
IBM-MAIN 
> > too ;-),  but I don't know File Manager...
> > > 
> > > >I have a KSDS where I am adding a new field, and thus increasing 
the 
> > length of each record.  I want to do a compare but only show the field 
as 
> > being "not equal" if the newly added characters are not spaces.  But I 
do 
> > want to show them as being not equal if the newly added characters are 

> > other than spaces.
> > > 
> > > Ok, lets see - you added some characters (not spaces) to new column 
x-y 
> > using some utility. 
> > > 
> > > Do you want to search all 'short' and 'long' records? Or do you copy 

> > only 'long' records and then search them only?
> > > 
> > > Something like this INCLUDE=(<first column>,<how many 
> > characters>,CH,NE,C' ') ?
> > > 
> > > Or something like this - one possible way to split up your records 
in 
> > two separate outputs?
> > > 
> > > (for this example, your new field is starting at column 100 and is 
10 
> > chars long, no variations in position and length)
> > > 
> > > OUTFILE FNAMES=SPACES,INCLUDE=(100,10,CH,EQ,C' ') 
> > > OUTFILE FNAMES=NOSPACE,INCLUDE=(100,10,1,CH,NE,C' ') 
> > > 
> > > Or do you want to show if a space is appearing at all? In other 
words, 
> > do you want to pick up a record with at least one space character in 
your 
> > new field? If so, the SS statement is a great help for that.
> > > 
> > > Or am I missing something?
> > > 
> > > Groete / Greetings
> > > Elardus Engelbrecht
> > > 
> > > 
----------------------------------------------------------------------
> > > For IBM-MAIN subscribe / signoff / archive access instructions,
> > > send email to [email protected] with the message: INFO 
IBM-MAIN
> > 
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to [email protected] with the message: INFO IBM-MAIN
> > 
> > 
> > 
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to [email protected] with the message: INFO IBM-MAIN
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
> 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to