MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 48 guarded actionsCBIMPORT

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

WS-EXPORT-OKmeans WS-EXPORT-STATUS = '00'CBIMPORT.cbl:119
WS-CUSTOMER-OKmeans WS-CUSTOMER-STATUS = '00'CBIMPORT.cbl:121
WS-ACCOUNT-OKmeans WS-ACCOUNT-STATUS = '00'CBIMPORT.cbl:123
WS-XREF-OKmeans WS-XREF-STATUS = '00'CBIMPORT.cbl:125
WS-TRANSACTION-OKmeans WS-TRANSACTION-STATUS = '00'CBIMPORT.cbl:127
WS-CARD-OKmeans WS-CARD-STATUS = '00'CBIMPORT.cbl:129
WS-ERROR-OKmeans WS-ERROR-STATUS = '00'CBIMPORT.cbl:131
WS-EXPORT-EOFmeans WS-EXPORT-STATUS = '10'CBIMPORT.cbl:118
4 rules

1000-INITIALIZE

WhenThenAt
always MOVE '-' TO WS-IMPORT-DATE(5:1)CBIMPORT.cbl:179
always MOVE '-' TO WS-IMPORT-DATE(8:1)CBIMPORT.cbl:181
always MOVE ':' TO WS-IMPORT-TIME(3:1)CBIMPORT.cbl:185
always MOVE ':' TO WS-IMPORT-TIME(6:1)CBIMPORT.cbl:187
14 rules

1100-OPEN-FILES

WhenThenAt
  1. NOT WS-EXPORT-OK
DISPLAY 'ERROR: Cannot open EXPORT-INPUT, Status: ' WS-EXPORT-STATUSCBIMPORT.cbl:200–201
  1. NOT WS-EXPORT-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:202
  1. NOT WS-CUSTOMER-OK
DISPLAY 'ERROR: Cannot open CUSTOMER-OUTPUT, Status: ' WS-CUSTOMER-STATUSCBIMPORT.cbl:207–208
  1. NOT WS-CUSTOMER-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:209
  1. NOT WS-ACCOUNT-OK
DISPLAY 'ERROR: Cannot open ACCOUNT-OUTPUT, Status: ' WS-ACCOUNT-STATUSCBIMPORT.cbl:214–215
  1. NOT WS-ACCOUNT-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:216
  1. NOT WS-XREF-OK
DISPLAY 'ERROR: Cannot open XREF-OUTPUT, Status: ' WS-XREF-STATUSCBIMPORT.cbl:221–222
  1. NOT WS-XREF-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:223
  1. NOT WS-TRANSACTION-OK
DISPLAY 'ERROR: Cannot open TRANSACTION-OUTPUT, Status: ' WS-TRANSACTION-STATUSCBIMPORT.cbl:228–229
  1. NOT WS-TRANSACTION-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:230
  1. NOT WS-CARD-OK
DISPLAY 'ERROR: Cannot open CARD-OUTPUT, Status: ' WS-CARD-STATUSCBIMPORT.cbl:235–236
  1. NOT WS-CARD-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:237
  1. NOT WS-ERROR-OK
DISPLAY 'ERROR: Cannot open ERROR-OUTPUT, Status: ' WS-ERROR-STATUSCBIMPORT.cbl:242–243
  1. NOT WS-ERROR-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:244
3 rules

2000-PROCESS-EXPORT-FILE

WhenThenAt
  1. PERFORM UNTIL WS-EXPORT-EOF
calc ADD 1 TO WS-TOTAL-RECORDS-READCBIMPORT.cbl:253
  1. PERFORM UNTIL WS-EXPORT-EOF
PERFORM 2200-PROCESS-RECORD-BY-TYPECBIMPORT.cbl:254
  1. PERFORM UNTIL WS-EXPORT-EOF
PERFORM 2100-READ-EXPORT-RECORDCBIMPORT.cbl:255
2 rules

2100-READ-EXPORT-RECORD

WhenThenAt
  1. NOT WS-EXPORT-OK AND NOT WS-EXPORT-EOF
DISPLAY 'ERROR: Reading EXPORT-INPUT, Status: ' WS-EXPORT-STATUSCBIMPORT.cbl:264–265
  1. NOT WS-EXPORT-OK AND NOT WS-EXPORT-EOF
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:266
6 rules

2200-PROCESS-RECORD-BY-TYPE

WhenThenAt
  1. EXPORT-REC-TYPE = 'C'
PERFORM 2300-PROCESS-CUSTOMER-RECORDCBIMPORT.cbl:274
  1. EXPORT-REC-TYPE = 'A'
PERFORM 2400-PROCESS-ACCOUNT-RECORDCBIMPORT.cbl:276
  1. EXPORT-REC-TYPE = 'X'
PERFORM 2500-PROCESS-XREF-RECORDCBIMPORT.cbl:278
  1. EXPORT-REC-TYPE = 'T'
PERFORM 2600-PROCESS-TRAN-RECORDCBIMPORT.cbl:280
  1. EXPORT-REC-TYPE = 'D'
PERFORM 2650-PROCESS-CARD-RECORDCBIMPORT.cbl:282
  1. EXPORT-REC-TYPE is none of ['C'; 'A'; 'X'; 'T'; 'D']
PERFORM 2700-PROCESS-UNKNOWN-RECORDCBIMPORT.cbl:284
3 rules

2300-PROCESS-CUSTOMER-RECORD

WhenThenAt
  1. NOT WS-CUSTOMER-OK
DISPLAY 'ERROR: Writing customer record, Status: ' WS-CUSTOMER-STATUSCBIMPORT.cbl:315–316
  1. NOT WS-CUSTOMER-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:317
alwayscalc ADD 1 TO WS-CUSTOMER-RECORDS-IMPORTEDCBIMPORT.cbl:320
3 rules

2400-PROCESS-ACCOUNT-RECORD

WhenThenAt
  1. NOT WS-ACCOUNT-OK
DISPLAY 'ERROR: Writing account record, Status: ' WS-ACCOUNT-STATUSCBIMPORT.cbl:344–345
  1. NOT WS-ACCOUNT-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:346
alwayscalc ADD 1 TO WS-ACCOUNT-RECORDS-IMPORTEDCBIMPORT.cbl:349
3 rules

2500-PROCESS-XREF-RECORD

WhenThenAt
  1. NOT WS-XREF-OK
DISPLAY 'ERROR: Writing xref record, Status: ' WS-XREF-STATUSCBIMPORT.cbl:364–365
  1. NOT WS-XREF-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:366
alwayscalc ADD 1 TO WS-XREF-RECORDS-IMPORTEDCBIMPORT.cbl:369
3 rules

2600-PROCESS-TRAN-RECORD

WhenThenAt
  1. NOT WS-TRANSACTION-OK
DISPLAY 'ERROR: Writing transaction record, Status: ' WS-TRANSACTION-STATUSCBIMPORT.cbl:394–395
  1. NOT WS-TRANSACTION-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:396
alwayscalc ADD 1 TO WS-TRAN-RECORDS-IMPORTEDCBIMPORT.cbl:399
3 rules

2650-PROCESS-CARD-RECORD

WhenThenAt
  1. NOT WS-CARD-OK
DISPLAY 'ERROR: Writing card record, Status: ' WS-CARD-STATUSCBIMPORT.cbl:417–418
  1. NOT WS-CARD-OK
PERFORM 9999-ABEND-PROGRAMCBIMPORT.cbl:419
alwayscalc ADD 1 TO WS-CARD-RECORDS-IMPORTEDCBIMPORT.cbl:422
2 rules

2700-PROCESS-UNKNOWN-RECORD

WhenThenAt
alwayscalc ADD 1 TO WS-UNKNOWN-RECORD-TYPE-COUNTCBIMPORT.cbl:427
always MOVE 'Unknown record type encountered' TO ERR-MESSAGECBIMPORT.cbl:432
2 rules

2750-WRITE-ERROR

WhenThenAt
  1. NOT WS-ERROR-OK
DISPLAY 'ERROR: Writing error record, Status: ' WS-ERROR-STATUSCBIMPORT.cbl:442–443
alwayscalc ADD 1 TO WS-ERROR-RECORDS-WRITTENCBIMPORT.cbl:446