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