MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 78 guarded actionsCBACT01C

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

APPL-AOKmeans APPL-RESULT = 0CBACT01C.cbl:116
APPL-EOFmeans APPL-RESULT = 16CBACT01C.cbl:117
2 rules

(PROCEDURE DIVISION)

WhenThenAt
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
PERFORM 1000-ACCTFILE-GET-NEXTCBACT01C.cbl:149
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
DISPLAY ACCOUNT-RECORDCBACT01C.cbl:151
18 rules

1000-ACCTFILE-GET-NEXT

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT01C.cbl:168
  1. ACCTFILE-STATUS = '00'
INITIALIZE ARR-ARRAY-RECCBACT01C.cbl:169
  1. ACCTFILE-STATUS = '00'
PERFORM 1100-DISPLAY-ACCT-RECORDCBACT01C.cbl:170
  1. ACCTFILE-STATUS = '00'
PERFORM 1300-POPUL-ACCT-RECORDCBACT01C.cbl:171
  1. ACCTFILE-STATUS = '00'
PERFORM 1350-WRITE-ACCT-RECORDCBACT01C.cbl:172
  1. ACCTFILE-STATUS = '00'
PERFORM 1400-POPUL-ARRAY-RECORDCBACT01C.cbl:173
  1. ACCTFILE-STATUS = '00'
PERFORM 1450-WRITE-ARRY-RECORDCBACT01C.cbl:174
  1. ACCTFILE-STATUS = '00'
INITIALIZE VBRC-REC1CBACT01C.cbl:175
  1. ACCTFILE-STATUS = '00'
PERFORM 1500-POPUL-VBRC-RECORDCBACT01C.cbl:176
  1. ACCTFILE-STATUS = '00'
PERFORM 1550-WRITE-VB1-RECORDCBACT01C.cbl:177
  1. ACCTFILE-STATUS = '00'
PERFORM 1575-WRITE-VB2-RECORDCBACT01C.cbl:178
  1. NOT (ACCTFILE-STATUS = '00')
  2. ACCTFILE-STATUS = '10'
MOVE 16 TO APPL-RESULTCBACT01C.cbl:181
  1. NOT (ACCTFILE-STATUS = '00')
  2. NOT (ACCTFILE-STATUS = '10')
MOVE 12 TO APPL-RESULTCBACT01C.cbl:183
  1. NOT (APPL-AOK)
  2. APPL-EOF
MOVE 'Y' TO END-OF-FILECBACT01C.cbl:190
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
DISPLAY 'ERROR READING ACCOUNT FILE'CBACT01C.cbl:192
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT01C.cbl:193
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:194
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:195
3 rules

1300-POPUL-ACCT-RECORD

WhenThenAt
always MOVE '2' TO CODATECN-TYPECBACT01C.cbl:225
always MOVE '2' TO CODATECN-OUTTYPECBACT01C.cbl:226
  1. ACCT-CURR-CYC-DEBIT EQUAL TO ZERO
MOVE 2525.00 TO OUT-ACCT-CURR-CYC-DEBITCBACT01C.cbl:237
4 rules

1350-WRITE-ACCT-RECORD

WhenThenAt
  1. OUTFILE-STATUS NOT = '00' AND OUTFILE-STATUS NOT = '10'
DISPLAY 'ACCOUNT FILE WRITE STATUS IS:' OUTFILE-STATUSCBACT01C.cbl:246
  1. OUTFILE-STATUS NOT = '00' AND OUTFILE-STATUS NOT = '10'
MOVE OUTFILE-STATUS TO IO-STATUSCBACT01C.cbl:247
  1. OUTFILE-STATUS NOT = '00' AND OUTFILE-STATUS NOT = '10'
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:248
  1. OUTFILE-STATUS NOT = '00' AND OUTFILE-STATUS NOT = '10'
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:249
4 rules

1450-WRITE-ARRY-RECORD

WhenThenAt
  1. ARRYFILE-STATUS NOT = '00' AND ARRYFILE-STATUS NOT = '10'
DISPLAY 'ACCOUNT FILE WRITE STATUS IS:' ARRYFILE-STATUSCBACT01C.cbl:268–269
  1. ARRYFILE-STATUS NOT = '00' AND ARRYFILE-STATUS NOT = '10'
MOVE ARRYFILE-STATUS TO IO-STATUSCBACT01C.cbl:270
  1. ARRYFILE-STATUS NOT = '00' AND ARRYFILE-STATUS NOT = '10'
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:271
  1. ARRYFILE-STATUS NOT = '00' AND ARRYFILE-STATUS NOT = '10'
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:272
4 rules

1550-WRITE-VB1-RECORD

WhenThenAt
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
DISPLAY 'ACCOUNT FILE WRITE STATUS IS:' VBRCFILE-STATUSCBACT01C.cbl:294–295
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
MOVE VBRCFILE-STATUS TO IO-STATUSCBACT01C.cbl:296
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:297
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:298
4 rules

1575-WRITE-VB2-RECORD

WhenThenAt
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
DISPLAY 'ACCOUNT FILE WRITE STATUS IS:' VBRCFILE-STATUSCBACT01C.cbl:309–310
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
MOVE VBRCFILE-STATUS TO IO-STATUSCBACT01C.cbl:311
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:312
  1. VBRCFILE-STATUS NOT = '00' AND VBRCFILE-STATUS NOT = '10'
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:313
6 rules

0000-ACCTFILE-OPEN

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT01C.cbl:321
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT01C.cbl:323
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING ACCTFILE'CBACT01C.cbl:328
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT01C.cbl:329
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:330
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:331
6 rules

2000-OUTFILE-OPEN

WhenThenAt
  1. OUTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT01C.cbl:338
  1. NOT (OUTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT01C.cbl:340
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING OUTFILE' OUTFILE-STATUSCBACT01C.cbl:345
  1. NOT (APPL-AOK)
MOVE OUTFILE-STATUS TO IO-STATUSCBACT01C.cbl:346
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:347
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:348
6 rules

3000-ARRFILE-OPEN

WhenThenAt
  1. ARRYFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT01C.cbl:356
  1. NOT (ARRYFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT01C.cbl:358
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING ARRAYFILE' ARRYFILE-STATUSCBACT01C.cbl:363
  1. NOT (APPL-AOK)
MOVE ARRYFILE-STATUS TO IO-STATUSCBACT01C.cbl:364
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:365
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:366
6 rules

4000-VBRFILE-OPEN

WhenThenAt
  1. VBRCFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT01C.cbl:374
  1. NOT (VBRCFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT01C.cbl:376
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING VBRC FILE' VBRCFILE-STATUSCBACT01C.cbl:381
  1. NOT (APPL-AOK)
MOVE VBRCFILE-STATUS TO IO-STATUSCBACT01C.cbl:382
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:383
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:384
7 rules

9000-ACCTFILE-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBACT01C.cbl:389
  1. ACCTFILE-STATUS = '00'
calc SUBTRACT APPL-RESULT FROM APPL-RESULTCBACT01C.cbl:392
  1. NOT (ACCTFILE-STATUS = '00')
calc ADD 12 TO ZERO GIVING APPL-RESULTCBACT01C.cbl:394
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING ACCOUNT FILE'CBACT01C.cbl:399
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT01C.cbl:400
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT01C.cbl:401
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT01C.cbl:402
8 rules

9910-DISPLAY-IO-STATUS

WhenThenAt
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE IO-STAT1 TO IO-STATUS-04(1:1)CBACT01C.cbl:416
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE 0 TO TWO-BYTES-BINARYCBACT01C.cbl:417
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE IO-STAT2 TO TWO-BYTES-RIGHTCBACT01C.cbl:418
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE TWO-BYTES-BINARY TO IO-STATUS-0403CBACT01C.cbl:419
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBACT01C.cbl:420
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE '0000' TO IO-STATUS-04CBACT01C.cbl:422
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE IO-STATUS TO IO-STATUS-04(3:2)CBACT01C.cbl:423
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBACT01C.cbl:424