Previous Topic

Next Topic

Book Contents

Book Index

Examples

Example 1

By default, if the rule terminates OK, all Database variables are committed. However, if the rule ends NOTOK, statement DO COMMIT=NONE is performed. The variables are not committed because the values extracted from the report in the previous EXECUTE block may be wrong.

Figure 190 DO COMMIT Statement – Example 1

         LIBRARY : CTB.PROD.RULES                                RULE : CHKCURR

 COMMAND ===>                                                    SCROLL===> CRSR

 +------------------------------------------------------------------------------+

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

   EXECUTE INPUT    UPON                                                   C   

   ON SYSOUT     PROCST         PGMST STEP00   DDNAME SYSUT2   JOBNM         

  MODE PG    LINECT 0060    DATASTAMP                                      

   WHEN LINE 006     - 060     COL 008     - 009              STOP    AND/OR   

    STRING = /                                                             

 DO EXTRACT  = DB_CURRENCY.SUM                                             

               LEVEL 0 LINE +000 COL +084 - +094 PROCESS          TYP      

 DO                                                                        

   WHEN LINE 006     - 060     COL 003     - 013              STOP    AND/OR   

    STRING = TOTALS                                                        

 DO EXTRACT  = DB_CURRENCY.TOTAL                                           

               LEVEL 0 LINE +000 COL +001 - +006 PROCESS          TYP      

 DO EXTRACT  = DB_CURRENCY.AVERAGE                                         

               LEVEL 0 LINE +000 COL +020 - +026 PROCESS          TYP      

 DO                                                                        

   WHEN LINE         -         COL         -                  STOP    AND/OR   

    STRING =                                                               

 DO                                                                        

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

   EXECUTE COMMIT   UPON                                                   C   

   ON DATA                                                                    

   IF       DB_CURRENCY.SUM > 50000.00                                     C   

 DO SHOUT    TO U-M18               URGENCY R                              

  = PLEASE CHECK CURRENCY FILE; PROBLEMS WITH SUM                          

 DO REMARK   = SUM IS OVER  50000                                          

 DO COMMIT   = NONE     VAR                                            C   

 DO TERMINAT = NOTOK    COD 0055                                           

 DO                                                                        

   ELSE                                                                        

 DO REMARK   = SUM IS NOT OVER 50000                                       

 DO TERMINAT = OK       COD 0000                                           

 DO                                                                        

            (ENTER "ALWAYS", "IF")                                         

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

   EXECUTE          UPON                                                   C   

 PLEASE FILL IN RULE DEFINITION.                                        14.36.10

Example 2

Total values for the last six months are extracted from a report. Each of these values is saved as a separate generation of the Database variable DB_CURRENCY.TOTAL. This result is achieved by specifying statement DO COMMIT=NOW after each appearance of this variable in the report.

Figure 191 DO COMMIT Statement – Example 2

     LIBRARY : CTB.PROD.RULES                                RULE : CURRDB

 COMMAND ===>                                                    SCROLL===> CRSR

 +-----------------------------------------------------------------------------+

   OWNER   M18B                     GROUP CURRENCY                             

   UPDATED 04/04/00  -  15:30:05    BY M18B                                    

   DESC    EXTRACT VALUES FROM A REPORT AND UPDATE DATABASE                    

   OPTIONS                                                                     

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

   EXECUTE INPUT    UPON                                                   C   

   ON SYSOUT     PROCST          PGMST STEP2    DDNAME TOTALREP JOBNM         

  MODE PG    LINECT 0060   

DATASTAMP                                      

   WHEN LINE 006     - 060     COL 008     - 009              STOP    AND/OR   

    STRING = TOTALS FOR THIS MONTH:                                        

 DO EXTRACT  = DB_CURRENCY.TOTAL                                           

               LEVEL 0 LINE +000 COL +084 - +094 PROCESS          TYP      

 DO COMMIT   = NOW      VAR DB_CURRENCY.TOTAL                          C   

 DO                                                                        

   WHEN LINE         -         COL         -                  STOP    AND/OR   

    STRING =                                                               

 DO                                                                        

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

   EXECUTE          UPON                                                   C   

   ON                                                                          

 PLEASE FILL IN RULE DEFINITION.                                        14.45.05

Parent Topic

DO COMMIT: Automated Balancing Statement