Previous Topic

Next Topic

Book Contents

Book Index

Example Outputs

I,LINE#SOURCE1=0000024,LINE#SOURCE2=0000023

One line was added in SOURCE1 after line 23.

D,LINE#SOURCE1=0000024,LINE#SOURCE2=0000011

Line 24 in SOURCE1, that corresponded to line 11 in SOURCE2, was deleted.

R,RANGE#SOURCE1=(0000006,0000008),RANGE#SOURCE2=(0000006,0000009)

Lines 6 through 9 in SOURCE2 correspond to lines 6 through 8 in SOURCE1.

Example 1

Use built-in process BMSUBST to substitute dates only, and compare the rest of the line as is. Print out only lines that were changed or added to SOURCE2.

Table 256 ON COMPARE Input Data – Example 1

DD#BEFORE:

GLOBAL BANK INC.                   DATE: 22/09/00

            ******************                

            * LOAN INTEREST  *                

            ******************                

                                              

 OPEN DATE    DUE DATE    INTEREST  UPDATED ON    

 ==========   ==========  ========  ==========    

 08/03/95     08/03/96    5.32 %    22/02/95      

 09/12/95     09/12/96    5.13 %    24/11/95      

 11/12/95     11/12/96    5.60 %    24/11/95      

 05/02/96     05/02/97    5.70 %    02/02/94      

 06/06/96     06/06/97    5.26 %    01/01/96      

 10/08/96     10/08/97    5.78 %    01/01/96      

                                              

 END OF REPORT

DD#AFTER:

GLOBAL BANK INC.                   DATE: 22/09/2000 

             ******************                   

             * LOAN INTEREST  *                   

             ******************                   

                                                  

  OPEN DATE    DUE DATE    INTEREST  UPDATED ON       

  ==========   ==========  ========  ==========       

  08/03/1995   08/03/1990  5.32 %    22/02/1995       

  09/12/1995   09/12/1996  5.13 %    24/11/1900       

  11/12/1995   11/12/1996  5.60 %    24/11/1995       

  05/02/1996   05/02/1997  5.70 %    02/02/1994       

  06/06/1996   06/06/1997  5.26 %    01/01/1996@@@    

  10/08/1996   10/08/1997  5.78 %    01/01/1996       

                                                  

 END OF REPORT

Figure 248 ON COMPARE Testing Rule – Example 1

EXECUTE 'RECONCIL'                                   

ON_COMPARE                                           

  SOURCE1                                            

DD 'DDBEFORE'  PROCESS BUILTIN 'BMSUBST'         

SUBSTFROM '??/??/??  '  SUBSTTO '??/??/19??'     

  SOURCE2                                            

DD 'DD#AFTER'                                    

  ON_PARM MODE DS LINECT 80                          

   WHEN FLINE 1 TLINE 999 FCOL 1 TCOL 1 SEARCH '.AL.'

  DO EXTRACT 'LINE' LEVEL 0 LINE +0 FCOL 1 TCOL 80

  DO BLOCK 'CHKDATE'                             

EXECUTE ’END’

ON_DATA

   ALWAYS

   DO TERMINATE RESULT OK USER-CODE 0

EXECUTE 'CHKDATE'                                    

  ON_DATA                                            

   IF 'SUBSTR(1,1,LINE) = ''I'''                     

  DO SET 'DIFFLINE' EVAL 'SYSCURLINE'            

  DO PRINT DATA 'NOT OK ===>%%DIFFLINE'

Figure 249 ON COMPARE Output – Example 1

These output lines refer to those lines in the DD#AFTER report of Table 256 that contain bolded items.

NOT OK ===> 08/03/1995   08/03/1900  5.32 %    22/02/1995    

NOT OK ===> 09/12/1995   09/12/1996  5.13 %    24/11/1900    

NOT OK===> 06/06/1996  06/06/1997  5.26 %  01/01/1996@@@

Example 2

Substitute dates in specific columns with a user block. Compare the rest of the line as is.

Table 257 ON COMPARE Input Data – Example 2

DO BEFORE

GLOBAL BANK INC.                                                

PAGE: 1                                                         

        *******************************           

        C U S T O M E R   L I S T I N G           

        *******************************           

                                                            

  ACCOUNT     OPEN        CLOSE         DEPOSIT 

     NO.      DATE        DATE          AMOUNT ($) 

  ========    ====        =====         ==========

 12-56-82     02-04-93    02-04-96      3,000.00     

 12-56-45     09-08-95    09-08-99      7,500.00     

 12-56-36     01-02-98    01-02-02      1,000.00

 22-68-25     03-06-94    03-06-99     10,000.00  

 22-68-75     09-07-97    09-07-99      8,000.00    

 22-56-57     02-05-94    02-05-97      5,000.00      

 22-56-36     09-09-96    09-09-99      9,500.00     

 12-56-25     02-04-93    02-04-96      3,000.00      

 12-66-83     09-08-95    09-08-99      7,500.00      

 12-66-98     01-02-98    01-22-03      2,000.00     

 22-68-75     03-06-94    03-06-99     10,000.00

 22-68-56     09-07-97    09-07-01      8,000.00   

 22-76-54     02-05-94    12-05-97      5,000.00   

 22-76-23     09-09-96    09-09-99      9,500.00

DO AFTER

GLOBAL BANK INC.                                                  

PAGE: 1                                                           

        *******************************             

        C U S T O M E R   L I S T I N  G            

        *******************************             

                                                              

   ACCOUNT    OPEN        CLOSE         DEPOSIT 

     NO.      DATE        DATE          AMOUNT ($) 

  ========    ====        =====         ==========

 12-56-82     02-04-1993    02-04-1996      3,000.00

 12-56-45     09-08-1995    09-08-1999      7,500.00

 12-56-36     01-02-1998    01-02-0002      1,000.00

 22-68-25     03-06-1994    03-06-1999     10,000.00

 22-68-75     09-07-1997    09-07-1999      8,000.00

 22-56-57     02-05-1994    02-05-1997      5,000.00

 22-56-36     09-09-1996    09-09-1999      9,500.00

 12-56-25     02-04-1993    02-04-1996      3,000.00

 12-66-83     09-08-1995    09-08-1999      7,500.00

 12-66-98     01-02-1998    01-22-@@03      2,000.00

 22-68-75     03-06-1994    03-06-1999     10,000.00

 22-68-56     09-07-1997    09-07-  01      8,000.00

 22-76-54     02-05-1994    12-05-1997      5,000.00

 22-76-23     09-09-1996    09-09-1999      9,500.00

Figure 250 ON COMPARE Testing Rule – Example 2

EXECUTE 'RECONCIL'                                   

ON_COMPARE                                            

  SOURCE1                                             

DD 'DDBEFORE' PROCESS USERBLOCK 'USERBL'          

  SOURCE2                                             

DD 'DD#AFTER'                                     

  ON_PARM MODE DS LINECT 80                           

   WHEN FLINE 1 TLINE 999 FCOL 1 TCOL 1 SEARCH 'I'    

  DO EXTRACT 'LINE' LEVEL 0 LINE +0 FCOL 1 TCOL 80

  DO SET 'OUT_LINE' EVAL 'SYSCURLINE'             

  DO PRINT DATA 'NOT OK ==> %%OUT_LINE'

EXECUTE ’END’

ON_DATA

   ALWAYS

   DO TERMINATE RESULT OK USER-CODE 0

EXECUTE 'USERBL'                                                     

ON_DATA                                                              

   ALWAYS                                                            

   DO SET 'CH' EVAL 'SUBSTR(2,1,SYSCURLINE)'                         

   IF ISNUMBER(CH)                                                   

  DO SET 'SYSCURLINE' EVAL 'SUBSTR(1,20,SYSCURLINE)//''19''      

//SUBSTR(21,12,SYSCURLINE)//''19''//SUBSTR(33,100,SYSCURLINE)'

Figure 251 ON COMPARE Output – Example 2

These output lines refer to those lines in the DD#AFTER report of Table 257 that contain bolded items.

NOT OK ==>        C U S T O M E R   L I S T I N  G

NOT OK ==>  12-56-36     01-02-1998    01-02-0002      1,000.00 

NOT OK ==>  12-66-98     01-02-1998    01-22-@@03      2,000.00 

NOT OK ==>  22-68-56     09-07-1997    09-07-  01      8,000.00

Note: After reconstructing the line, the lengths of the SOURCE1 and SOURCE2 lines must remain the same in order for the comparison to determine that they are identical.

For examples of how the ON COMPARE statement can be used for converting currencies, see Euro Support.

Parent Topic

ON COMPARE: Data Selection Parameter