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.
Condition names used
| PSB-SCHEDULED-MORE-THAN-ONCE | means IMS-RETURN-CODE = 'TC' | COPAUA0C.cbl:92 |
| STATUS-OK | means IMS-RETURN-CODE = ' ' OR 'FW' | COPAUA0C.cbl:86 |
| NO-MORE-MSG-AVAILABLE | means WS-MSG-AVAILABLE-FLG = 'N' | COPAUA0C.cbl:117 |
| WS-LOOP-END | means WS-MSG-LOOP-FLG = 'E' | COPAUA0C.cbl:115 |
| CARD-FOUND-XREF | means WS-XREF-READ-FLG = 'Y' | COPAUA0C.cbl:127 |
| SEGMENT-NOT-FOUND | means IMS-RETURN-CODE = 'GE' | COPAUA0C.cbl:87 |
| FOUND-PAUT-SMRY-SEG | means WS-PAUT-SMRY-SEG-FLG = 'Y' | COPAUA0C.cbl:135 |
| FOUND-ACCT-IN-MSTR | means WS-ACCT-MASTER-READ-FLG = 'Y' | COPAUA0C.cbl:129 |
| DECLINE-AUTH | means WS-DECLINE-FLG = 'D' | COPAUA0C.cbl:139 |
| AUTH-RESP-DECLINED | means WS-AUTH-RESP-FLG = 'D' | COPAUA0C.cbl:113 |
| CARD-NFOUND-XREF | means WS-XREF-READ-FLG = 'N' | COPAUA0C.cbl:126 |
| NFOUND-ACCT-IN-MSTR | means WS-ACCT-MASTER-READ-FLG = 'N' | COPAUA0C.cbl:130 |
| NFOUND-CUST-IN-MSTR | means WS-CUST-MASTER-READ-FLG = 'N' | COPAUA0C.cbl:133 |
| INSUFFICIENT-FUND | means WS-DECLINE-REASON-FLG = 'I' | COPAUA0C.cbl:141 |
| CARD-NOT-ACTIVE | means WS-DECLINE-REASON-FLG = 'A' | COPAUA0C.cbl:142 |
| ACCOUNT-CLOSED | means WS-DECLINE-REASON-FLG = 'C' | COPAUA0C.cbl:143 |
| CARD-FRAUD | means WS-DECLINE-REASON-FLG = 'F' | COPAUA0C.cbl:144 |
| MERCHANT-FRAUD | means WS-DECLINE-REASON-FLG = 'M' | COPAUA0C.cbl:145 |
| NFOUND-PAUT-SMRY-SEG | means WS-PAUT-SMRY-SEG-FLG = 'N' | COPAUA0C.cbl:136 |
| AUTH-RESP-APPROVED | means WS-AUTH-RESP-FLG = 'A' | COPAUA0C.cbl:112 |
| WS-REQUEST-MQ-OPEN | means WS-REQUEST-MQ-FLG = 'O' | COPAUA0C.cbl:120 |
| ERR-CRITICAL | means ERR-LEVEL = 'C' | CCPAUERY.cpy:29 via COPAUA0C.cbl:185 |
1000-INITIALIZE
| When | Then | At |
|---|---|---|
| MOVE MQTM-QNAME TO WS-REQUEST-QNAME | COPAUA0C.cbl:238 |
| MOVE MQTM-TRIGGERDATA TO WS-TRIGGER-DATA | COPAUA0C.cbl:239 |
1100-OPEN-REQUEST-QUEUE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE WS-OPTIONS = MQOO-INPUT-SHARED | COPAUA0C.cbl:260 |
| SET WS-REQUEST-MQ-OPEN TO TRUE | COPAUA0C.cbl:271 |
| MOVE 'M001' TO ERR-LOCATION | COPAUA0C.cbl:273 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:274 |
| SET ERR-MQ TO TRUE | COPAUA0C.cbl:275 |
| MOVE WS-COMPCODE TO WS-CODE-DISPLAY | COPAUA0C.cbl:276 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:277 |
| MOVE WS-REASON TO WS-CODE-DISPLAY | COPAUA0C.cbl:278 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:279 |
| MOVE 'REQ MQ OPEN ERROR' TO ERR-MESSAGE | COPAUA0C.cbl:280–281 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:282 |
1200-SCHEDULE-PSB
| When | Then | At |
|---|---|---|
| MOVE DIBSTAT TO IMS-RETURN-CODE | COPAUA0C.cbl:306 |
| SET IMS-PSB-SCHD TO TRUE | COPAUA0C.cbl:309 |
| MOVE 'I001' TO ERR-LOCATION | COPAUA0C.cbl:311 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:312 |
| SET ERR-IMS TO TRUE | COPAUA0C.cbl:313 |
| MOVE IMS-RETURN-CODE TO ERR-CODE-1 | COPAUA0C.cbl:314 |
| MOVE 'IMS SCHD FAILED' TO ERR-MESSAGE | COPAUA0C.cbl:315 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:316 |
2000-MAIN-PROCESS
| When | Then | At |
|---|---|---|
| PERFORM 2100-EXTRACT-REQUEST-MSG THRU 2100-EXIT | COPAUA0C.cbl:328 |
| PERFORM 5000-PROCESS-AUTH THRU 5000-EXIT | COPAUA0C.cbl:330 |
| calc ADD 1 TO WS-MSG-PROCESSED | COPAUA0C.cbl:332 |
| EXEC CICS SYNCPOINT END-EXEC | COPAUA0C.cbl:334–336 |
| SET IMS-PSB-NOT-SCHD TO TRUE | COPAUA0C.cbl:337 |
| SET WS-LOOP-END TO TRUE | COPAUA0C.cbl:340 |
| PERFORM 3100-READ-REQUEST-MQ THRU 3100-EXIT | COPAUA0C.cbl:342 |
2100-EXTRACT-REQUEST-MSG
| When | Then | At |
|---|---|---|
| always | calc COMPUTE PA-RQ-TRANSACTION-AMT = FUNCTION NUMVAL(WS-TRANSACTION-AMT-AN) | COPAUA0C.cbl:376–377 |
3100-READ-REQUEST-MQ
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQGMO-OPTIONS = MQGMO-NO-SYNCPOINT + MQGMO-WAIT + MQGMO-CONVERT + MQGMO-FAIL-IF-QUIESCING | COPAUA0C.cbl:389–391 |
| MOVE MQMD-CORRELID OF MQM-MD-REQUEST TO WS-SAVE-CORRELID | COPAUA0C.cbl:411–412 |
| MOVE MQMD-REPLYTOQ OF MQM-MD-REQUEST TO WS-REPLY-QNAME | COPAUA0C.cbl:413–414 |
| SET NO-MORE-MSG-AVAILABLE TO TRUE | COPAUA0C.cbl:417 |
| MOVE 'M003' TO ERR-LOCATION | COPAUA0C.cbl:419 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:420 |
| SET ERR-CICS TO TRUE | COPAUA0C.cbl:421 |
| MOVE WS-COMPCODE TO WS-CODE-DISPLAY | COPAUA0C.cbl:422 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:423 |
| MOVE WS-REASON TO WS-CODE-DISPLAY | COPAUA0C.cbl:424 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:425 |
| MOVE 'FAILED TO READ REQUEST MQ' TO ERR-MESSAGE | COPAUA0C.cbl:426–427 |
| MOVE PA-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:428 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:429 |
5000-PROCESS-AUTH
| When | Then | At |
|---|---|---|
| PERFORM 5200-READ-ACCT-RECORD THRU 5200-EXIT | COPAUA0C.cbl:451 |
| PERFORM 5300-READ-CUST-RECORD THRU 5300-EXIT | COPAUA0C.cbl:452 |
| PERFORM 5500-READ-AUTH-SUMMRY THRU 5500-EXIT | COPAUA0C.cbl:454 |
| PERFORM 5600-READ-PROFILE-DATA THRU 5600-EXIT | COPAUA0C.cbl:456 |
| PERFORM 8000-WRITE-AUTH-TO-DB THRU 8000-EXIT | COPAUA0C.cbl:464 |
5100-READ-XREF-RECORD
| When | Then | At |
|---|---|---|
| SET CARD-FOUND-XREF TO TRUE | COPAUA0C.cbl:489 |
| SET CARD-NFOUND-XREF TO TRUE | COPAUA0C.cbl:491 |
| SET NFOUND-ACCT-IN-MSTR TO TRUE | COPAUA0C.cbl:492 |
| MOVE 'A001' TO ERR-LOCATION | COPAUA0C.cbl:494 |
| SET ERR-WARNING TO TRUE | COPAUA0C.cbl:495 |
| SET ERR-APP TO TRUE | COPAUA0C.cbl:496 |
| MOVE 'CARD NOT FOUND IN XREF' TO ERR-MESSAGE | COPAUA0C.cbl:497–498 |
| MOVE XREF-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:499 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:500 |
| MOVE 'C001' TO ERR-LOCATION | COPAUA0C.cbl:502 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:503 |
| SET ERR-CICS TO TRUE | COPAUA0C.cbl:504 |
| MOVE WS-RESP-CD TO WS-CODE-DISPLAY | COPAUA0C.cbl:505 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:506 |
| MOVE WS-REAS-CD TO WS-CODE-DISPLAY | COPAUA0C.cbl:507 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:508 |
| MOVE 'FAILED TO READ XREF FILE' TO ERR-MESSAGE | COPAUA0C.cbl:509–510 |
| MOVE XREF-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:511 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:512 |
5200-READ-ACCT-RECORD
| When | Then | At |
|---|---|---|
| SET FOUND-ACCT-IN-MSTR TO TRUE | COPAUA0C.cbl:537 |
| SET NFOUND-ACCT-IN-MSTR TO TRUE | COPAUA0C.cbl:539 |
| MOVE 'A002' TO ERR-LOCATION | COPAUA0C.cbl:541 |
| SET ERR-WARNING TO TRUE | COPAUA0C.cbl:542 |
| SET ERR-APP TO TRUE | COPAUA0C.cbl:543 |
| MOVE 'ACCT NOT FOUND IN XREF' TO ERR-MESSAGE | COPAUA0C.cbl:544–545 |
| MOVE WS-CARD-RID-ACCT-ID-X TO ERR-EVENT-KEY | COPAUA0C.cbl:546 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:547 |
| MOVE 'C002' TO ERR-LOCATION | COPAUA0C.cbl:550 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:551 |
| SET ERR-CICS TO TRUE | COPAUA0C.cbl:552 |
| MOVE WS-RESP-CD TO WS-CODE-DISPLAY | COPAUA0C.cbl:553 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:554 |
| MOVE WS-REAS-CD TO WS-CODE-DISPLAY | COPAUA0C.cbl:555 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:556 |
| MOVE 'FAILED TO READ ACCT FILE' TO ERR-MESSAGE | COPAUA0C.cbl:557–558 |
| MOVE WS-CARD-RID-ACCT-ID-X TO ERR-EVENT-KEY | COPAUA0C.cbl:559 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:560 |
5300-READ-CUST-RECORD
| When | Then | At |
|---|---|---|
| SET FOUND-CUST-IN-MSTR TO TRUE | COPAUA0C.cbl:585 |
| SET NFOUND-CUST-IN-MSTR TO TRUE | COPAUA0C.cbl:587 |
| MOVE 'A003' TO ERR-LOCATION | COPAUA0C.cbl:589 |
| SET ERR-WARNING TO TRUE | COPAUA0C.cbl:590 |
| SET ERR-APP TO TRUE | COPAUA0C.cbl:591 |
| MOVE 'CUST NOT FOUND IN XREF' TO ERR-MESSAGE | COPAUA0C.cbl:592–593 |
| MOVE WS-CARD-RID-CUST-ID TO ERR-EVENT-KEY | COPAUA0C.cbl:594 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:595 |
| MOVE 'C003' TO ERR-LOCATION | COPAUA0C.cbl:598 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:599 |
| SET ERR-CICS TO TRUE | COPAUA0C.cbl:600 |
| MOVE WS-RESP-CD TO WS-CODE-DISPLAY | COPAUA0C.cbl:601 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:602 |
| MOVE WS-REAS-CD TO WS-CODE-DISPLAY | COPAUA0C.cbl:603 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:604 |
| MOVE 'FAILED TO READ CUST FILE' TO ERR-MESSAGE | COPAUA0C.cbl:605–606 |
| MOVE WS-CARD-RID-CUST-ID TO ERR-EVENT-KEY | COPAUA0C.cbl:607 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:608 |
5500-READ-AUTH-SUMMRY
| When | Then | At |
|---|---|---|
| SET FOUND-PAUT-SMRY-SEG TO TRUE | COPAUA0C.cbl:629 |
| SET NFOUND-PAUT-SMRY-SEG TO TRUE | COPAUA0C.cbl:631 |
| MOVE 'I002' TO ERR-LOCATION | COPAUA0C.cbl:633 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:634 |
| SET ERR-IMS TO TRUE | COPAUA0C.cbl:635 |
| MOVE IMS-RETURN-CODE TO ERR-CODE-1 | COPAUA0C.cbl:636 |
| MOVE 'IMS GET SUMMARY FAILED' TO ERR-MESSAGE | COPAUA0C.cbl:637 |
| MOVE PA-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:638 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:639 |
6000-MAKE-DECISION
| When | Then | At |
|---|---|---|
| calc COMPUTE WS-AVAILABLE-AMT = PA-CREDIT-LIMIT - PA-CREDIT-BALANCE | COPAUA0C.cbl:666–667 |
| SET DECLINE-AUTH TO TRUE | COPAUA0C.cbl:669 |
| SET INSUFFICIENT-FUND TO TRUE | COPAUA0C.cbl:670 |
| calc COMPUTE WS-AVAILABLE-AMT = ACCT-CREDIT-LIMIT - ACCT-CURR-BAL | COPAUA0C.cbl:674–675 |
| SET DECLINE-AUTH TO TRUE | COPAUA0C.cbl:677 |
| SET INSUFFICIENT-FUND TO TRUE | COPAUA0C.cbl:678 |
| SET DECLINE-AUTH TO TRUE | COPAUA0C.cbl:681 |
| SET AUTH-RESP-DECLINED TO TRUE | COPAUA0C.cbl:686 |
| MOVE '05' TO PA-RL-AUTH-RESP-CODE | COPAUA0C.cbl:688 |
| MOVE 0 TO PA-RL-APPROVED-AMT WS-APPROVED-AMT | COPAUA0C.cbl:689–690 |
| SET AUTH-RESP-APPROVED TO TRUE | COPAUA0C.cbl:692 |
| MOVE '00' TO PA-RL-AUTH-RESP-CODE | COPAUA0C.cbl:693 |
| MOVE PA-RQ-TRANSACTION-AMT TO PA-RL-APPROVED-AMT WS-APPROVED-AMT | COPAUA0C.cbl:694–695 |
| always | MOVE '0000' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:698 |
| MOVE '3100' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:704 |
| MOVE '4100' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:706 |
| MOVE '4200' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:708 |
| MOVE '4300' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:710 |
| MOVE '5100' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:712 |
| MOVE '5200' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:714 |
| MOVE '9000' TO PA-RL-AUTH-RESP-REASON | COPAUA0C.cbl:716 |
7100-SEND-RESPONSE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQPMO-OPTIONS = MQPMO-NO-SYNCPOINT + MQPMO-DEFAULT-CONTEXT | COPAUA0C.cbl:753–754 |
| MOVE 'M004' TO ERR-LOCATION | COPAUA0C.cbl:768 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:769 |
| SET ERR-MQ TO TRUE | COPAUA0C.cbl:770 |
| MOVE WS-COMPCODE TO WS-CODE-DISPLAY | COPAUA0C.cbl:771 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:772 |
| MOVE WS-REASON TO WS-CODE-DISPLAY | COPAUA0C.cbl:773 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:774 |
| MOVE 'FAILED TO PUT ON REPLY MQ' TO ERR-MESSAGE | COPAUA0C.cbl:775–776 |
| MOVE PA-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:777 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:778 |
8400-UPDATE-SUMMARY
| When | Then | At |
|---|---|---|
| INITIALIZE PENDING-AUTH-SUMMARY REPLACING NUMERIC DATA BY ZERO | COPAUA0C.cbl:802–803 |
| MOVE XREF-ACCT-ID TO PA-ACCT-ID | COPAUA0C.cbl:805 |
| MOVE XREF-CUST-ID TO PA-CUST-ID | COPAUA0C.cbl:806 |
| calc ADD 1 TO PA-APPROVED-AUTH-CNT | COPAUA0C.cbl:814 |
| calc ADD WS-APPROVED-AMT TO PA-APPROVED-AUTH-AMT | COPAUA0C.cbl:815 |
| calc ADD WS-APPROVED-AMT TO PA-CREDIT-BALANCE | COPAUA0C.cbl:817 |
| MOVE 0 TO PA-CASH-BALANCE | COPAUA0C.cbl:818 |
| calc ADD 1 TO PA-DECLINED-AUTH-CNT | COPAUA0C.cbl:820 |
| calc ADD PA-TRANSACTION-AMT TO PA-DECLINED-AUTH-AMT | COPAUA0C.cbl:821 |
| MOVE 'I003' TO ERR-LOCATION | COPAUA0C.cbl:840 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:841 |
| SET ERR-IMS TO TRUE | COPAUA0C.cbl:842 |
| MOVE IMS-RETURN-CODE TO ERR-CODE-1 | COPAUA0C.cbl:843 |
| MOVE 'IMS UPDATE SUMRY FAILED' TO ERR-MESSAGE | COPAUA0C.cbl:844 |
| MOVE PA-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:845 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:846 |
8500-INSERT-AUTH
| When | Then | At |
|---|---|---|
| always | calc COMPUTE WS-TIME-WITH-MS = (WS-CUR-TIME-N6 * 1000) + WS-CUR-TIME-MS | COPAUA0C.cbl:871–872 |
| always | calc COMPUTE PA-AUTH-DATE-9C = 99999 - WS-YYDDD | COPAUA0C.cbl:874 |
| always | calc COMPUTE PA-AUTH-TIME-9C = 999999999 - WS-TIME-WITH-MS | COPAUA0C.cbl:875 |
| SET PA-MATCH-PENDING TO TRUE | COPAUA0C.cbl:903 |
| SET PA-MATCH-AUTH-DECLINED TO TRUE | COPAUA0C.cbl:905 |
| MOVE 'I004' TO ERR-LOCATION | COPAUA0C.cbl:925 |
| SET ERR-CRITICAL TO TRUE | COPAUA0C.cbl:926 |
| SET ERR-IMS TO TRUE | COPAUA0C.cbl:927 |
| MOVE IMS-RETURN-CODE TO ERR-CODE-1 | COPAUA0C.cbl:928 |
| MOVE 'IMS INSERT DETL FAILED' TO ERR-MESSAGE | COPAUA0C.cbl:929 |
| MOVE PA-CARD-NUM TO ERR-EVENT-KEY | COPAUA0C.cbl:930 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:931 |
9100-CLOSE-REQUEST-QUEUE
| When | Then | At |
|---|---|---|
| CALL 'MQCLOSE' USING W01-HCONN-REQUEST W01-HOBJ-REQUEST MQCO-NONE WS-COMPCODE WS-REASON | COPAUA0C.cbl:956–960 |
| SET WS-REQUEST-MQ-CLSE TO TRUE | COPAUA0C.cbl:964 |
| MOVE 'M005' TO ERR-LOCATION | COPAUA0C.cbl:966 |
| SET ERR-WARNING TO TRUE | COPAUA0C.cbl:967 |
| SET ERR-MQ TO TRUE | COPAUA0C.cbl:968 |
| MOVE WS-COMPCODE TO WS-CODE-DISPLAY | COPAUA0C.cbl:969 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-1 | COPAUA0C.cbl:970 |
| MOVE WS-REASON TO WS-CODE-DISPLAY | COPAUA0C.cbl:971 |
| MOVE WS-CODE-DISPLAY TO ERR-CODE-2 | COPAUA0C.cbl:972 |
| MOVE 'FAILED TO CLOSE REQUEST MQ' TO ERR-MESSAGE | COPAUA0C.cbl:973–974 |
| PERFORM 9500-LOG-ERROR | COPAUA0C.cbl:975 |
9500-LOG-ERROR
| When | Then | At |
|---|---|---|
| PERFORM 9990-END-ROUTINE | COPAUA0C.cbl:1009 |