MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 152 guarded actionsCBTRN02C

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

(PROCEDURE DIVISION)

WhenThenAt
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
PERFORM 1000-DALYTRAN-GET-NEXTCBTRN02C.cbl:204
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
calc ADD 1 TO WS-TRANSACTION-COUNTCBTRN02C.cbl:206
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
MOVE 0 TO WS-VALIDATION-FAIL-REASONCBTRN02C.cbl:208
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
MOVE SPACES TO WS-VALIDATION-FAIL-REASON-DESCCBTRN02C.cbl:209
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
PERFORM 1500-VALIDATE-TRANCBTRN02C.cbl:210
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. WS-VALIDATION-FAIL-REASON = 0
PERFORM 2000-POST-TRANSACTIONCBTRN02C.cbl:212
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. NOT (WS-VALIDATION-FAIL-REASON = 0)
calc ADD 1 TO WS-REJECT-COUNTCBTRN02C.cbl:214
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. NOT (WS-VALIDATION-FAIL-REASON = 0)
PERFORM 2500-WRITE-REJECT-RECCBTRN02C.cbl:215
  1. WS-REJECT-COUNT > 0
MOVE 4 TO RETURN-CODECBTRN02C.cbl:230
6 rules

0000-DALYTRAN-OPEN

WhenThenAt
  1. DALYTRAN-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:240
  1. NOT (DALYTRAN-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:242
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING DALYTRAN'CBTRN02C.cbl:247
  1. NOT (APPL-AOK)
MOVE DALYTRAN-STATUS TO IO-STATUSCBTRN02C.cbl:248
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:249
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:250
6 rules

0100-TRANFILE-OPEN

WhenThenAt
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:258
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:260
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING TRANSACTION FILE'CBTRN02C.cbl:265
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBTRN02C.cbl:266
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:267
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:268
6 rules

0200-XREFFILE-OPEN

WhenThenAt
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:277
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:279
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING CROSS REF FILE'CBTRN02C.cbl:284
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBTRN02C.cbl:285
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:286
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:287
6 rules

0300-DALYREJS-OPEN

WhenThenAt
  1. DALYREJS-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:295
  1. NOT (DALYREJS-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:297
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING DALY REJECTS FILE'CBTRN02C.cbl:302
  1. NOT (APPL-AOK)
MOVE DALYREJS-STATUS TO IO-STATUSCBTRN02C.cbl:303
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:304
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:305
6 rules

0400-ACCTFILE-OPEN

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:313
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:315
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING ACCOUNT MASTER FILE'CBTRN02C.cbl:320
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBTRN02C.cbl:321
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:322
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:323
6 rules

0500-TCATBALF-OPEN

WhenThenAt
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:331
  1. NOT (TCATBALF-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:333
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING TRANSACTION BALANCE FILE'CBTRN02C.cbl:338
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBTRN02C.cbl:339
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:340
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:341
8 rules

1000-DALYTRAN-GET-NEXT

WhenThenAt
  1. DALYTRAN-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:348
  1. NOT (DALYTRAN-STATUS = '00')
  2. DALYTRAN-STATUS = '10'
MOVE 16 TO APPL-RESULTCBTRN02C.cbl:352
  1. NOT (DALYTRAN-STATUS = '00')
  2. NOT (DALYTRAN-STATUS = '10')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:354
  1. NOT (APPL-AOK)
  2. APPL-EOF
MOVE 'Y' TO END-OF-FILECBTRN02C.cbl:361
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
DISPLAY 'ERROR READING DALYTRAN FILE'CBTRN02C.cbl:363
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
MOVE DALYTRAN-STATUS TO IO-STATUSCBTRN02C.cbl:364
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:365
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:366
1 rules

1500-VALIDATE-TRAN

WhenThenAt
  1. WS-VALIDATION-FAIL-REASON = 0
PERFORM 1500-B-LOOKUP-ACCTCBTRN02C.cbl:373
2 rules

1500-A-LOOKUP-XREF

WhenThenAt
  1. READ INVALID KEY
MOVE 100 TO WS-VALIDATION-FAIL-REASONCBTRN02C.cbl:385
  1. READ INVALID KEY
MOVE 'INVALID CARD NUMBER FOUND' TO WS-VALIDATION-FAIL-REASON-DESCCBTRN02C.cbl:386–387
7 rules

1500-B-LOOKUP-ACCT

WhenThenAt
  1. READ INVALID KEY
MOVE 101 TO WS-VALIDATION-FAIL-REASONCBTRN02C.cbl:397
  1. READ INVALID KEY
MOVE 'ACCOUNT RECORD NOT FOUND' TO WS-VALIDATION-FAIL-REASON-DESCCBTRN02C.cbl:398–399
  1. READ NOT INVALID KEY
calc COMPUTE WS-TEMP-BAL = ACCT-CURR-CYC-CREDIT - ACCT-CURR-CYC-DEBIT + DALYTRAN-AMTCBTRN02C.cbl:403–405
  1. READ NOT INVALID KEY
  2. NOT (ACCT-CREDIT-LIMIT >= WS-TEMP-BAL)
MOVE 102 TO WS-VALIDATION-FAIL-REASONCBTRN02C.cbl:410
  1. READ NOT INVALID KEY
  2. NOT (ACCT-CREDIT-LIMIT >= WS-TEMP-BAL)
MOVE 'OVERLIMIT TRANSACTION' TO WS-VALIDATION-FAIL-REASON-DESCCBTRN02C.cbl:411–412
  1. READ NOT INVALID KEY
  2. NOT (ACCT-EXPIRAION-DATE >= DALYTRAN-ORIG-TS (1:10))
MOVE 103 TO WS-VALIDATION-FAIL-REASONCBTRN02C.cbl:417
  1. READ NOT INVALID KEY
  2. NOT (ACCT-EXPIRAION-DATE >= DALYTRAN-ORIG-TS (1:10))
MOVE 'TRANSACTION RECEIVED AFTER ACCT EXPIRATION' TO WS-VALIDATION-FAIL-REASON-DESCCBTRN02C.cbl:418–419
6 rules

2500-WRITE-REJECT-REC

WhenThenAt
  1. DALYREJS-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:453
  1. NOT (DALYREJS-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:455
  1. NOT (APPL-AOK)
DISPLAY 'ERROR WRITING TO REJECTS FILE'CBTRN02C.cbl:460
  1. NOT (APPL-AOK)
MOVE DALYREJS-STATUS TO IO-STATUSCBTRN02C.cbl:461
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:462
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:463
11 rules

2700-UPDATE-TCATBAL

WhenThenAt
always MOVE 'N' TO WS-CREATE-TRANCAT-RECCBTRN02C.cbl:473
  1. READ INVALID KEY
DISPLAY 'TCATBAL record not found for key : ' FD-TRAN-CAT-KEY '.. Creating.'CBTRN02C.cbl:476–477
  1. READ INVALID KEY
MOVE 'Y' TO WS-CREATE-TRANCAT-RECCBTRN02C.cbl:478
  1. TCATBALF-STATUS = '00' OR '23'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:482
  1. NOT (TCATBALF-STATUS = '00' OR '23')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:484
  1. NOT (APPL-AOK)
DISPLAY 'ERROR READING TRANSACTION BALANCE FILE'CBTRN02C.cbl:489
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBTRN02C.cbl:490
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:491
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:492
  1. WS-CREATE-TRANCAT-REC = 'Y'
PERFORM 2700-A-CREATE-TCATBAL-RECCBTRN02C.cbl:496
  1. NOT (WS-CREATE-TRANCAT-REC = 'Y')
PERFORM 2700-B-UPDATE-TCATBAL-RECCBTRN02C.cbl:498
7 rules

2700-A-CREATE-TCATBAL-REC

WhenThenAt
alwayscalc ADD DALYTRAN-AMT TO TRAN-CAT-BALCBTRN02C.cbl:508
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:513
  1. NOT (TCATBALF-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:515
  1. NOT (APPL-AOK)
DISPLAY 'ERROR WRITING TRANSACTION BALANCE FILE'CBTRN02C.cbl:520
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBTRN02C.cbl:521
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:522
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:523
7 rules

2700-B-UPDATE-TCATBAL-REC

WhenThenAt
alwayscalc ADD DALYTRAN-AMT TO TRAN-CAT-BALCBTRN02C.cbl:527
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:531
  1. NOT (TCATBALF-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:533
  1. NOT (APPL-AOK)
DISPLAY 'ERROR REWRITING TRANSACTION BALANCE FILE'CBTRN02C.cbl:538
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBTRN02C.cbl:539
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:540
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:541
5 rules

2800-UPDATE-ACCOUNT-REC

WhenThenAt
alwayscalc ADD DALYTRAN-AMT TO ACCT-CURR-BALCBTRN02C.cbl:547
  1. DALYTRAN-AMT >= 0
calc ADD DALYTRAN-AMT TO ACCT-CURR-CYC-CREDITCBTRN02C.cbl:549
  1. NOT (DALYTRAN-AMT >= 0)
calc ADD DALYTRAN-AMT TO ACCT-CURR-CYC-DEBITCBTRN02C.cbl:551
  1. REWRITE INVALID KEY
MOVE 109 TO WS-VALIDATION-FAIL-REASONCBTRN02C.cbl:556
  1. REWRITE INVALID KEY
MOVE 'ACCOUNT RECORD NOT FOUND' TO WS-VALIDATION-FAIL-REASON-DESCCBTRN02C.cbl:557–558
6 rules

2900-WRITE-TRANSACTION-FILE

WhenThenAt
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:567
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:569
  1. NOT (APPL-AOK)
DISPLAY 'ERROR WRITING TO TRANSACTION FILE'CBTRN02C.cbl:574
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBTRN02C.cbl:575
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:576
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:577
6 rules

9000-DALYTRAN-CLOSE

WhenThenAt
  1. DALYTRAN-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:586
  1. NOT (DALYTRAN-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:588
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING DALYTRAN FILE'CBTRN02C.cbl:593
  1. NOT (APPL-AOK)
MOVE DALYTRAN-STATUS TO IO-STATUSCBTRN02C.cbl:594
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:595
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:596
6 rules

9100-TRANFILE-CLOSE

WhenThenAt
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:604
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:606
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING TRANSACTION FILE'CBTRN02C.cbl:611
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBTRN02C.cbl:612
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:613
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:614
6 rules

9200-XREFFILE-CLOSE

WhenThenAt
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:623
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:625
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING CROSS REF FILE'CBTRN02C.cbl:630
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBTRN02C.cbl:631
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:632
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:633
6 rules

9300-DALYREJS-CLOSE

WhenThenAt
  1. DALYREJS-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:641
  1. NOT (DALYREJS-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:643
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING DAILY REJECTS FILE'CBTRN02C.cbl:648
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBTRN02C.cbl:649
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:650
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:651
6 rules

9400-ACCTFILE-CLOSE

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:659
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:661
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING ACCOUNT FILE'CBTRN02C.cbl:666
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBTRN02C.cbl:667
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:668
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:669
6 rules

9500-TCATBALF-CLOSE

WhenThenAt
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBTRN02C.cbl:678
  1. NOT (TCATBALF-STATUS = '00')
MOVE 12 TO APPL-RESULTCBTRN02C.cbl:680
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING TRANSACTION BALANCE FILE'CBTRN02C.cbl:685
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBTRN02C.cbl:686
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBTRN02C.cbl:687
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBTRN02C.cbl:688
3 rules

Z-GET-DB2-FORMAT-TIMESTAMP

WhenThenAt
always MOVE '0000' TO DB2-RESTCBTRN02C.cbl:701
always MOVE '-' TO DB2-STREEP-1 DB2-STREEP-2 DB2-STREEP-3CBTRN02C.cbl:702
always MOVE '.' TO DB2-DOT-1 DB2-DOT-2 DB2-DOT-3CBTRN02C.cbl:703
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)CBTRN02C.cbl:717
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE 0 TO TWO-BYTES-BINARYCBTRN02C.cbl:718
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE IO-STAT2 TO TWO-BYTES-RIGHTCBTRN02C.cbl:719
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE TWO-BYTES-BINARY TO IO-STATUS-0403CBTRN02C.cbl:720
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBTRN02C.cbl:721
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE '0000' TO IO-STATUS-04CBTRN02C.cbl:723
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE IO-STATUS TO IO-STATUS-04(3:2)CBTRN02C.cbl:724
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBTRN02C.cbl:725