Business rules · 135 guarded actionsCOACCT01
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
| REPLY-QUEUE-OPEN | means WS-REPLY-QUEUE-STS = 'Y' | COACCT01.cbl:23 |
| RESP-QUEUE-OPEN | means WS-RESP-QUEUE-STS = 'Y' | COACCT01.cbl:17 |
| ERR-QUEUE-OPEN | means WS-ERR-QUEUE-STS = 'Y' | COACCT01.cbl:20 |
1000-CONTROL
| When | Then | At |
|---|---|---|
| MOVE MQTM-QNAME TO INPUT-QUEUE-NAME | COACCT01.cbl:197 |
| MOVE 'CARD.DEMO.REPLY.ACCT' TO REPLY-QUEUE-NAME | COACCT01.cbl:198 |
| MOVE 'CICS RETREIVE' TO MQ-ERROR-PARA | COACCT01.cbl:200 |
| MOVE WS-CICS-RESP1-CD TO WS-CICS-RESP1-CD-D | COACCT01.cbl:201 |
| MOVE WS-CICS-RESP2-CD TO WS-CICS-RESP2-CD | COACCT01.cbl:202 |
| STRING 'RESP: ' WS-CICS-RESP1-CD-D WS-CICS-RESP2-CD-D 'END' DELIMITED BY SIZE INTO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:203–205 |
| PERFORM 9000-ERROR | COACCT01.cbl:208 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:209 |
2300-OPEN-INPUT-QUEUE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQ-OPTIONS = MQOO-INPUT-SHARED + MQOO-SAVE-ALL-CONTEXT + MQOO-FAIL-IF-QUIESCING | COACCT01.cbl:229–231 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:242 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:243 |
| MOVE MQ-HOBJ TO INPUT-QUEUE-HANDLE | COACCT01.cbl:244 |
| SET REPLY-QUEUE-OPEN TO TRUE | COACCT01.cbl:245 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:247 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:248 |
| MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:249 |
| MOVE 'INP MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:250 |
| PERFORM 9000-ERROR | COACCT01.cbl:251 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:252 |
2400-OPEN-OUTPUT-QUEUE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQ-OPTIONS = MQOO-OUTPUT + MQOO-PASS-ALL-CONTEXT + MQOO-FAIL-IF-QUIESCING | COACCT01.cbl:263–265 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:276 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:277 |
| MOVE MQ-HOBJ TO OUTPUT-QUEUE-HANDLE | COACCT01.cbl:278 |
| SET RESP-QUEUE-OPEN TO TRUE | COACCT01.cbl:279 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:281 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:282 |
| MOVE REPLY-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:283 |
| MOVE 'OUT MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:284 |
| PERFORM 9000-ERROR | COACCT01.cbl:285 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:286 |
2100-OPEN-ERROR-QUEUE
| When | Then | At |
|---|---|---|
| always | MOVE 'CARD.DEMO.ERROR' TO ERROR-QUEUE-NAME | COACCT01.cbl:294 |
| always | calc COMPUTE MQ-OPTIONS = MQOO-OUTPUT + MQOO-PASS-ALL-CONTEXT + MQOO-FAIL-IF-QUIESCING | COACCT01.cbl:298–300 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:311 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:312 |
| MOVE MQ-HOBJ TO ERROR-QUEUE-HANDLE | COACCT01.cbl:313 |
| SET ERR-QUEUE-OPEN TO TRUE | COACCT01.cbl:314 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:316 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:317 |
| MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:318 |
| MOVE 'ERR MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:319 |
| DISPLAY MQ-ERR-DISPLAY | COACCT01.cbl:320 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:321 |
3000-GET-REQUEST
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQGMO-OPTIONS = MQGMO-SYNCPOINT + MQGMO-FAIL-IF-QUIESCING + MQGMO-CONVERT + MQGMO-WAIT | COACCT01.cbl:347–350 |
| MOVE MQMD-MSGID TO MQ-MSG-ID | COACCT01.cbl:364 |
| MOVE MQMD-CORRELID TO MQ-CORRELID | COACCT01.cbl:365 |
| MOVE MQMD-REPLYTOQ TO MQ-QUEUE-REPLY | COACCT01.cbl:366 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:367 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:368 |
| MOVE MQ-BUFFER TO REQUEST-MESSAGE | COACCT01.cbl:369 |
| MOVE MQ-CORRELID TO SAVE-CORELID | COACCT01.cbl:370 |
| MOVE MQ-QUEUE-REPLY TO SAVE-REPLY2Q | COACCT01.cbl:371 |
| MOVE MQ-MSG-ID TO SAVE-MSGID | COACCT01.cbl:372 |
| MOVE REQUEST-MESSAGE TO REQUEST-MSG-COPY | COACCT01.cbl:373 |
| PERFORM 4000-PROCESS-REQUEST-REPLY | COACCT01.cbl:374 |
| calc ADD 1 TO MQ-MSG-COUNT | COACCT01.cbl:375 |
| SET NO-MORE-MSGS TO TRUE | COACCT01.cbl:378 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:381 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:382 |
| MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:383 |
| MOVE 'INP MQGET ERR:' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:384 |
| PERFORM 9000-ERROR | COACCT01.cbl:385 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:386 |
4000-PROCESS-REQUEST-REPLY
| When | Then | At |
|---|---|---|
| MOVE WS-KEY TO WS-CARD-RID-ACCT-ID | COACCT01.cbl:394 |
| EXEC CICS READ DATASET (LIT-ACCTFILENAME) RIDFLD (WS-CARD-RID-ACCT-ID-X) KEYLENGTH (LENGTH OF WS-CARD-RID-ACCT-ID-X) INTO (ACCOUNT-RECORD) LENGTH (LENGTH OF ACCOUNT-RECORD) RESP (WS-RESP-CD) RESP2 (WS-REAS-CD) END-EXEC | COACCT01.cbl:396–404 |
| MOVE ACCT-ID TO WS-ACCT-ID | COACCT01.cbl:408 |
| MOVE ACCT-ACTIVE-STATUS TO WS-ACCT-ACTIVE-STATUS | COACCT01.cbl:409–410 |
| MOVE ACCT-CURR-BAL TO WS-ACCT-CURR-BAL | COACCT01.cbl:411 |
| MOVE ACCT-CREDIT-LIMIT TO WS-ACCT-CREDIT-LIMIT | COACCT01.cbl:412–413 |
| MOVE ACCT-CASH-CREDIT-LIMIT TO WS-ACCT-CASH-CREDIT-LIMIT | COACCT01.cbl:414–415 |
| MOVE ACCT-OPEN-DATE TO WS-ACCT-OPEN-DATE | COACCT01.cbl:416 |
| MOVE ACCT-EXPIRAION-DATE TO WS-ACCT-EXPIRAION-DATE | COACCT01.cbl:417–418 |
| MOVE ACCT-REISSUE-DATE TO WS-ACCT-REISSUE-DATE | COACCT01.cbl:419–420 |
| MOVE ACCT-CURR-CYC-CREDIT TO WS-ACCT-CURR-CYC-CREDIT | COACCT01.cbl:421–422 |
| MOVE ACCT-CURR-CYC-DEBIT TO WS-ACCT-CURR-CYC-DEBIT | COACCT01.cbl:423–424 |
| MOVE ACCT-GROUP-ID TO WS-ACCT-GROUP-ID | COACCT01.cbl:425 |
| MOVE WS-ACCT-RESPONSE TO REPLY-MESSAGE | COACCT01.cbl:426 |
| PERFORM 4100-PUT-REPLY | COACCT01.cbl:427 |
| STRING 'INVALID REQUEST PARAMETERS ' 'ACCT ID : 'WS-KEY DELIMITED BY SIZE INTO REPLY-MESSAGE | COACCT01.cbl:429–433 |
| PERFORM 4100-PUT-REPLY | COACCT01.cbl:435 |
| MOVE WS-RESP-CD TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:439 |
| MOVE WS-REAS-CD TO MQ-APPL-REASON-CODE | COACCT01.cbl:440 |
| MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:441 |
| MOVE 'ERROR WHILE READING ACCTFILE' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:442–443 |
| PERFORM 9000-ERROR | COACCT01.cbl:444 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:445 |
| STRING 'INVALID REQUEST PARAMETERS ' 'ACCT ID : 'WS-KEY 'FUNCTION : 'WS-FUNC DELIMITED BY SIZE INTO REPLY-MESSAGE | COACCT01.cbl:449–454 |
| PERFORM 4100-PUT-REPLY | COACCT01.cbl:456 |
4100-PUT-REPLY
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQMD-CODEDCHARSETID = MQCCSI-Q-MGR | COACCT01.cbl:473 |
| always | calc COMPUTE MQPMO-OPTIONS = MQPMO-SYNCPOINT + MQPMO-DEFAULT-CONTEXT + MQPMO-FAIL-IF-QUIESCING | COACCT01.cbl:475–477 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:490 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:491 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:493 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:494 |
| MOVE REPLY-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:495 |
| MOVE 'MQPUT ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:496 |
| PERFORM 9000-ERROR | COACCT01.cbl:497 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:498 |
9000-ERROR
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQMD-CODEDCHARSETID = MQCCSI-Q-MGR | COACCT01.cbl:510 |
| always | calc COMPUTE MQPMO-OPTIONS = MQPMO-SYNCPOINT + MQPMO-DEFAULT-CONTEXT + MQPMO-FAIL-IF-QUIESCING | COACCT01.cbl:512–514 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:527 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:528 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:530 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:531 |
| MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:532 |
| MOVE 'MQPUT ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:533 |
| DISPLAY MQ-ERR-DISPLAY | COACCT01.cbl:534 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:535 |
8000-TERMINATION
| When | Then | At |
|---|---|---|
| PERFORM 5000-CLOSE-INPUT-QUEUE | COACCT01.cbl:541 |
| PERFORM 5100-CLOSE-OUTPUT-QUEUE | COACCT01.cbl:544 |
| PERFORM 5200-CLOSE-ERROR-QUEUE | COACCT01.cbl:547 |
5000-CLOSE-INPUT-QUEUE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQ-OPTIONS = MQCO-NONE | COACCT01.cbl:555 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:565 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:566 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:568 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:569 |
| MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:570 |
| MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:571 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:572 |
5100-CLOSE-OUTPUT-QUEUE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQ-OPTIONS = MQCO-NONE | COACCT01.cbl:577 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:587 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:588 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:590 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:591 |
| MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:592 |
| MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:593 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:594 |
5200-CLOSE-ERROR-QUEUE
| When | Then | At |
|---|---|---|
| always | calc COMPUTE MQ-OPTIONS = MQCO-NONE | COACCT01.cbl:600 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:610 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:611 |
| MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE | COACCT01.cbl:613 |
| MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE | COACCT01.cbl:614 |
| MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAME | COACCT01.cbl:615 |
| MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGE | COACCT01.cbl:616 |
| PERFORM 9000-ERROR | COACCT01.cbl:617 |
| PERFORM 8000-TERMINATION | COACCT01.cbl:618 |