MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 52 guarded actionsCOMEN01C

Each row is an action and the full chain of conditions that must hold for it to run, recovered from nested IF / EVALUATE / PERFORM UNTIL scopes. Name the rule; the evidence is already attached.

88 levels

Condition names used

CDEMO-PGM-REENTERmeans CDEMO-PGM-CONTEXT = 1COCOM01Y.cpy:31 via COMEN01C.cbl:50
CDEMO-USRTYP-USERmeans CDEMO-USER-TYPE = 'U'COCOM01Y.cpy:28 via COMEN01C.cbl:50
ERR-FLG-ONmeans WS-ERR-FLG = 'Y'COMEN01C.cbl:41
13 rules

MAIN-PARA

WhenThenAt
  1. EIBCALEN = 0
MOVE 'COSGN00C' TO CDEMO-FROM-PROGRAMCOMEN01C.cbl:83
  1. EIBCALEN = 0
PERFORM RETURN-TO-SIGNON-SCREENCOMEN01C.cbl:84
  1. NOT (EIBCALEN = 0)
MOVE DFHCOMMAREA(1:EIBCALEN) TO CARDDEMO-COMMAREACOMEN01C.cbl:86
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
SET CDEMO-PGM-REENTER TO TRUECOMEN01C.cbl:88
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
MOVE LOW-VALUES TO COMEN1AOCOMEN01C.cbl:89
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
PERFORM SEND-MENU-SCREENCOMEN01C.cbl:90
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
PERFORM RECEIVE-MENU-SCREENCOMEN01C.cbl:92
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHENTER
PERFORM PROCESS-ENTER-KEYCOMEN01C.cbl:95
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
MOVE 'COSGN00C' TO CDEMO-TO-PROGRAMCOMEN01C.cbl:97
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
PERFORM RETURN-TO-SIGNON-SCREENCOMEN01C.cbl:98
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3]
MOVE 'Y' TO WS-ERR-FLGCOMEN01C.cbl:100
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3]
MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGECOMEN01C.cbl:101
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3]
PERFORM SEND-MENU-SCREENCOMEN01C.cbl:102
24 rules

PROCESS-ENTER-KEY

WhenThenAt
  1. WS-OPTION IS NOT NUMERIC OR WS-OPTION > CDEMO-MENU-OPT-COUNT OR WS-OPTION = ZEROS
MOVE 'Y' TO WS-ERR-FLGCOMEN01C.cbl:130
  1. WS-OPTION IS NOT NUMERIC OR WS-OPTION > CDEMO-MENU-OPT-COUNT OR WS-OPTION = ZEROS
MOVE 'Please enter a valid option number...' TO WS-MESSAGECOMEN01C.cbl:131–132
  1. WS-OPTION IS NOT NUMERIC OR WS-OPTION > CDEMO-MENU-OPT-COUNT OR WS-OPTION = ZEROS
PERFORM SEND-MENU-SCREENCOMEN01C.cbl:133
  1. CDEMO-USRTYP-USER AND CDEMO-MENU-OPT-USRTYPE(WS-OPTION) = 'A'
SET ERR-FLG-ON TO TRUECOMEN01C.cbl:138
  1. CDEMO-USRTYP-USER AND CDEMO-MENU-OPT-USRTYPE(WS-OPTION) = 'A'
MOVE SPACES TO WS-MESSAGECOMEN01C.cbl:139
  1. CDEMO-USRTYP-USER AND CDEMO-MENU-OPT-USRTYPE(WS-OPTION) = 'A'
MOVE 'No access - Admin Only option... ' TO WS-MESSAGECOMEN01C.cbl:140–141
  1. CDEMO-USRTYP-USER AND CDEMO-MENU-OPT-USRTYPE(WS-OPTION) = 'A'
PERFORM SEND-MENU-SCREENCOMEN01C.cbl:142
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
EXEC CICS INQUIRE PROGRAM(CDEMO-MENU-OPT-PGMNAME(WS-OPTION)) NOHANDLE END-EXECCOMEN01C.cbl:148–151
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. EIBRESP = DFHRESP(NORMAL)
MOVE WS-TRANID TO CDEMO-FROM-TRANIDCOMEN01C.cbl:153
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. EIBRESP = DFHRESP(NORMAL)
MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAMCOMEN01C.cbl:154
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. EIBRESP = DFHRESP(NORMAL)
MOVE ZEROS TO CDEMO-PGM-CONTEXTCOMEN01C.cbl:155
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. EIBRESP = DFHRESP(NORMAL)
EXEC CICS XCTL PROGRAM(CDEMO-MENU-OPT-PGMNAME(WS-OPTION)) COMMAREA(CARDDEMO-COMMAREA) END-EXECCOMEN01C.cbl:156–159
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. NOT (EIBRESP = DFHRESP(NORMAL))
MOVE SPACES TO WS-MESSAGECOMEN01C.cbl:161
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. NOT (EIBRESP = DFHRESP(NORMAL))
MOVE DFHRED TO ERRMSGC OF COMEN1AOCOMEN01C.cbl:162
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'
  3. NOT (EIBRESP = DFHRESP(NORMAL))
STRING 'This option ' DELIMITED BY SIZE CDEMO-MENU-OPT-NAME(WS-OPTION) DELIMITED BY ' ' ' is not installed...' DELIMITED BY SIZE INTO WS-MESSAGECOMEN01C.cbl:163–167
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY'
MOVE SPACES TO WS-MESSAGECOMEN01C.cbl:170
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY'
MOVE DFHGREEN TO ERRMSGC OF COMEN1AOCOMEN01C.cbl:171
  1. NOT ERR-FLG-ON
  2. CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY'
STRING 'This option ' DELIMITED BY SIZE CDEMO-MENU-OPT-NAME(WS-OPTION) DELIMITED BY SPACE 'is coming soon ...' DELIMITED BY SIZE INTO WS-MESSAGECOMEN01C.cbl:172–176
  1. NOT ERR-FLG-ON
  2. TRUE is none of [CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'; CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY']
MOVE WS-TRANID TO CDEMO-FROM-TRANIDCOMEN01C.cbl:178
  1. NOT ERR-FLG-ON
  2. TRUE is none of [CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'; CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY']
MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAMCOMEN01C.cbl:179
  1. NOT ERR-FLG-ON
  2. TRUE is none of [CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'; CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY']
MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAMCOMEN01C.cbl:180
  1. NOT ERR-FLG-ON
  2. TRUE is none of [CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'; CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY']
MOVE ZEROS TO CDEMO-PGM-CONTEXTCOMEN01C.cbl:183
  1. NOT ERR-FLG-ON
  2. TRUE is none of [CDEMO-MENU-OPT-PGMNAME(WS-OPTION) = 'COPAUS0C'; CDEMO-MENU-OPT-PGMNAME(WS-OPTION)(1:5) = 'DUMMY']
EXEC CICS XCTL PROGRAM(CDEMO-MENU-OPT-PGMNAME(WS-OPTION)) COMMAREA(CARDDEMO-COMMAREA) END-EXECCOMEN01C.cbl:184–187
  1. NOT ERR-FLG-ON
PERFORM SEND-MENU-SCREENCOMEN01C.cbl:190
1 rules

RETURN-TO-SIGNON-SCREEN

WhenThenAt
  1. CDEMO-TO-PROGRAM = LOW-VALUES OR SPACES
MOVE 'COSGN00C' TO CDEMO-TO-PROGRAMCOMEN01C.cbl:199
14 rules

BUILD-MENU-OPTIONS

WhenThenAt
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
MOVE SPACES TO WS-MENU-OPT-TXTCOMEN01C.cbl:267
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
STRING CDEMO-MENU-OPT-NUM(WS-IDX) DELIMITED BY SIZE '. ' DELIMITED BY SIZE CDEMO-MENU-OPT-NAME(WS-IDX) DELIMITED BY SIZE INTO WS-MENU-OPT-TXTCOMEN01C.cbl:269–272
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 1
MOVE WS-MENU-OPT-TXT TO OPTN001OCOMEN01C.cbl:276
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 2
MOVE WS-MENU-OPT-TXT TO OPTN002OCOMEN01C.cbl:278
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 3
MOVE WS-MENU-OPT-TXT TO OPTN003OCOMEN01C.cbl:280
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 4
MOVE WS-MENU-OPT-TXT TO OPTN004OCOMEN01C.cbl:282
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 5
MOVE WS-MENU-OPT-TXT TO OPTN005OCOMEN01C.cbl:284
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 6
MOVE WS-MENU-OPT-TXT TO OPTN006OCOMEN01C.cbl:286
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 7
MOVE WS-MENU-OPT-TXT TO OPTN007OCOMEN01C.cbl:288
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 8
MOVE WS-MENU-OPT-TXT TO OPTN008OCOMEN01C.cbl:290
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 9
MOVE WS-MENU-OPT-TXT TO OPTN009OCOMEN01C.cbl:292
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 10
MOVE WS-MENU-OPT-TXT TO OPTN010OCOMEN01C.cbl:294
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 11
MOVE WS-MENU-OPT-TXT TO OPTN011OCOMEN01C.cbl:296
  1. PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > CDEMO-MENU-OPT-COUNT
  2. WS-IDX = 12
MOVE WS-MENU-OPT-TXT TO OPTN012OCOMEN01C.cbl:298