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 |