MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 184 guarded actionsCOPAUA0C

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

PSB-SCHEDULED-MORE-THAN-ONCEmeans IMS-RETURN-CODE = 'TC'COPAUA0C.cbl:92
STATUS-OKmeans IMS-RETURN-CODE = ' ' OR 'FW'COPAUA0C.cbl:86
NO-MORE-MSG-AVAILABLEmeans WS-MSG-AVAILABLE-FLG = 'N'COPAUA0C.cbl:117
WS-LOOP-ENDmeans WS-MSG-LOOP-FLG = 'E'COPAUA0C.cbl:115
CARD-FOUND-XREFmeans WS-XREF-READ-FLG = 'Y'COPAUA0C.cbl:127
SEGMENT-NOT-FOUNDmeans IMS-RETURN-CODE = 'GE'COPAUA0C.cbl:87
FOUND-PAUT-SMRY-SEGmeans WS-PAUT-SMRY-SEG-FLG = 'Y'COPAUA0C.cbl:135
FOUND-ACCT-IN-MSTRmeans WS-ACCT-MASTER-READ-FLG = 'Y'COPAUA0C.cbl:129
DECLINE-AUTHmeans WS-DECLINE-FLG = 'D'COPAUA0C.cbl:139
AUTH-RESP-DECLINEDmeans WS-AUTH-RESP-FLG = 'D'COPAUA0C.cbl:113
CARD-NFOUND-XREFmeans WS-XREF-READ-FLG = 'N'COPAUA0C.cbl:126
NFOUND-ACCT-IN-MSTRmeans WS-ACCT-MASTER-READ-FLG = 'N'COPAUA0C.cbl:130
NFOUND-CUST-IN-MSTRmeans WS-CUST-MASTER-READ-FLG = 'N'COPAUA0C.cbl:133
INSUFFICIENT-FUNDmeans WS-DECLINE-REASON-FLG = 'I'COPAUA0C.cbl:141
CARD-NOT-ACTIVEmeans WS-DECLINE-REASON-FLG = 'A'COPAUA0C.cbl:142
ACCOUNT-CLOSEDmeans WS-DECLINE-REASON-FLG = 'C'COPAUA0C.cbl:143
CARD-FRAUDmeans WS-DECLINE-REASON-FLG = 'F'COPAUA0C.cbl:144
MERCHANT-FRAUDmeans WS-DECLINE-REASON-FLG = 'M'COPAUA0C.cbl:145
NFOUND-PAUT-SMRY-SEGmeans WS-PAUT-SMRY-SEG-FLG = 'N'COPAUA0C.cbl:136
AUTH-RESP-APPROVEDmeans WS-AUTH-RESP-FLG = 'A'COPAUA0C.cbl:112
WS-REQUEST-MQ-OPENmeans WS-REQUEST-MQ-FLG = 'O'COPAUA0C.cbl:120
ERR-CRITICALmeans ERR-LEVEL = 'C'CCPAUERY.cpy:29 via COPAUA0C.cbl:185
2 rules

1000-INITIALIZE

WhenThenAt
  1. EIBRESP = DFHRESP(NORMAL)
MOVE MQTM-QNAME TO WS-REQUEST-QNAMECOPAUA0C.cbl:238
  1. EIBRESP = DFHRESP(NORMAL)
MOVE MQTM-TRIGGERDATA TO WS-TRIGGER-DATACOPAUA0C.cbl:239
11 rules

1100-OPEN-REQUEST-QUEUE

WhenThenAt
alwayscalc COMPUTE WS-OPTIONS = MQOO-INPUT-SHAREDCOPAUA0C.cbl:260
  1. WS-COMPCODE = MQCC-OK
SET WS-REQUEST-MQ-OPEN TO TRUECOPAUA0C.cbl:271
  1. NOT (WS-COMPCODE = MQCC-OK)
MOVE 'M001' TO ERR-LOCATIONCOPAUA0C.cbl:273
  1. NOT (WS-COMPCODE = MQCC-OK)
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:274
  1. NOT (WS-COMPCODE = MQCC-OK)
SET ERR-MQ TO TRUECOPAUA0C.cbl:275
  1. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-COMPCODE TO WS-CODE-DISPLAYCOPAUA0C.cbl:276
  1. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:277
  1. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-REASON TO WS-CODE-DISPLAYCOPAUA0C.cbl:278
  1. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:279
  1. NOT (WS-COMPCODE = MQCC-OK)
MOVE 'REQ MQ OPEN ERROR' TO ERR-MESSAGECOPAUA0C.cbl:280–281
  1. NOT (WS-COMPCODE = MQCC-OK)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:282
8 rules

1200-SCHEDULE-PSB

WhenThenAt
  1. PSB-SCHEDULED-MORE-THAN-ONCE
MOVE DIBSTAT TO IMS-RETURN-CODECOPAUA0C.cbl:306
  1. STATUS-OK
SET IMS-PSB-SCHD TO TRUECOPAUA0C.cbl:309
  1. NOT (STATUS-OK)
MOVE 'I001' TO ERR-LOCATIONCOPAUA0C.cbl:311
  1. NOT (STATUS-OK)
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:312
  1. NOT (STATUS-OK)
SET ERR-IMS TO TRUECOPAUA0C.cbl:313
  1. NOT (STATUS-OK)
MOVE IMS-RETURN-CODE TO ERR-CODE-1COPAUA0C.cbl:314
  1. NOT (STATUS-OK)
MOVE 'IMS SCHD FAILED' TO ERR-MESSAGECOPAUA0C.cbl:315
  1. NOT (STATUS-OK)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:316
7 rules

2000-MAIN-PROCESS

WhenThenAt
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
PERFORM 2100-EXTRACT-REQUEST-MSG THRU 2100-EXITCOPAUA0C.cbl:328
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
PERFORM 5000-PROCESS-AUTH THRU 5000-EXITCOPAUA0C.cbl:330
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
calc ADD 1 TO WS-MSG-PROCESSEDCOPAUA0C.cbl:332
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
EXEC CICS SYNCPOINT END-EXECCOPAUA0C.cbl:334–336
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
SET IMS-PSB-NOT-SCHD TO TRUECOPAUA0C.cbl:337
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
  2. WS-MSG-PROCESSED > WS-REQSTS-PROCESS-LIMIT
SET WS-LOOP-END TO TRUECOPAUA0C.cbl:340
  1. PERFORM UNTIL NO-MORE-MSG-AVAILABLE OR WS-LOOP-END
  2. NOT (WS-MSG-PROCESSED > WS-REQSTS-PROCESS-LIMIT)
PERFORM 3100-READ-REQUEST-MQ THRU 3100-EXITCOPAUA0C.cbl:342
1 rules

2100-EXTRACT-REQUEST-MSG

WhenThenAt
alwayscalc COMPUTE PA-RQ-TRANSACTION-AMT = FUNCTION NUMVAL(WS-TRANSACTION-AMT-AN)COPAUA0C.cbl:376–377
14 rules

3100-READ-REQUEST-MQ

WhenThenAt
alwayscalc COMPUTE MQGMO-OPTIONS = MQGMO-NO-SYNCPOINT + MQGMO-WAIT + MQGMO-CONVERT + MQGMO-FAIL-IF-QUIESCINGCOPAUA0C.cbl:389–391
  1. WS-COMPCODE = MQCC-OK
MOVE MQMD-CORRELID OF MQM-MD-REQUEST TO WS-SAVE-CORRELIDCOPAUA0C.cbl:411–412
  1. WS-COMPCODE = MQCC-OK
MOVE MQMD-REPLYTOQ OF MQM-MD-REQUEST TO WS-REPLY-QNAMECOPAUA0C.cbl:413–414
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. WS-REASON = MQRC-NO-MSG-AVAILABLE
SET NO-MORE-MSG-AVAILABLE TO TRUECOPAUA0C.cbl:417
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE 'M003' TO ERR-LOCATIONCOPAUA0C.cbl:419
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:420
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
SET ERR-CICS TO TRUECOPAUA0C.cbl:421
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE WS-COMPCODE TO WS-CODE-DISPLAYCOPAUA0C.cbl:422
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:423
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE WS-REASON TO WS-CODE-DISPLAYCOPAUA0C.cbl:424
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:425
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE 'FAILED TO READ REQUEST MQ' TO ERR-MESSAGECOPAUA0C.cbl:426–427
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
MOVE PA-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:428
  1. NOT (WS-COMPCODE = MQCC-OK)
  2. NOT (WS-REASON = MQRC-NO-MSG-AVAILABLE)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:429
5 rules

5000-PROCESS-AUTH

WhenThenAt
  1. CARD-FOUND-XREF
PERFORM 5200-READ-ACCT-RECORD THRU 5200-EXITCOPAUA0C.cbl:451
  1. CARD-FOUND-XREF
PERFORM 5300-READ-CUST-RECORD THRU 5300-EXITCOPAUA0C.cbl:452
  1. CARD-FOUND-XREF
PERFORM 5500-READ-AUTH-SUMMRY THRU 5500-EXITCOPAUA0C.cbl:454
  1. CARD-FOUND-XREF
PERFORM 5600-READ-PROFILE-DATA THRU 5600-EXITCOPAUA0C.cbl:456
  1. CARD-FOUND-XREF
PERFORM 8000-WRITE-AUTH-TO-DB THRU 8000-EXITCOPAUA0C.cbl:464
19 rules

5100-READ-XREF-RECORD

WhenThenAt
  1. WS-RESP-CD = DFHRESP(NORMAL)
SET CARD-FOUND-XREF TO TRUECOPAUA0C.cbl:489
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET CARD-NFOUND-XREF TO TRUECOPAUA0C.cbl:491
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET NFOUND-ACCT-IN-MSTR TO TRUECOPAUA0C.cbl:492
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'A001' TO ERR-LOCATIONCOPAUA0C.cbl:494
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET ERR-WARNING TO TRUECOPAUA0C.cbl:495
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET ERR-APP TO TRUECOPAUA0C.cbl:496
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'CARD NOT FOUND IN XREF' TO ERR-MESSAGECOPAUA0C.cbl:497–498
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE XREF-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:499
  1. WS-RESP-CD = DFHRESP(NOTFND)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:500
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'C001' TO ERR-LOCATIONCOPAUA0C.cbl:502
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:503
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
SET ERR-CICS TO TRUECOPAUA0C.cbl:504
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-RESP-CD TO WS-CODE-DISPLAYCOPAUA0C.cbl:505
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:506
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-REAS-CD TO WS-CODE-DISPLAYCOPAUA0C.cbl:507
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:508
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'FAILED TO READ XREF FILE' TO ERR-MESSAGECOPAUA0C.cbl:509–510
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE XREF-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:511
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:512
18 rules

5200-READ-ACCT-RECORD

WhenThenAt
  1. WS-RESP-CD = DFHRESP(NORMAL)
SET FOUND-ACCT-IN-MSTR TO TRUECOPAUA0C.cbl:537
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET NFOUND-ACCT-IN-MSTR TO TRUECOPAUA0C.cbl:539
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'A002' TO ERR-LOCATIONCOPAUA0C.cbl:541
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET ERR-WARNING TO TRUECOPAUA0C.cbl:542
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET ERR-APP TO TRUECOPAUA0C.cbl:543
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'ACCT NOT FOUND IN XREF' TO ERR-MESSAGECOPAUA0C.cbl:544–545
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE WS-CARD-RID-ACCT-ID-X TO ERR-EVENT-KEYCOPAUA0C.cbl:546
  1. WS-RESP-CD = DFHRESP(NOTFND)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:547
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'C002' TO ERR-LOCATIONCOPAUA0C.cbl:550
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:551
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
SET ERR-CICS TO TRUECOPAUA0C.cbl:552
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-RESP-CD TO WS-CODE-DISPLAYCOPAUA0C.cbl:553
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:554
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-REAS-CD TO WS-CODE-DISPLAYCOPAUA0C.cbl:555
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:556
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'FAILED TO READ ACCT FILE' TO ERR-MESSAGECOPAUA0C.cbl:557–558
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CARD-RID-ACCT-ID-X TO ERR-EVENT-KEYCOPAUA0C.cbl:559
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:560
18 rules

5300-READ-CUST-RECORD

WhenThenAt
  1. WS-RESP-CD = DFHRESP(NORMAL)
SET FOUND-CUST-IN-MSTR TO TRUECOPAUA0C.cbl:585
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET NFOUND-CUST-IN-MSTR TO TRUECOPAUA0C.cbl:587
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'A003' TO ERR-LOCATIONCOPAUA0C.cbl:589
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET ERR-WARNING TO TRUECOPAUA0C.cbl:590
  1. WS-RESP-CD = DFHRESP(NOTFND)
SET ERR-APP TO TRUECOPAUA0C.cbl:591
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE 'CUST NOT FOUND IN XREF' TO ERR-MESSAGECOPAUA0C.cbl:592–593
  1. WS-RESP-CD = DFHRESP(NOTFND)
MOVE WS-CARD-RID-CUST-ID TO ERR-EVENT-KEYCOPAUA0C.cbl:594
  1. WS-RESP-CD = DFHRESP(NOTFND)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:595
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'C003' TO ERR-LOCATIONCOPAUA0C.cbl:598
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:599
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
SET ERR-CICS TO TRUECOPAUA0C.cbl:600
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-RESP-CD TO WS-CODE-DISPLAYCOPAUA0C.cbl:601
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:602
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-REAS-CD TO WS-CODE-DISPLAYCOPAUA0C.cbl:603
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:604
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE 'FAILED TO READ CUST FILE' TO ERR-MESSAGECOPAUA0C.cbl:605–606
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
MOVE WS-CARD-RID-CUST-ID TO ERR-EVENT-KEYCOPAUA0C.cbl:607
  1. WS-RESP-CD is none of [DFHRESP(NORMAL); DFHRESP(NOTFND)]
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:608
9 rules

5500-READ-AUTH-SUMMRY

WhenThenAt
  1. STATUS-OK
SET FOUND-PAUT-SMRY-SEG TO TRUECOPAUA0C.cbl:629
  1. SEGMENT-NOT-FOUND
SET NFOUND-PAUT-SMRY-SEG TO TRUECOPAUA0C.cbl:631
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
MOVE 'I002' TO ERR-LOCATIONCOPAUA0C.cbl:633
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:634
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
SET ERR-IMS TO TRUECOPAUA0C.cbl:635
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
MOVE IMS-RETURN-CODE TO ERR-CODE-1COPAUA0C.cbl:636
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
MOVE 'IMS GET SUMMARY FAILED' TO ERR-MESSAGECOPAUA0C.cbl:637
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
MOVE PA-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:638
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND]
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:639
21 rules

6000-MAKE-DECISION

WhenThenAt
  1. FOUND-PAUT-SMRY-SEG
calc COMPUTE WS-AVAILABLE-AMT = PA-CREDIT-LIMIT - PA-CREDIT-BALANCECOPAUA0C.cbl:666–667
  1. FOUND-PAUT-SMRY-SEG
  2. WS-TRANSACTION-AMT > WS-AVAILABLE-AMT
SET DECLINE-AUTH TO TRUECOPAUA0C.cbl:669
  1. FOUND-PAUT-SMRY-SEG
  2. WS-TRANSACTION-AMT > WS-AVAILABLE-AMT
SET INSUFFICIENT-FUND TO TRUECOPAUA0C.cbl:670
  1. NOT (FOUND-PAUT-SMRY-SEG)
  2. FOUND-ACCT-IN-MSTR
calc COMPUTE WS-AVAILABLE-AMT = ACCT-CREDIT-LIMIT - ACCT-CURR-BALCOPAUA0C.cbl:674–675
  1. NOT (FOUND-PAUT-SMRY-SEG)
  2. FOUND-ACCT-IN-MSTR
  3. WS-TRANSACTION-AMT > WS-AVAILABLE-AMT
SET DECLINE-AUTH TO TRUECOPAUA0C.cbl:677
  1. NOT (FOUND-PAUT-SMRY-SEG)
  2. FOUND-ACCT-IN-MSTR
  3. WS-TRANSACTION-AMT > WS-AVAILABLE-AMT
SET INSUFFICIENT-FUND TO TRUECOPAUA0C.cbl:678
  1. NOT (FOUND-PAUT-SMRY-SEG)
  2. NOT (FOUND-ACCT-IN-MSTR)
SET DECLINE-AUTH TO TRUECOPAUA0C.cbl:681
  1. DECLINE-AUTH
SET AUTH-RESP-DECLINED TO TRUECOPAUA0C.cbl:686
  1. DECLINE-AUTH
MOVE '05' TO PA-RL-AUTH-RESP-CODECOPAUA0C.cbl:688
  1. DECLINE-AUTH
MOVE 0 TO PA-RL-APPROVED-AMT WS-APPROVED-AMTCOPAUA0C.cbl:689–690
  1. NOT (DECLINE-AUTH)
SET AUTH-RESP-APPROVED TO TRUECOPAUA0C.cbl:692
  1. NOT (DECLINE-AUTH)
MOVE '00' TO PA-RL-AUTH-RESP-CODECOPAUA0C.cbl:693
  1. NOT (DECLINE-AUTH)
MOVE PA-RQ-TRANSACTION-AMT TO PA-RL-APPROVED-AMT WS-APPROVED-AMTCOPAUA0C.cbl:694–695
always MOVE '0000' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:698
  1. AUTH-RESP-DECLINED
  2. CARD-NFOUND-XREF | NFOUND-ACCT-IN-MSTR | NFOUND-CUST-IN-MSTR
MOVE '3100' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:704
  1. AUTH-RESP-DECLINED
  2. INSUFFICIENT-FUND
MOVE '4100' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:706
  1. AUTH-RESP-DECLINED
  2. CARD-NOT-ACTIVE
MOVE '4200' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:708
  1. AUTH-RESP-DECLINED
  2. ACCOUNT-CLOSED
MOVE '4300' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:710
  1. AUTH-RESP-DECLINED
  2. CARD-FRAUD
MOVE '5100' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:712
  1. AUTH-RESP-DECLINED
  2. MERCHANT-FRAUD
MOVE '5200' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:714
  1. AUTH-RESP-DECLINED
  2. TRUE is none of [CARD-NFOUND-XREF; NFOUND-ACCT-IN-MSTR; NFOUND-CUST-IN-MSTR; INSUFFICIENT-FUND; CARD-NOT-ACTIVE; ACCOUNT-CLOSED; CARD-FRAUD; MERCHANT-FRAUD]
MOVE '9000' TO PA-RL-AUTH-RESP-REASONCOPAUA0C.cbl:716
11 rules

7100-SEND-RESPONSE

WhenThenAt
alwayscalc COMPUTE MQPMO-OPTIONS = MQPMO-NO-SYNCPOINT + MQPMO-DEFAULT-CONTEXTCOPAUA0C.cbl:753–754
  1. WS-COMPCODE NOT = MQCC-OK
MOVE 'M004' TO ERR-LOCATIONCOPAUA0C.cbl:768
  1. WS-COMPCODE NOT = MQCC-OK
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:769
  1. WS-COMPCODE NOT = MQCC-OK
SET ERR-MQ TO TRUECOPAUA0C.cbl:770
  1. WS-COMPCODE NOT = MQCC-OK
MOVE WS-COMPCODE TO WS-CODE-DISPLAYCOPAUA0C.cbl:771
  1. WS-COMPCODE NOT = MQCC-OK
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:772
  1. WS-COMPCODE NOT = MQCC-OK
MOVE WS-REASON TO WS-CODE-DISPLAYCOPAUA0C.cbl:773
  1. WS-COMPCODE NOT = MQCC-OK
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:774
  1. WS-COMPCODE NOT = MQCC-OK
MOVE 'FAILED TO PUT ON REPLY MQ' TO ERR-MESSAGECOPAUA0C.cbl:775–776
  1. WS-COMPCODE NOT = MQCC-OK
MOVE PA-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:777
  1. WS-COMPCODE NOT = MQCC-OK
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:778
16 rules

8400-UPDATE-SUMMARY

WhenThenAt
  1. NFOUND-PAUT-SMRY-SEG
INITIALIZE PENDING-AUTH-SUMMARY REPLACING NUMERIC DATA BY ZEROCOPAUA0C.cbl:802–803
  1. NFOUND-PAUT-SMRY-SEG
MOVE XREF-ACCT-ID TO PA-ACCT-IDCOPAUA0C.cbl:805
  1. NFOUND-PAUT-SMRY-SEG
MOVE XREF-CUST-ID TO PA-CUST-IDCOPAUA0C.cbl:806
  1. AUTH-RESP-APPROVED
calc ADD 1 TO PA-APPROVED-AUTH-CNTCOPAUA0C.cbl:814
  1. AUTH-RESP-APPROVED
calc ADD WS-APPROVED-AMT TO PA-APPROVED-AUTH-AMTCOPAUA0C.cbl:815
  1. AUTH-RESP-APPROVED
calc ADD WS-APPROVED-AMT TO PA-CREDIT-BALANCECOPAUA0C.cbl:817
  1. AUTH-RESP-APPROVED
MOVE 0 TO PA-CASH-BALANCECOPAUA0C.cbl:818
  1. NOT (AUTH-RESP-APPROVED)
calc ADD 1 TO PA-DECLINED-AUTH-CNTCOPAUA0C.cbl:820
  1. NOT (AUTH-RESP-APPROVED)
calc ADD PA-TRANSACTION-AMT TO PA-DECLINED-AUTH-AMTCOPAUA0C.cbl:821
  1. NOT (STATUS-OK)
MOVE 'I003' TO ERR-LOCATIONCOPAUA0C.cbl:840
  1. NOT (STATUS-OK)
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:841
  1. NOT (STATUS-OK)
SET ERR-IMS TO TRUECOPAUA0C.cbl:842
  1. NOT (STATUS-OK)
MOVE IMS-RETURN-CODE TO ERR-CODE-1COPAUA0C.cbl:843
  1. NOT (STATUS-OK)
MOVE 'IMS UPDATE SUMRY FAILED' TO ERR-MESSAGECOPAUA0C.cbl:844
  1. NOT (STATUS-OK)
MOVE PA-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:845
  1. NOT (STATUS-OK)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:846
12 rules

8500-INSERT-AUTH

WhenThenAt
alwayscalc COMPUTE WS-TIME-WITH-MS = (WS-CUR-TIME-N6 * 1000) + WS-CUR-TIME-MSCOPAUA0C.cbl:871–872
alwayscalc COMPUTE PA-AUTH-DATE-9C = 99999 - WS-YYDDDCOPAUA0C.cbl:874
alwayscalc COMPUTE PA-AUTH-TIME-9C = 999999999 - WS-TIME-WITH-MSCOPAUA0C.cbl:875
  1. AUTH-RESP-APPROVED
SET PA-MATCH-PENDING TO TRUECOPAUA0C.cbl:903
  1. NOT (AUTH-RESP-APPROVED)
SET PA-MATCH-AUTH-DECLINED TO TRUECOPAUA0C.cbl:905
  1. NOT (STATUS-OK)
MOVE 'I004' TO ERR-LOCATIONCOPAUA0C.cbl:925
  1. NOT (STATUS-OK)
SET ERR-CRITICAL TO TRUECOPAUA0C.cbl:926
  1. NOT (STATUS-OK)
SET ERR-IMS TO TRUECOPAUA0C.cbl:927
  1. NOT (STATUS-OK)
MOVE IMS-RETURN-CODE TO ERR-CODE-1COPAUA0C.cbl:928
  1. NOT (STATUS-OK)
MOVE 'IMS INSERT DETL FAILED' TO ERR-MESSAGECOPAUA0C.cbl:929
  1. NOT (STATUS-OK)
MOVE PA-CARD-NUM TO ERR-EVENT-KEYCOPAUA0C.cbl:930
  1. NOT (STATUS-OK)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:931
11 rules

9100-CLOSE-REQUEST-QUEUE

WhenThenAt
  1. WS-REQUEST-MQ-OPEN
CALL 'MQCLOSE' USING W01-HCONN-REQUEST W01-HOBJ-REQUEST MQCO-NONE WS-COMPCODE WS-REASONCOPAUA0C.cbl:956–960
  1. WS-REQUEST-MQ-OPEN
  2. WS-COMPCODE = MQCC-OK
SET WS-REQUEST-MQ-CLSE TO TRUECOPAUA0C.cbl:964
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
MOVE 'M005' TO ERR-LOCATIONCOPAUA0C.cbl:966
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
SET ERR-WARNING TO TRUECOPAUA0C.cbl:967
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
SET ERR-MQ TO TRUECOPAUA0C.cbl:968
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-COMPCODE TO WS-CODE-DISPLAYCOPAUA0C.cbl:969
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-CODE-DISPLAY TO ERR-CODE-1COPAUA0C.cbl:970
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-REASON TO WS-CODE-DISPLAYCOPAUA0C.cbl:971
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
MOVE WS-CODE-DISPLAY TO ERR-CODE-2COPAUA0C.cbl:972
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
MOVE 'FAILED TO CLOSE REQUEST MQ' TO ERR-MESSAGECOPAUA0C.cbl:973–974
  1. WS-REQUEST-MQ-OPEN
  2. NOT (WS-COMPCODE = MQCC-OK)
PERFORM 9500-LOG-ERRORCOPAUA0C.cbl:975
1 rules

9500-LOG-ERROR

WhenThenAt
  1. ERR-CRITICAL
PERFORM 9990-END-ROUTINECOPAUA0C.cbl:1009