Example 1
EXECUTE block INIT performs certain initialization steps before processing the report. These steps should be performed every time the rule is invoked. Therefore, ON DATA statement ALWAYS is specified.
Figure 253 ON DATA Statement – Example 1
LIBRARY : CTB.PROD.RULES RULE : RULEMP
COMMAND ===> SCROLL===> CRSR
+-----------------------------------------------------------------------------+
===========================================================================
EXECUTE INIT UPON C
ON DATA
ALWAYS
DO SET = CNTR=0 C
DO SET = ERR=0 C
DO PRINT = UNREASONABLE SICK/VACATION DAYS F C
DO PRINT = ================================= F C
DO PRINT = +--+---------------+------+-----+ F C
DO PRINT = | NAME | SICK | VAC | F C
DO PRINT = +--+---------------+------+-----+ F C
DO
(ENTER "ALWAYS", "IF")
===========================================================================
EXECUTE INPUT UPON C
ON FILE FILENAME CTB.PROD.EMPREP
MODE PG LINECT 0060 DATASTAMP
WHEN LINE 001 - 060 COL 013 - 014 STOP AND/OR
STRING = .AL.
DO EXTRACT = NAME
PLEASE FILL IN RULE DEFINITION. 16.48.58
Example 2
The EXECUTE block CHECK processes Control-M/Analyzer variables. This rule uses statement IF to determine which DO statements to execute depending on the value of Control-M/Analyzer variable SUM.
Figure 254 ON DATA Statement – Example 2
LIBRARY : CTB.PROD.RULES RULE : RULCURR
COMMAND ===> SCROLL===> CRSR
+-----------------------------------------------------------------------------+
EXECUTE CHECK UPON C
ON DATA
ALWAYS
DO PRINT = TOTAL SUM IS : %%SUM F C
DO
IF SUM > 1000000.00 C
DO SHOUT TO U-M18 URGENCY R
= PLEASE CHECK CURRENCY FILE; SUM COMPUTED IS %%SUM
DO REMARK = SUM IS OVER 1000000: SUM=%%SUM
DO COND = NOTOK-%%SYSJOBNAME 0704 +
DO TERMINAT = NOTOK COD 0055
DO
ELSE
DO REMARK = SUM IS NOT OVER 1000000: SUM=%%SUM
DO TERMINAT = OK COD 0000
DO
(ENTER "ALWAYS", "IF")
===========================================================================
EXECUTE UPON C
ON
PLEASE FILL IN RULE DEFINITION. 16.44.10
Example 3
This is an example of a cross-run comparison. EXECUTE block PROCESS uses statement IF to compare the current and previous values of Control-M/Analyzer Database variable CURRENT_TOTAL.
Figure 255 ON DATA Statement – Example 3
LIBRARY : CTB.PROD.RULES RULE : RUNCHK
COMMAND ===> SCROLL===> CRSR
+-----------------------------------------------------------------------------+
===========================================================================
EXECUTE PROCESS UPON C
ON DATA
IF (DB_CURRENT_TOTAL - DB_CURRENT_TOTAL@G01)> 10000 C
DO SHOUT TO OPER URGENCY R
= -- REPORT IS OUT OF BALANCE --- CALL 714-5678 - JOHN SMITH
DO TERMINAT = NOTOK COD 1501
DO
ELSE
DO TERMINAT = OK COD 0000
DO
(ENTER "ALWAYS", "IF")
===========================================================================
EXECUTE UPON C
ON
======= >>>>>>>>>>>>>>> END OF RULE DEFINITION PARAMETERS <<<<<<<<<<<<<<< =====
PLEASE FILL IN RULE DEFINITION. 17.08.10
Parent Topic |