MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 146 guarded actionsCBACT04C

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 = 0CBACT04C.cbl:134
APPL-EOFmeans APPL-RESULT = 16CBACT04C.cbl:135
18 rules

(PROCEDURE DIVISION)

WhenThenAt
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
PERFORM 1000-TCATBALF-GET-NEXTCBACT04C.cbl:190
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
calc ADD 1 TO WS-RECORD-COUNTCBACT04C.cbl:192
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
DISPLAY TRAN-CAT-BAL-RECORDCBACT04C.cbl:193
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
  5. WS-FIRST-TIME NOT = 'Y'
PERFORM 1050-UPDATE-ACCOUNTCBACT04C.cbl:196
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
  5. NOT (WS-FIRST-TIME NOT = 'Y')
MOVE 'N' TO WS-FIRST-TIMECBACT04C.cbl:198
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
MOVE 0 TO WS-TOTAL-INTCBACT04C.cbl:200
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
MOVE TRANCAT-ACCT-ID TO WS-LAST-ACCT-NUMCBACT04C.cbl:201
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
MOVE TRANCAT-ACCT-ID TO FD-ACCT-IDCBACT04C.cbl:202
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
PERFORM 1100-GET-ACCT-DATACBACT04C.cbl:203
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
MOVE TRANCAT-ACCT-ID TO FD-XREF-ACCT-IDCBACT04C.cbl:204
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. TRANCAT-ACCT-ID NOT= WS-LAST-ACCT-NUM
PERFORM 1110-GET-XREF-DATACBACT04C.cbl:205
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
MOVE ACCT-GROUP-ID TO FD-DIS-ACCT-GROUP-IDCBACT04C.cbl:210
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
MOVE TRANCAT-CD TO FD-DIS-TRAN-CAT-CDCBACT04C.cbl:211
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
MOVE TRANCAT-TYPE-CD TO FD-DIS-TRAN-TYPE-CDCBACT04C.cbl:212
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
PERFORM 1200-GET-INTEREST-RATECBACT04C.cbl:213
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. DIS-INT-RATE NOT = 0
PERFORM 1300-COMPUTE-INTERESTCBACT04C.cbl:215
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. END-OF-FILE = 'N'
  3. END-OF-FILE = 'N'
  4. DIS-INT-RATE NOT = 0
PERFORM 1400-COMPUTE-FEESCBACT04C.cbl:216
  1. PERFORM UNTIL END-OF-FILE = 'Y'
  2. NOT (END-OF-FILE = 'N')
PERFORM 1050-UPDATE-ACCOUNTCBACT04C.cbl:220
6 rules

0000-TCATBALF-OPEN

WhenThenAt
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:238
  1. NOT (TCATBALF-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:240
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING TRANSACTION CATEGORY BALANCE'CBACT04C.cbl:245
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBACT04C.cbl:246
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:247
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:248
6 rules

0100-XREFFILE-OPEN

WhenThenAt
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:256
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:258
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING CROSS REF FILE' XREFFILE-STATUSCBACT04C.cbl:263
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBACT04C.cbl:264
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:265
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:266
6 rules

0200-DISCGRP-OPEN

WhenThenAt
  1. DISCGRP-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:274
  1. NOT (DISCGRP-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:276
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING DALY REJECTS FILE'CBACT04C.cbl:281
  1. NOT (APPL-AOK)
MOVE DISCGRP-STATUS TO IO-STATUSCBACT04C.cbl:282
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:283
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:284
6 rules

0300-ACCTFILE-OPEN

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:293
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:295
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING ACCOUNT MASTER FILE'CBACT04C.cbl:300
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT04C.cbl:301
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:302
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:303
6 rules

0400-TRANFILE-OPEN

WhenThenAt
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:311
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:313
  1. NOT (APPL-AOK)
DISPLAY 'ERROR OPENING TRANSACTION FILE'CBACT04C.cbl:318
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBACT04C.cbl:319
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:320
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:321
8 rules

1000-TCATBALF-GET-NEXT

WhenThenAt
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:328
  1. NOT (TCATBALF-STATUS = '00')
  2. TCATBALF-STATUS = '10'
MOVE 16 TO APPL-RESULTCBACT04C.cbl:331
  1. NOT (TCATBALF-STATUS = '00')
  2. NOT (TCATBALF-STATUS = '10')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:333
  1. NOT (APPL-AOK)
  2. APPL-EOF
MOVE 'Y' TO END-OF-FILECBACT04C.cbl:340
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
DISPLAY 'ERROR READING TRANSACTION CATEGORY FILE'CBACT04C.cbl:342
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
MOVE TCATBALF-STATUS TO IO-STATUSCBACT04C.cbl:343
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:344
  1. NOT (APPL-AOK)
  2. NOT (APPL-EOF)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:345
7 rules

1050-UPDATE-ACCOUNT

WhenThenAt
alwayscalc ADD WS-TOTAL-INT TO ACCT-CURR-BALCBACT04C.cbl:352
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:358
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:360
  1. NOT (APPL-AOK)
DISPLAY 'ERROR RE-WRITING ACCOUNT FILE'CBACT04C.cbl:365
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT04C.cbl:366
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:367
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:368
7 rules

1100-GET-ACCT-DATA

WhenThenAt
  1. READ INVALID KEY
DISPLAY 'ACCOUNT NOT FOUND: ' FD-ACCT-IDCBACT04C.cbl:375
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:379
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:381
  1. NOT (APPL-AOK)
DISPLAY 'ERROR READING ACCOUNT FILE'CBACT04C.cbl:386
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT04C.cbl:387
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:388
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:389
7 rules

1110-GET-XREF-DATA

WhenThenAt
  1. READ INVALID KEY
DISPLAY 'ACCOUNT NOT FOUND: ' FD-XREF-ACCT-IDCBACT04C.cbl:397
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:401
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:403
  1. NOT (APPL-AOK)
DISPLAY 'ERROR READING XREF FILE'CBACT04C.cbl:408
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBACT04C.cbl:409
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:410
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:411
10 rules

1200-GET-INTEREST-RATE

WhenThenAt
  1. READ INVALID KEY
DISPLAY 'DISCLOSURE GROUP RECORD MISSING'CBACT04C.cbl:418
  1. READ INVALID KEY
DISPLAY 'TRY WITH DEFAULT GROUP CODE'CBACT04C.cbl:419
  1. DISCGRP-STATUS = '00' OR '23'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:423
  1. NOT (DISCGRP-STATUS = '00' OR '23')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:425
  1. NOT (APPL-AOK)
DISPLAY 'ERROR READING DISCLOSURE GROUP FILE'CBACT04C.cbl:431
  1. NOT (APPL-AOK)
MOVE DISCGRP-STATUS TO IO-STATUSCBACT04C.cbl:432
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:433
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:434
  1. DISCGRP-STATUS = '23'
MOVE 'DEFAULT' TO FD-DIS-ACCT-GROUP-IDCBACT04C.cbl:437
  1. DISCGRP-STATUS = '23'
PERFORM 1200-A-GET-DEFAULT-INT-RATECBACT04C.cbl:438
6 rules

1200-A-GET-DEFAULT-INT-RATE

WhenThenAt
  1. DISCGRP-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:447
  1. NOT (DISCGRP-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:449
  1. NOT (APPL-AOK)
DISPLAY 'ERROR READING DEFAULT DISCLOSURE GROUP'CBACT04C.cbl:455
  1. NOT (APPL-AOK)
MOVE DISCGRP-STATUS TO IO-STATUSCBACT04C.cbl:456
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:457
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:458
2 rules

1300-COMPUTE-INTEREST

WhenThenAt
alwayscalc COMPUTE WS-MONTHLY-INT = ( TRAN-CAT-BAL * DIS-INT-RATE) / 1200CBACT04C.cbl:464–465
alwayscalc ADD WS-MONTHLY-INT TO WS-TOTAL-INTCBACT04C.cbl:467
10 rules

1300-B-WRITE-TX

WhenThenAt
alwayscalc ADD 1 TO WS-TRANID-SUFFIXCBACT04C.cbl:474
always MOVE '01' TO TRAN-TYPE-CDCBACT04C.cbl:482
always MOVE '05' TO TRAN-CAT-CDCBACT04C.cbl:483
always MOVE 'System' TO TRAN-SOURCECBACT04C.cbl:484
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:502
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:504
  1. NOT (APPL-AOK)
DISPLAY 'ERROR WRITING TRANSACTION RECORD'CBACT04C.cbl:510
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBACT04C.cbl:511
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:512
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:513
6 rules

9000-TCATBALF-CLOSE

WhenThenAt
  1. TCATBALF-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:526
  1. NOT (TCATBALF-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:528
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING TRANSACTION BALANCE FILE'CBACT04C.cbl:533
  1. NOT (APPL-AOK)
MOVE TCATBALF-STATUS TO IO-STATUSCBACT04C.cbl:534
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:535
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:536
6 rules

9100-XREFFILE-CLOSE

WhenThenAt
  1. XREFFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:545
  1. NOT (XREFFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:547
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING CROSS REF FILE'CBACT04C.cbl:552
  1. NOT (APPL-AOK)
MOVE XREFFILE-STATUS TO IO-STATUSCBACT04C.cbl:553
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:554
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:555
6 rules

9200-DISCGRP-CLOSE

WhenThenAt
  1. DISCGRP-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:563
  1. NOT (DISCGRP-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:565
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING DISCLOSURE GROUP FILE'CBACT04C.cbl:570
  1. NOT (APPL-AOK)
MOVE DISCGRP-STATUS TO IO-STATUSCBACT04C.cbl:571
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:572
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:573
6 rules

9300-ACCTFILE-CLOSE

WhenThenAt
  1. ACCTFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:581
  1. NOT (ACCTFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:583
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING ACCOUNT FILE'CBACT04C.cbl:588
  1. NOT (APPL-AOK)
MOVE ACCTFILE-STATUS TO IO-STATUSCBACT04C.cbl:589
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:590
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:591
6 rules

9400-TRANFILE-CLOSE

WhenThenAt
  1. TRANFILE-STATUS = '00'
MOVE 0 TO APPL-RESULTCBACT04C.cbl:599
  1. NOT (TRANFILE-STATUS = '00')
MOVE 12 TO APPL-RESULTCBACT04C.cbl:601
  1. NOT (APPL-AOK)
DISPLAY 'ERROR CLOSING TRANSACTION FILE'CBACT04C.cbl:606
  1. NOT (APPL-AOK)
MOVE TRANFILE-STATUS TO IO-STATUSCBACT04C.cbl:607
  1. NOT (APPL-AOK)
PERFORM 9910-DISPLAY-IO-STATUSCBACT04C.cbl:608
  1. NOT (APPL-AOK)
PERFORM 9999-ABEND-PROGRAMCBACT04C.cbl:609
3 rules

Z-GET-DB2-FORMAT-TIMESTAMP

WhenThenAt
always MOVE '0000' TO DB2-RESTCBACT04C.cbl:622
always MOVE '-' TO DB2-STREEP-1 DB2-STREEP-2 DB2-STREEP-3CBACT04C.cbl:623
always MOVE '.' TO DB2-DOT-1 DB2-DOT-2 DB2-DOT-3CBACT04C.cbl:624
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)CBACT04C.cbl:638
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE 0 TO TWO-BYTES-BINARYCBACT04C.cbl:639
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE IO-STAT2 TO TWO-BYTES-RIGHTCBACT04C.cbl:640
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
MOVE TWO-BYTES-BINARY TO IO-STATUS-0403CBACT04C.cbl:641
  1. IO-STATUS NOT NUMERIC OR IO-STAT1 = '9'
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBACT04C.cbl:642
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE '0000' TO IO-STATUS-04CBACT04C.cbl:644
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
MOVE IO-STATUS TO IO-STATUS-04(3:2)CBACT04C.cbl:645
  1. NOT (IO-STATUS NOT NUMERIC OR IO-STAT1 = '9')
DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04CBACT04C.cbl:646