MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 36 guarded actionsCOSGN00C

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

ERR-FLG-ONmeans WS-ERR-FLG = 'Y'COSGN00C.cbl:41
CDEMO-USRTYP-ADMINmeans CDEMO-USER-TYPE = 'A'COCOM01Y.cpy:27 via COSGN00C.cbl:48
9 rules

MAIN-PARA

WhenThenAt
  1. EIBCALEN = 0
MOVE LOW-VALUES TO COSGN0AOCOSGN00C.cbl:81
  1. EIBCALEN = 0
MOVE -1 TO USERIDL OF COSGN0AICOSGN00C.cbl:82
  1. EIBCALEN = 0
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:83
  1. NOT (EIBCALEN = 0)
  2. EIBAID = DFHENTER
PERFORM PROCESS-ENTER-KEYCOSGN00C.cbl:87
  1. NOT (EIBCALEN = 0)
  2. EIBAID = DFHPF3
MOVE CCDA-MSG-THANK-YOU TO WS-MESSAGECOSGN00C.cbl:89
  1. NOT (EIBCALEN = 0)
  2. EIBAID = DFHPF3
PERFORM SEND-PLAIN-TEXTCOSGN00C.cbl:90
  1. NOT (EIBCALEN = 0)
  2. EIBAID is none of [DFHENTER; DFHPF3]
MOVE 'Y' TO WS-ERR-FLGCOSGN00C.cbl:92
  1. NOT (EIBCALEN = 0)
  2. EIBAID is none of [DFHENTER; DFHPF3]
MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGECOSGN00C.cbl:93
  1. NOT (EIBCALEN = 0)
  2. EIBAID is none of [DFHENTER; DFHPF3]
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:94
9 rules

PROCESS-ENTER-KEY

WhenThenAt
  1. USERIDI OF COSGN0AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOSGN00C.cbl:119
  1. USERIDI OF COSGN0AI = SPACES OR LOW-VALUES
MOVE 'Please enter User ID ...' TO WS-MESSAGECOSGN00C.cbl:120
  1. USERIDI OF COSGN0AI = SPACES OR LOW-VALUES
MOVE -1 TO USERIDL OF COSGN0AICOSGN00C.cbl:121
  1. USERIDI OF COSGN0AI = SPACES OR LOW-VALUES
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:122
  1. PASSWDI OF COSGN0AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOSGN00C.cbl:124
  1. PASSWDI OF COSGN0AI = SPACES OR LOW-VALUES
MOVE 'Please enter Password ...' TO WS-MESSAGECOSGN00C.cbl:125
  1. PASSWDI OF COSGN0AI = SPACES OR LOW-VALUES
MOVE -1 TO PASSWDL OF COSGN0AICOSGN00C.cbl:126
  1. PASSWDI OF COSGN0AI = SPACES OR LOW-VALUES
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:127
  1. NOT ERR-FLG-ON
PERFORM READ-USER-SEC-FILECOSGN00C.cbl:139
18 rules

READ-USER-SEC-FILE

WhenThenAt
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
MOVE WS-TRANID TO CDEMO-FROM-TRANIDCOSGN00C.cbl:224
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAMCOSGN00C.cbl:225
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
MOVE WS-USER-ID TO CDEMO-USER-IDCOSGN00C.cbl:226
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
MOVE SEC-USR-TYPE TO CDEMO-USER-TYPECOSGN00C.cbl:227
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
MOVE ZEROS TO CDEMO-PGM-CONTEXTCOSGN00C.cbl:228
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
  3. CDEMO-USRTYP-ADMIN
EXEC CICS XCTL PROGRAM ('COADM01C') COMMAREA(CARDDEMO-COMMAREA) END-EXECCOSGN00C.cbl:231–234
  1. WS-RESP-CD = 0
  2. SEC-USR-PWD = WS-USER-PWD
  3. NOT (CDEMO-USRTYP-ADMIN)
EXEC CICS XCTL PROGRAM ('COMEN01C') COMMAREA(CARDDEMO-COMMAREA) END-EXECCOSGN00C.cbl:236–239
  1. WS-RESP-CD = 0
  2. NOT (SEC-USR-PWD = WS-USER-PWD)
MOVE 'Wrong Password. Try again ...' TO WS-MESSAGECOSGN00C.cbl:242–243
  1. WS-RESP-CD = 0
  2. NOT (SEC-USR-PWD = WS-USER-PWD)
MOVE -1 TO PASSWDL OF COSGN0AICOSGN00C.cbl:244
  1. WS-RESP-CD = 0
  2. NOT (SEC-USR-PWD = WS-USER-PWD)
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:245
  1. WS-RESP-CD = 13
MOVE 'Y' TO WS-ERR-FLGCOSGN00C.cbl:248
  1. WS-RESP-CD = 13
MOVE 'User not found. Try again ...' TO WS-MESSAGECOSGN00C.cbl:249
  1. WS-RESP-CD = 13
MOVE -1 TO USERIDL OF COSGN0AICOSGN00C.cbl:250
  1. WS-RESP-CD = 13
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:251
  1. WS-RESP-CD is none of [0; 13]
MOVE 'Y' TO WS-ERR-FLGCOSGN00C.cbl:253
  1. WS-RESP-CD is none of [0; 13]
MOVE 'Unable to verify the User ...' TO WS-MESSAGECOSGN00C.cbl:254
  1. WS-RESP-CD is none of [0; 13]
MOVE -1 TO USERIDL OF COSGN0AICOSGN00C.cbl:255
  1. WS-RESP-CD is none of [0; 13]
PERFORM SEND-SIGNON-SCREENCOSGN00C.cbl:256