MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 110 guarded actionsCODATE01

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

REPLY-QUEUE-OPENmeans WS-REPLY-QUEUE-STS = 'Y'CODATE01.cbl:23
RESP-QUEUE-OPENmeans WS-RESP-QUEUE-STS = 'Y'CODATE01.cbl:17
ERR-QUEUE-OPENmeans WS-ERR-QUEUE-STS = 'Y'CODATE01.cbl:20
8 rules

1000-CONTROL

WhenThenAt
  1. WS-CICS-RESP1-CD = DFHRESP(NORMAL)
MOVE MQTM-QNAME TO INPUT-QUEUE-NAMECODATE01.cbl:146
  1. WS-CICS-RESP1-CD = DFHRESP(NORMAL)
MOVE 'CARD.DEMO.REPLY.DATE' TO REPLY-QUEUE-NAMECODATE01.cbl:147
  1. NOT (WS-CICS-RESP1-CD = DFHRESP(NORMAL))
MOVE 'CICS RETRIEVE' TO MQ-ERROR-PARACODATE01.cbl:149
  1. NOT (WS-CICS-RESP1-CD = DFHRESP(NORMAL))
MOVE WS-CICS-RESP1-CD TO WS-CICS-RESP1-CD-DCODATE01.cbl:150
  1. NOT (WS-CICS-RESP1-CD = DFHRESP(NORMAL))
MOVE WS-CICS-RESP2-CD TO WS-CICS-RESP2-CDCODATE01.cbl:151
  1. NOT (WS-CICS-RESP1-CD = DFHRESP(NORMAL))
STRING 'RESP: ' WS-CICS-RESP1-CD-D WS-CICS-RESP2-CD-D 'END' DELIMITED BY SIZE INTO MQ-APPL-RETURN-MESSAGECODATE01.cbl:152–154
  1. NOT (WS-CICS-RESP1-CD = DFHRESP(NORMAL))
PERFORM 9000-ERRORCODATE01.cbl:157
  1. NOT (WS-CICS-RESP1-CD = DFHRESP(NORMAL))
PERFORM 8000-TERMINATIONCODATE01.cbl:158
11 rules

2300-OPEN-INPUT-QUEUE

WhenThenAt
alwayscalc COMPUTE MQ-OPTIONS = MQOO-INPUT-SHARED + MQOO-SAVE-ALL-CONTEXT + MQOO-FAIL-IF-QUIESCINGCODATE01.cbl:178–180
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:191
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:192
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-HOBJ TO INPUT-QUEUE-HANDLECODATE01.cbl:193
  1. MQ-CONDITION-CODE = MQCC-OK
SET REPLY-QUEUE-OPEN TO TRUECODATE01.cbl:194
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:196
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:197
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:198
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'INP MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:199
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 9000-ERRORCODATE01.cbl:200
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:201
11 rules

2400-OPEN-OUTPUT-QUEUE

WhenThenAt
alwayscalc COMPUTE MQ-OPTIONS = MQOO-OUTPUT + MQOO-PASS-ALL-CONTEXT + MQOO-FAIL-IF-QUIESCINGCODATE01.cbl:212–214
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:225
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:226
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-HOBJ TO OUTPUT-QUEUE-HANDLECODATE01.cbl:227
  1. MQ-CONDITION-CODE = MQCC-OK
SET RESP-QUEUE-OPEN TO TRUECODATE01.cbl:228
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:230
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:231
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE REPLY-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:232
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'OUT MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:233
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 9000-ERRORCODATE01.cbl:234
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:235
12 rules

2100-OPEN-ERROR-QUEUE

WhenThenAt
always MOVE 'CARD.DEMO.ERROR' TO ERROR-QUEUE-NAMECODATE01.cbl:243
alwayscalc COMPUTE MQ-OPTIONS = MQOO-OUTPUT + MQOO-PASS-ALL-CONTEXT + MQOO-FAIL-IF-QUIESCINGCODATE01.cbl:247–249
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:260
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:261
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-HOBJ TO ERROR-QUEUE-HANDLECODATE01.cbl:262
  1. MQ-CONDITION-CODE = MQCC-OK
SET ERR-QUEUE-OPEN TO TRUECODATE01.cbl:263
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:265
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:266
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:267
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'ERR MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:268
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
DISPLAY MQ-ERR-DISPLAYCODATE01.cbl:269
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:270
20 rules

3000-GET-REQUEST

WhenThenAt
alwayscalc COMPUTE MQGMO-OPTIONS = MQGMO-SYNCPOINT + MQGMO-FAIL-IF-QUIESCING + MQGMO-CONVERT + MQGMO-WAITCODATE01.cbl:296–299
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQMD-MSGID TO MQ-MSG-IDCODATE01.cbl:313
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQMD-CORRELID TO MQ-CORRELIDCODATE01.cbl:314
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQMD-REPLYTOQ TO MQ-QUEUE-REPLYCODATE01.cbl:315
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:316
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:317
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-BUFFER TO REQUEST-MESSAGECODATE01.cbl:318
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CORRELID TO SAVE-CORELIDCODATE01.cbl:319
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-QUEUE-REPLY TO SAVE-REPLY2QCODATE01.cbl:320
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-MSG-ID TO SAVE-MSGIDCODATE01.cbl:321
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE REQUEST-MESSAGE TO REQUEST-MSG-COPYCODATE01.cbl:322
  1. MQ-CONDITION-CODE = MQCC-OK
PERFORM 4000-PROCESS-REQUEST-REPLYCODATE01.cbl:323
  1. MQ-CONDITION-CODE = MQCC-OK
calc ADD 1 TO MQ-MSG-COUNTCODATE01.cbl:324
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE
SET NO-MORE-MSGS TO TRUECODATE01.cbl:327
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. NOT (MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE)
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:330
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. NOT (MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE)
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:331
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. NOT (MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE)
MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:332
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. NOT (MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE)
MOVE 'INP MQGET ERR:' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:333
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. NOT (MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE)
PERFORM 9000-ERRORCODATE01.cbl:334
  1. NOT (MQ-CONDITION-CODE = MQCC-OK)
  2. NOT (MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE)
PERFORM 8000-TERMINATIONCODATE01.cbl:335
10 rules

4100-PUT-REPLY

WhenThenAt
alwayscalc COMPUTE MQMD-CODEDCHARSETID = MQCCSI-Q-MGRCODATE01.cbl:377
alwayscalc COMPUTE MQPMO-OPTIONS = MQPMO-SYNCPOINT + MQPMO-DEFAULT-CONTEXT + MQPMO-FAIL-IF-QUIESCINGCODATE01.cbl:379–381
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:394
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:395
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:397
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:398
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE REPLY-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:399
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'MQPUT ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:400
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 9000-ERRORCODATE01.cbl:401
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:402
10 rules

9000-ERROR

WhenThenAt
alwayscalc COMPUTE MQMD-CODEDCHARSETID = MQCCSI-Q-MGRCODATE01.cbl:414
alwayscalc COMPUTE MQPMO-OPTIONS = MQPMO-SYNCPOINT + MQPMO-DEFAULT-CONTEXT + MQPMO-FAIL-IF-QUIESCINGCODATE01.cbl:416–418
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:431
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:432
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:434
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:435
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:436
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'MQPUT ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:437
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
DISPLAY MQ-ERR-DISPLAYCODATE01.cbl:438
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:439
3 rules

8000-TERMINATION

WhenThenAt
  1. REPLY-QUEUE-OPEN
PERFORM 5000-CLOSE-INPUT-QUEUECODATE01.cbl:445
  1. RESP-QUEUE-OPEN
PERFORM 5100-CLOSE-OUTPUT-QUEUECODATE01.cbl:448
  1. ERR-QUEUE-OPEN
PERFORM 5200-CLOSE-ERROR-QUEUECODATE01.cbl:451
8 rules

5000-CLOSE-INPUT-QUEUE

WhenThenAt
alwayscalc COMPUTE MQ-OPTIONS = MQCO-NONECODATE01.cbl:459
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:469
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:470
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:472
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:473
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:474
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:475
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:476
8 rules

5100-CLOSE-OUTPUT-QUEUE

WhenThenAt
alwayscalc COMPUTE MQ-OPTIONS = MQCO-NONECODATE01.cbl:481
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:491
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:492
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:494
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:495
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:496
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:497
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:498
9 rules

5200-CLOSE-ERROR-QUEUE

WhenThenAt
alwayscalc COMPUTE MQ-OPTIONS = MQCO-NONECODATE01.cbl:504
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:514
  1. MQ-CONDITION-CODE = MQCC-OK
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:515
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODECODATE01.cbl:517
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODECODATE01.cbl:518
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAMECODATE01.cbl:519
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGECODATE01.cbl:520
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 9000-ERRORCODATE01.cbl:521
  1. MQ-CONDITION-CODE is none of [MQCC-OK]
PERFORM 8000-TERMINATIONCODATE01.cbl:522