The program can be run on any two files with identical file layouts. This will run without any table configuration at all. The key information is derived from the key of the first file specified. This key needs to be unique. The program sorts the files based upon the specified key fields, and the performs a merge sort (aka Matching Records).
The program is called from the command line with the following parameters:
The program call looks like this:
call cp1030c (DTAPRD F0411LE *FIRST DTAQUA F0411LE *FIRST 'Comparison of A/P Files - Testing')
The generated report looks like this:
CP1030                                                Compare/Contrast Files                                                 9/07/06
Page:         1                                  Comparison of A/P Files - Testing                                           9:49:30
Left File:  DTAPRD/F0411LE.*FIRST
Right File: DTAQUA/F0411LE.*FIRST
  RPDOC    RPDCT RPKCO RPSFX RPSFXE FldNam Before                                      After
  ======== ===== ===== ===== ====== ------ ------------------------------------------- -------------------------------------------
  03424416  PV   00110  001    00   RPPYIN                                               0
  03426602  PV   00110  001    00   RPPST    A                                           P
                                    RPAAP            10275                                           0
R 03544881  PV   00000  001    00
L 03544883  PV   00000  001    00          
The image I had in mind while writing this was of someone sitting with two file dumps in front of him (comparing them line by line); one on the left (L) and one on the right (R). All we are doing is automating the comparison. The significance of the report is as follows (by line):
A couple of notes:
In addition:
Sometimes we are not interested in comparing *every* field in the file. Audit fields (date created, etc., come to mind). For every field to be excluded, add a record to the file CP1030F. The following is an example when loaded for F0411LE:
AFRECTYP AFFLDNAM ---------- ---------- F0411LE RPUSER F0411LE RPPID F0411LE RPUPMJ F0411LE RPUPMT F0411LE RPJOBN
The key field is the same as the First File Name.
The following link takes you to the source code, written in beautiful /free ILE/RPG. Both the source and the compiled 
objects are distributed under a creative commons license. 
 
