MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 96 guarded actionsCOUSR02C

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 COUSR02C.cbl:49
ERR-FLG-ONmeans WS-ERR-FLG = 'Y'COUSR02C.cbl:41
USR-MODIFIED-YESmeans WS-USR-MODIFIED = 'Y'COUSR02C.cbl:46
22 rules

MAIN-PARA

WhenThenAt
  1. EIBCALEN = 0
MOVE 'COSGN00C' TO CDEMO-TO-PROGRAMCOUSR02C.cbl:91
  1. EIBCALEN = 0
PERFORM RETURN-TO-PREV-SCREENCOUSR02C.cbl:92
  1. NOT (EIBCALEN = 0)
MOVE DFHCOMMAREA(1:EIBCALEN) TO CARDDEMO-COMMAREACOUSR02C.cbl:94
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
SET CDEMO-PGM-REENTER TO TRUECOUSR02C.cbl:96
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
MOVE LOW-VALUES TO COUSR2AOCOUSR02C.cbl:97
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
MOVE -1 TO USRIDINL OF COUSR2AICOUSR02C.cbl:98
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
  3. CDEMO-CU02-USR-SELECTED NOT = SPACES AND LOW-VALUES
MOVE CDEMO-CU02-USR-SELECTED TO USRIDINI OF COUSR2AICOUSR02C.cbl:101–102
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
  3. CDEMO-CU02-USR-SELECTED NOT = SPACES AND LOW-VALUES
PERFORM PROCESS-ENTER-KEYCOUSR02C.cbl:103
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:105
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
PERFORM RECEIVE-USRUPD-SCREENCOUSR02C.cbl:107
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHENTER
PERFORM PROCESS-ENTER-KEYCOUSR02C.cbl:110
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
PERFORM UPDATE-USER-INFOCOUSR02C.cbl:112
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
  4. CDEMO-FROM-PROGRAM = SPACES OR LOW-VALUES
MOVE 'COADM01C' TO CDEMO-TO-PROGRAMCOUSR02C.cbl:114
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
  4. NOT (CDEMO-FROM-PROGRAM = SPACES OR LOW-VALUES)
MOVE CDEMO-FROM-PROGRAM TO CDEMO-TO-PROGRAMCOUSR02C.cbl:116–117
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
PERFORM RETURN-TO-PREV-SCREENCOUSR02C.cbl:119
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF4
PERFORM CLEAR-CURRENT-SCREENCOUSR02C.cbl:121
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF5
PERFORM UPDATE-USER-INFOCOUSR02C.cbl:123
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF12
MOVE 'COADM01C' TO CDEMO-TO-PROGRAMCOUSR02C.cbl:125
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF12
PERFORM RETURN-TO-PREV-SCREENCOUSR02C.cbl:126
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3; DFHPF4; DFHPF5; DFHPF12]
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:128
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3; DFHPF4; DFHPF5; DFHPF12]
MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGECOUSR02C.cbl:129
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3; DFHPF4; DFHPF5; DFHPF12]
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:130
13 rules

PROCESS-ENTER-KEY

WhenThenAt
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:147
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'User ID can NOT be empty...' TO WS-MESSAGECOUSR02C.cbl:148–149
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE -1 TO USRIDINL OF COUSR2AICOUSR02C.cbl:150
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:151
  1. TRUE is none of [USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES]
MOVE -1 TO USRIDINL OF COUSR2AICOUSR02C.cbl:153
  1. NOT ERR-FLG-ON
MOVE SPACES TO FNAMEI OF COUSR2AI LNAMEI OF COUSR2AI PASSWDI OF COUSR2AI USRTYPEI OF COUSR2AICOUSR02C.cbl:158–161
  1. NOT ERR-FLG-ON
MOVE USRIDINI OF COUSR2AI TO SEC-USR-IDCOUSR02C.cbl:162
  1. NOT ERR-FLG-ON
PERFORM READ-USER-SEC-FILECOUSR02C.cbl:163
  1. NOT ERR-FLG-ON
MOVE SEC-USR-FNAME TO FNAMEI OF COUSR2AICOUSR02C.cbl:167
  1. NOT ERR-FLG-ON
MOVE SEC-USR-LNAME TO LNAMEI OF COUSR2AICOUSR02C.cbl:168
  1. NOT ERR-FLG-ON
MOVE SEC-USR-PWD TO PASSWDI OF COUSR2AICOUSR02C.cbl:169
  1. NOT ERR-FLG-ON
MOVE SEC-USR-TYPE TO USRTYPEI OF COUSR2AICOUSR02C.cbl:170
  1. NOT ERR-FLG-ON
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:171
35 rules

UPDATE-USER-INFO

WhenThenAt
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:181
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'User ID can NOT be empty...' TO WS-MESSAGECOUSR02C.cbl:182–183
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE -1 TO USRIDINL OF COUSR2AICOUSR02C.cbl:184
  1. USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:185
  1. FNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:187
  1. FNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'First Name can NOT be empty...' TO WS-MESSAGECOUSR02C.cbl:188–189
  1. FNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE -1 TO FNAMEL OF COUSR2AICOUSR02C.cbl:190
  1. FNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:191
  1. LNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:193
  1. LNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Last Name can NOT be empty...' TO WS-MESSAGECOUSR02C.cbl:194–195
  1. LNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE -1 TO LNAMEL OF COUSR2AICOUSR02C.cbl:196
  1. LNAMEI OF COUSR2AI = SPACES OR LOW-VALUES
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:197
  1. PASSWDI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:199
  1. PASSWDI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Password can NOT be empty...' TO WS-MESSAGECOUSR02C.cbl:200–201
  1. PASSWDI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE -1 TO PASSWDL OF COUSR2AICOUSR02C.cbl:202
  1. PASSWDI OF COUSR2AI = SPACES OR LOW-VALUES
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:203
  1. USRTYPEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:205
  1. USRTYPEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE 'User Type can NOT be empty...' TO WS-MESSAGECOUSR02C.cbl:206–207
  1. USRTYPEI OF COUSR2AI = SPACES OR LOW-VALUES
MOVE -1 TO USRTYPEL OF COUSR2AICOUSR02C.cbl:208
  1. USRTYPEI OF COUSR2AI = SPACES OR LOW-VALUES
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:209
  1. TRUE is none of [USRIDINI OF COUSR2AI = SPACES OR LOW-VALUES; FNAMEI OF COUSR2AI = SPACES OR LOW-VALUES; LNAMEI OF COUSR2AI = SPACES OR LOW-VALUES; PASSWDI OF COUSR2AI = SPACES OR LOW-VALUES; USRTYPEI OF COUSR2AI = SPACES OR LOW-VALUES]
MOVE -1 TO FNAMEL OF COUSR2AICOUSR02C.cbl:211
  1. NOT ERR-FLG-ON
MOVE USRIDINI OF COUSR2AI TO SEC-USR-IDCOUSR02C.cbl:216
  1. NOT ERR-FLG-ON
PERFORM READ-USER-SEC-FILECOUSR02C.cbl:217
  1. NOT ERR-FLG-ON
  2. FNAMEI OF COUSR2AI NOT = SEC-USR-FNAME
MOVE FNAMEI OF COUSR2AI TO SEC-USR-FNAMECOUSR02C.cbl:220
  1. NOT ERR-FLG-ON
  2. FNAMEI OF COUSR2AI NOT = SEC-USR-FNAME
SET USR-MODIFIED-YES TO TRUECOUSR02C.cbl:221
  1. NOT ERR-FLG-ON
  2. LNAMEI OF COUSR2AI NOT = SEC-USR-LNAME
MOVE LNAMEI OF COUSR2AI TO SEC-USR-LNAMECOUSR02C.cbl:224
  1. NOT ERR-FLG-ON
  2. LNAMEI OF COUSR2AI NOT = SEC-USR-LNAME
SET USR-MODIFIED-YES TO TRUECOUSR02C.cbl:225
  1. NOT ERR-FLG-ON
  2. PASSWDI OF COUSR2AI NOT = SEC-USR-PWD
MOVE PASSWDI OF COUSR2AI TO SEC-USR-PWDCOUSR02C.cbl:228
  1. NOT ERR-FLG-ON
  2. PASSWDI OF COUSR2AI NOT = SEC-USR-PWD
SET USR-MODIFIED-YES TO TRUECOUSR02C.cbl:229
  1. NOT ERR-FLG-ON
  2. USRTYPEI OF COUSR2AI NOT = SEC-USR-TYPE
MOVE USRTYPEI OF COUSR2AI TO SEC-USR-TYPECOUSR02C.cbl:232
  1. NOT ERR-FLG-ON
  2. USRTYPEI OF COUSR2AI NOT = SEC-USR-TYPE
SET USR-MODIFIED-YES TO TRUECOUSR02C.cbl:233
  1. NOT ERR-FLG-ON
  2. USR-MODIFIED-YES
PERFORM UPDATE-USER-SEC-FILECOUSR02C.cbl:237
  1. NOT ERR-FLG-ON
  2. NOT (USR-MODIFIED-YES)
MOVE 'Please modify to update ...' TO WS-MESSAGECOUSR02C.cbl:239–240
  1. NOT ERR-FLG-ON
  2. NOT (USR-MODIFIED-YES)
MOVE DFHRED TO ERRMSGC OF COUSR2AOCOUSR02C.cbl:241
  1. NOT ERR-FLG-ON
  2. NOT (USR-MODIFIED-YES)
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:242
1 rules

RETURN-TO-PREV-SCREEN

WhenThenAt
  1. CDEMO-TO-PROGRAM = LOW-VALUES OR SPACES
MOVE 'COSGN00C' TO CDEMO-TO-PROGRAMCOUSR02C.cbl:253
12 rules

READ-USER-SEC-FILE

WhenThenAt
  1. WS-RESP-CD = DFHRESP(NORMAL)
MOVE 'Press PF5 key to save your updates ...' TO WS-MESSAGECOUSR02C.cbl:336–337
  1. WS-RESP-CD = DFHRESP(NORMAL)
MOVE DFHNEUTR TO ERRMSGC OF COUSR2AOCOUSR02C.cbl:338
  1. WS-RESP-CD = DFHRESP(NORMAL)
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:339
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:341
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'User ID NOT found...' TO WS-MESSAGECOUSR02C.cbl:342–343
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE -1 TO USRIDINL OF COUSR2AICOUSR02C.cbl:344
  1. WS-RESP-CD = DFHRESP(NOTFND)
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:345
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CDCOUSR02C.cbl:347
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:348
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'Unable to lookup User...' TO WS-MESSAGECOUSR02C.cbl:349–350
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE -1 TO FNAMEL OF COUSR2AICOUSR02C.cbl:351
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:352
13 rules

UPDATE-USER-SEC-FILE

WhenThenAt
  1. WS-RESP-CD = DFHRESP(NORMAL)
MOVE SPACES TO WS-MESSAGECOUSR02C.cbl:370
  1. WS-RESP-CD = DFHRESP(NORMAL)
MOVE DFHGREEN TO ERRMSGC OF COUSR2AOCOUSR02C.cbl:371
  1. WS-RESP-CD = DFHRESP(NORMAL)
STRING 'User ' DELIMITED BY SIZE SEC-USR-ID DELIMITED BY SPACE ' has been updated ...' DELIMITED BY SIZE INTO WS-MESSAGECOUSR02C.cbl:372–375
  1. WS-RESP-CD = DFHRESP(NORMAL)
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:376
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:378
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'User ID NOT found...' TO WS-MESSAGECOUSR02C.cbl:379–380
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE -1 TO USRIDINL OF COUSR2AICOUSR02C.cbl:381
  1. WS-RESP-CD = DFHRESP(NOTFND)
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:382
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CDCOUSR02C.cbl:384
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'Y' TO WS-ERR-FLGCOUSR02C.cbl:385
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'Unable to Update User...' TO WS-MESSAGECOUSR02C.cbl:386–387
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE -1 TO FNAMEL OF COUSR2AICOUSR02C.cbl:388
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
PERFORM SEND-USRUPD-SCREENCOUSR02C.cbl:389