MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 113 guarded actionsCBTRN01C

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 = 0CBTRN01C.cbl:143
APPL-EOFmeans APPL-RESULT = 16CBTRN01C.cbl:144
10 rules

MAIN-PARA

WhenThenAt
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
PERFORM 1000-DALYTRAN-GET-NEXTCBTRN01C.cbl:166
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
  3. END-OF-DAILY-TRANS-FILE = 'N'
DISPLAY DALYTRAN-RECORDCBTRN01C.cbl:168
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
MOVE 0 TO WS-XREF-READ-STATUSCBTRN01C.cbl:170
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
MOVE DALYTRAN-CARD-NUM TO XREF-CARD-NUMCBTRN01C.cbl:171
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
PERFORM 2000-LOOKUP-XREFCBTRN01C.cbl:172
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
  3. WS-XREF-READ-STATUS = 0
MOVE 0 TO WS-ACCT-READ-STATUSCBTRN01C.cbl:174
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
  3. WS-XREF-READ-STATUS = 0
MOVE XREF-ACCT-ID TO ACCT-IDCBTRN01C.cbl:175
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
  3. WS-XREF-READ-STATUS = 0
PERFORM 3000-READ-ACCOUNTCBTRN01C.cbl:176
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
  3. WS-XREF-READ-STATUS = 0
  4. WS-ACCT-READ-STATUS NOT = 0
DISPLAY 'ACCOUNT ' ACCT-ID ' NOT FOUND'CBTRN01C.cbl:178
  1. PERFORM UNTIL END-OF-DAILY-TRANS-FILE = 'Y'
  2. END-OF-DAILY-TRANS-FILE = 'N'
  3. NOT (WS-XREF-READ-STATUS = 0)
DISPLAY 'CARD NUMBER ' DALYTRAN-CARD-NUM ' COULD NOT BE VERIFIED. SKIPPING TRANSACTION ID-' DALYTRAN-IDCBTRN01C.cbl:181–183
8 rules

1000-DALYTRAN-GET-NEXT

WhenThenAt
  1. DALYTRAN-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:205
  1. NOT (DALYTRAN-STATUS = '00')
  2. DALYTRAN-STATUS = '10'
MOVE 16 TO APPL-RESULTCBTRN01C.cbl:208
  1. NOT (DALYTRAN-STATUS = '00')
  2. NOT (DALYTRAN-STATUS = '10')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:210
  1. NOT (APPL-AOK)
  2. APPL-EOF
MOVE 'Y' TO END-OF-DAILY-TRANS-FILECBTRN01C.cbl:217
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
DISPLAY 'ERROR READING DAILY TRANSACTION FILE'CBTRN01C.cbl:219
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
MOVE DALYTRAN-STATUS TO IO-STATUSCBTRN01C.cbl:220
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:221
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:222
6 rules

2000-LOOKUP-XREF

WhenThenAt
  1. READ INVALID KEY
DISPLAY 'INVALID CARD NUMBER FOR XREF'CBTRN01C.cbl:232
  1. READ INVALID KEY
MOVE 4 TO WS-XREF-READ-STATUSCBTRN01C.cbl:233
  1. READ NOT INVALID KEY
DISPLAY 'SUCCESSFUL READ OF XREF'CBTRN01C.cbl:235
  1. READ NOT INVALID KEY
DISPLAY 'CARD NUMBER: ' XREF-CARD-NUMCBTRN01C.cbl:236
  1. READ NOT INVALID KEY
DISPLAY 'ACCOUNT ID : ' XREF-ACCT-IDCBTRN01C.cbl:237
  1. READ NOT INVALID KEY
DISPLAY 'CUSTOMER ID: ' XREF-CUST-IDCBTRN01C.cbl:238
3 rules

3000-READ-ACCOUNT

WhenThenAt
  1. READ INVALID KEY
DISPLAY 'INVALID ACCOUNT NUMBER FOUND'CBTRN01C.cbl:246
  1. READ INVALID KEY
MOVE 4 TO WS-ACCT-READ-STATUSCBTRN01C.cbl:247
  1. READ NOT INVALID KEY
DISPLAY 'SUCCESSFUL READ OF ACCOUNT FILE'CBTRN01C.cbl:249
6 rules

0000-DALYTRAN-OPEN

WhenThenAt
  1. DALYTRAN-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:256
  1. NOT (DALYTRAN-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:258
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING DAILY TRANSACTION FILE'CBTRN01C.cbl:263
  1. NOT (APPL-AOK)
MOVE DALYTRAN-STATUS TO IO-STATUSCBTRN01C.cbl:264
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:265
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:266
6 rules

0100-CUSTFILE-OPEN

WhenThenAt
  1. CUSTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:275
  1. NOT (CUSTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:277
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING CUSTOMER FILE'CBTRN01C.cbl:282
  1. NOT (APPL-AOK)
MOVE CUSTFILE-STATUS TO IO-STATUSCBTRN01C.cbl:283
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:284
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:285
6 rules

0200-XREFFILE-OPEN

WhenThenAt
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:293
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:295
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING CROSS REF FILE'CBTRN01C.cbl:300
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBTRN01C.cbl:301
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:302
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:303
6 rules

0300-CARDFILE-OPEN

WhenThenAt
  1. CARDFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:311
  1. NOT (CARDFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:313
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING CARD FILE'CBTRN01C.cbl:318
  1. NOT (APPL-AOK)
MOVE CARDFILE-STATUS TO IO-STATUSCBTRN01C.cbl:319
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:320
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:321
6 rules

0400-ACCTFILE-OPEN

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:329
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:331
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING ACCOUNT FILE'CBTRN01C.cbl:336
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBTRN01C.cbl:337
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:338
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:339
6 rules

0500-TRANFILE-OPEN

WhenThenAt
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:347
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:349
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING TRANSACTION FILE'CBTRN01C.cbl:354
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBTRN01C.cbl:355
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:356
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:357
7 rules

9000-DALYTRAN-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBTRN01C.cbl:362
  1. DALYTRAN-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:365
  1. NOT (DALYTRAN-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:367
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING CUSTOMER FILE'CBTRN01C.cbl:372
  1. NOT (APPL-AOK)
MOVE CUSTFILE-STATUS TO IO-STATUSCBTRN01C.cbl:373
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:374
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:375
7 rules

9100-CUSTFILE-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBTRN01C.cbl:380
  1. CUSTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:383
  1. NOT (CUSTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:385
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING CUSTOMER FILE'CBTRN01C.cbl:390
  1. NOT (APPL-AOK)
MOVE CUSTFILE-STATUS TO IO-STATUSCBTRN01C.cbl:391
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:392
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:393
7 rules

9200-XREFFILE-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBTRN01C.cbl:398
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:401
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:403
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING CROSS REF FILE'CBTRN01C.cbl:408
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBTRN01C.cbl:409
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:410
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:411
7 rules

9300-CARDFILE-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBTRN01C.cbl:416
  1. CARDFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:419
  1. NOT (CARDFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:421
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING CARD FILE'CBTRN01C.cbl:426
  1. NOT (APPL-AOK)
MOVE CARDFILE-STATUS TO IO-STATUSCBTRN01C.cbl:427
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:428
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:429
7 rules

9400-ACCTFILE-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBTRN01C.cbl:434
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:437
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:439
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING ACCOUNT FILE'CBTRN01C.cbl:444
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBTRN01C.cbl:445
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:446
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:447
7 rules

9500-TRANFILE-CLOSE

WhenThenAt
alwayscalc ADD 8 TO ZERO GIVING APPL-RESULTCBTRN01C.cbl:452
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN01C.cbl:455
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN01C.cbl:457
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING TRANSACTION FILE'CBTRN01C.cbl:462
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBTRN01C.cbl:463
  1. NOT (APPL-AOK)
PERFORM Z-DISPLAY-IO-STATUSCBTRN01C.cbl:464
  1. NOT (APPL-AOK)
PERFORM Z-ABEND-PROGRAMCBTRN01C.cbl:465
8 rules

Z-DISPLAY-IO-STATUS

WhenThenAt
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE IO-STAT1 TO IO-STATUS-04(1:1)CBTRN01C.cbl:479
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE 0 TO TWO-BYTES-BINARYCBTRN01C.cbl:480
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE IO-STAT2 TO TWO-BYTES-RIGHTCBTRN01C.cbl:481
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE TWO-BYTES-BINARY TO IO-STATUS-0403CBTRN01C.cbl:482
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBTRN01C.cbl:483
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE '0000' TO IO-STATUS-04CBTRN01C.cbl:485
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE IO-STATUS TO IO-STATUS-04(3:2)CBTRN01C.cbl:486
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBTRN01C.cbl:487