MFmainframe-rea
WS carddemo · 26f629ef

Business rules · 111 guarded actionsCOPAUS1C

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

CDEMO-PGM-REENTERmeans CDEMO-PGM-CONTEXT = 1COCOM01Y.cpy:31 via COPAUS1C.cbl:109
IMS-PSB-SCHDmeans WS-IMS-PSB-SCHD-FLG = 'Y'COPAUS1C.cbl:90
PA-FRAUD-CONFIRMEDmeans PA-AUTH-FRAUD = 'F'CIPAUDTY.cpy:51 via COPAUS1C.cbl:146
WS-FRD-UPDT-SUCCESSmeans WS-FRD-UPDATE-STATUS = 'S'COPAUS1C.cbl:102
AUTHS-EOFmeans WS-AUTHS-EOF = 'Y'COPAUS1C.cbl:42
ERR-FLG-OFFmeans WS-ERR-FLG = 'N'COPAUS1C.cbl:40
PA-FRAUD-REMOVEDmeans PA-AUTH-FRAUD = 'R'CIPAUDTY.cpy:52 via COPAUS1C.cbl:146
SEND-ERASE-YESmeans WS-SEND-ERASE-FLG = 'Y'COPAUS1C.cbl:45
STATUS-OKmeans IMS-RETURN-CODE = ' ' OR 'FW'COPAUS1C.cbl:80
SEGMENT-NOT-FOUNDmeans IMS-RETURN-CODE = 'GE'COPAUS1C.cbl:81
END-OF-DBmeans IMS-RETURN-CODE = 'GB'COPAUS1C.cbl:84
AUTHS-NOT-EOFmeans WS-AUTHS-EOF = 'N'COPAUS1C.cbl:43
PSB-SCHEDULED-MORE-THAN-ONCEmeans IMS-RETURN-CODE = 'TC'COPAUS1C.cbl:86
20 rules

MAIN-PARA

WhenThenAt
  1. EIBCALEN = 0
INITIALIZE CARDDEMO-COMMAREACOPAUS1C.cbl:166
  1. EIBCALEN = 0
MOVE WS-PGM-AUTH-SMRY TO CDEMO-TO-PROGRAMCOPAUS1C.cbl:168
  1. EIBCALEN = 0
PERFORM RETURN-TO-PREV-SCREENCOPAUS1C.cbl:169
  1. NOT (EIBCALEN = 0)
MOVE DFHCOMMAREA(1:EIBCALEN) TO CARDDEMO-COMMAREACOPAUS1C.cbl:171
  1. NOT (EIBCALEN = 0)
MOVE SPACES TO CDEMO-CPVD-FRAUD-DATACOPAUS1C.cbl:172
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
SET CDEMO-PGM-REENTER TO TRUECOPAUS1C.cbl:174
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
PERFORM PROCESS-ENTER-KEYCOPAUS1C.cbl:175
  1. NOT (EIBCALEN = 0)
  2. NOT CDEMO-PGM-REENTER
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:177
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
PERFORM RECEIVE-AUTHVIEW-SCREENCOPAUS1C.cbl:179
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHENTER
PERFORM PROCESS-ENTER-KEYCOPAUS1C.cbl:182
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHENTER
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:183
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
MOVE WS-PGM-AUTH-SMRY TO CDEMO-TO-PROGRAMCOPAUS1C.cbl:185
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF3
PERFORM RETURN-TO-PREV-SCREENCOPAUS1C.cbl:186
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF5
PERFORM MARK-AUTH-FRAUDCOPAUS1C.cbl:188
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF5
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:189
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF8
PERFORM PROCESS-PF8-KEYCOPAUS1C.cbl:191
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID = DFHPF8
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:192
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3; DFHPF5; DFHPF8]
PERFORM PROCESS-ENTER-KEYCOPAUS1C.cbl:194
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3; DFHPF5; DFHPF8]
MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGECOPAUS1C.cbl:196
  1. NOT (EIBCALEN = 0)
  2. CDEMO-PGM-REENTER
  3. EIBAID is none of [DFHENTER; DFHPF3; DFHPF5; DFHPF8]
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:197
6 rules

PROCESS-ENTER-KEY

WhenThenAt
  1. CDEMO-ACCT-ID IS NUMERIC AND CDEMO-CPVD-PAU-SELECTED NOT = SPACES AND LOW-VALUES
MOVE CDEMO-ACCT-ID TO WS-ACCT-IDCOPAUS1C.cbl:213
  1. CDEMO-ACCT-ID IS NUMERIC AND CDEMO-CPVD-PAU-SELECTED NOT = SPACES AND LOW-VALUES
MOVE CDEMO-CPVD-PAU-SELECTED TO WS-AUTH-KEYCOPAUS1C.cbl:214–215
  1. CDEMO-ACCT-ID IS NUMERIC AND CDEMO-CPVD-PAU-SELECTED NOT = SPACES AND LOW-VALUES
PERFORM READ-AUTH-RECORDCOPAUS1C.cbl:216
  1. CDEMO-ACCT-ID IS NUMERIC AND CDEMO-CPVD-PAU-SELECTED NOT = SPACES AND LOW-VALUES
  2. IMS-PSB-SCHD
SET IMS-PSB-NOT-SCHD TO TRUECOPAUS1C.cbl:219
  1. CDEMO-ACCT-ID IS NUMERIC AND CDEMO-CPVD-PAU-SELECTED NOT = SPACES AND LOW-VALUES
  2. IMS-PSB-SCHD
PERFORM TAKE-SYNCPOINTCOPAUS1C.cbl:220
  1. NOT (CDEMO-ACCT-ID IS NUMERIC AND CDEMO-CPVD-PAU-SELECTED NOT = SPACES AND LOW-VALUES)
SET ERR-FLG-ON TO TRUECOPAUS1C.cbl:224
8 rules

MARK-AUTH-FRAUD

WhenThenAt
  1. PA-FRAUD-CONFIRMED
SET PA-FRAUD-REMOVED TO TRUECOPAUS1C.cbl:237
  1. PA-FRAUD-CONFIRMED
SET WS-REMOVE-FRAUD TO TRUECOPAUS1C.cbl:238
  1. NOT (PA-FRAUD-CONFIRMED)
SET PA-FRAUD-CONFIRMED TO TRUECOPAUS1C.cbl:240
  1. NOT (PA-FRAUD-CONFIRMED)
SET WS-REPORT-FRAUD TO TRUECOPAUS1C.cbl:241
  1. EIBRESP = DFHRESP(NORMAL)
  2. WS-FRD-UPDT-SUCCESS
PERFORM UPDATE-AUTH-DETAILSCOPAUS1C.cbl:255
  1. EIBRESP = DFHRESP(NORMAL)
  2. NOT (WS-FRD-UPDT-SUCCESS)
MOVE WS-FRD-ACT-MSG TO WS-MESSAGECOPAUS1C.cbl:257
  1. EIBRESP = DFHRESP(NORMAL)
  2. NOT (WS-FRD-UPDT-SUCCESS)
PERFORM ROLL-BACKCOPAUS1C.cbl:258
  1. NOT (EIBRESP = DFHRESP(NORMAL))
PERFORM ROLL-BACKCOPAUS1C.cbl:261
6 rules

PROCESS-PF8-KEY

WhenThenAt
  1. IMS-PSB-SCHD
SET IMS-PSB-NOT-SCHD TO TRUECOPAUS1C.cbl:277
  1. IMS-PSB-SCHD
PERFORM TAKE-SYNCPOINTCOPAUS1C.cbl:278
  1. AUTHS-EOF
SET SEND-ERASE-NO TO TRUECOPAUS1C.cbl:282
  1. AUTHS-EOF
MOVE 'Already at the last Authorization...' TO WS-MESSAGECOPAUS1C.cbl:283–284
  1. NOT (AUTHS-EOF)
MOVE PA-AUTHORIZATION-KEY TO CDEMO-CPVD-PAU-SELECTEDCOPAUS1C.cbl:286
  1. NOT (AUTHS-EOF)
PERFORM POPULATE-AUTH-DETAILSCOPAUS1C.cbl:287
41 rules

POPULATE-AUTH-DETAILS

WhenThenAt
  1. ERR-FLG-OFF
MOVE PA-CARD-NUM TO CARDNUMOCOPAUS1C.cbl:295
  1. ERR-FLG-OFF
MOVE PA-AUTH-ORIG-DATE(1:2) TO WS-CURDATE-YYCOPAUS1C.cbl:297
  1. ERR-FLG-OFF
MOVE PA-AUTH-ORIG-DATE(3:2) TO WS-CURDATE-MMCOPAUS1C.cbl:298
  1. ERR-FLG-OFF
MOVE PA-AUTH-ORIG-DATE(5:2) TO WS-CURDATE-DDCOPAUS1C.cbl:299
  1. ERR-FLG-OFF
MOVE WS-CURDATE-MM-DD-YY TO WS-AUTH-DATECOPAUS1C.cbl:300
  1. ERR-FLG-OFF
MOVE WS-AUTH-DATE TO AUTHDTOCOPAUS1C.cbl:301
  1. ERR-FLG-OFF
MOVE PA-AUTH-ORIG-TIME(1:2) TO WS-AUTH-TIME(1:2)COPAUS1C.cbl:303
  1. ERR-FLG-OFF
MOVE PA-AUTH-ORIG-TIME(3:2) TO WS-AUTH-TIME(4:2)COPAUS1C.cbl:304
  1. ERR-FLG-OFF
MOVE PA-AUTH-ORIG-TIME(5:2) TO WS-AUTH-TIME(7:2)COPAUS1C.cbl:305
  1. ERR-FLG-OFF
MOVE WS-AUTH-TIME TO AUTHTMOCOPAUS1C.cbl:306
  1. ERR-FLG-OFF
MOVE PA-APPROVED-AMT TO WS-AUTH-AMTCOPAUS1C.cbl:308
  1. ERR-FLG-OFF
MOVE WS-AUTH-AMT TO AUTHAMTOCOPAUS1C.cbl:309
  1. ERR-FLG-OFF
  2. PA-AUTH-RESP-CODE = '00'
MOVE 'A' TO AUTHRSPOCOPAUS1C.cbl:312
  1. ERR-FLG-OFF
  2. PA-AUTH-RESP-CODE = '00'
MOVE DFHGREEN TO AUTHRSPCCOPAUS1C.cbl:313
  1. ERR-FLG-OFF
  2. NOT (PA-AUTH-RESP-CODE = '00')
MOVE 'D' TO AUTHRSPOCOPAUS1C.cbl:315
  1. ERR-FLG-OFF
  2. NOT (PA-AUTH-RESP-CODE = '00')
MOVE DFHRED TO AUTHRSPCCOPAUS1C.cbl:316
  1. ERR-FLG-OFF
  2. SEARCH AT END
MOVE '9999' TO AUTHRSNOCOPAUS1C.cbl:321
  1. ERR-FLG-OFF
  2. SEARCH AT END
MOVE '-' TO AUTHRSNO(5:1)COPAUS1C.cbl:322
  1. ERR-FLG-OFF
  2. SEARCH AT END
MOVE 'ERROR' TO AUTHRSNO(6:)COPAUS1C.cbl:323
  1. ERR-FLG-OFF
  2. SEARCH ALL WS-DECLINE-REASON-TAB: WHEN DECL-CODE(WS-DECL-RSN-IDX) = PA-AUTH-RESP-REASON
MOVE PA-AUTH-RESP-REASON TO AUTHRSNOCOPAUS1C.cbl:325
  1. ERR-FLG-OFF
  2. SEARCH ALL WS-DECLINE-REASON-TAB: WHEN DECL-CODE(WS-DECL-RSN-IDX) = PA-AUTH-RESP-REASON
MOVE '-' TO AUTHRSNO(5:1)COPAUS1C.cbl:326
  1. ERR-FLG-OFF
  2. SEARCH ALL WS-DECLINE-REASON-TAB: WHEN DECL-CODE(WS-DECL-RSN-IDX) = PA-AUTH-RESP-REASON
MOVE DECL-DESC(WS-DECL-RSN-IDX) TO AUTHRSNO(6:)COPAUS1C.cbl:327
  1. ERR-FLG-OFF
MOVE PA-PROCESSING-CODE TO AUTHCDOCOPAUS1C.cbl:331
  1. ERR-FLG-OFF
MOVE PA-POS-ENTRY-MODE TO POSEMDOCOPAUS1C.cbl:332
  1. ERR-FLG-OFF
MOVE PA-MESSAGE-SOURCE TO AUTHSRCOCOPAUS1C.cbl:333
  1. ERR-FLG-OFF
MOVE PA-MERCHANT-CATAGORY-CODE TO MCCCDOCOPAUS1C.cbl:334
  1. ERR-FLG-OFF
MOVE PA-CARD-EXPIRY-DATE(1:2) TO CRDEXPO(1:2)COPAUS1C.cbl:336
  1. ERR-FLG-OFF
MOVE '/' TO CRDEXPO(3:1)COPAUS1C.cbl:337
  1. ERR-FLG-OFF
MOVE PA-CARD-EXPIRY-DATE(3:2) TO CRDEXPO(4:2)COPAUS1C.cbl:338
  1. ERR-FLG-OFF
MOVE PA-AUTH-TYPE TO AUTHTYPOCOPAUS1C.cbl:340
  1. ERR-FLG-OFF
MOVE PA-TRANSACTION-ID TO TRNIDOCOPAUS1C.cbl:341
  1. ERR-FLG-OFF
MOVE PA-MATCH-STATUS TO AUTHMTCOCOPAUS1C.cbl:342
  1. ERR-FLG-OFF
  2. PA-FRAUD-CONFIRMED OR PA-FRAUD-REMOVED
MOVE PA-AUTH-FRAUD TO AUTHFRDO(1:1)COPAUS1C.cbl:345
  1. ERR-FLG-OFF
  2. PA-FRAUD-CONFIRMED OR PA-FRAUD-REMOVED
MOVE '-' TO AUTHFRDO(2:1)COPAUS1C.cbl:346
  1. ERR-FLG-OFF
  2. PA-FRAUD-CONFIRMED OR PA-FRAUD-REMOVED
MOVE PA-FRAUD-RPT-DATE TO AUTHFRDO(3:)COPAUS1C.cbl:347
  1. ERR-FLG-OFF
  2. NOT (PA-FRAUD-CONFIRMED OR PA-FRAUD-REMOVED)
MOVE '-' TO AUTHFRDOCOPAUS1C.cbl:349
  1. ERR-FLG-OFF
MOVE PA-MERCHANT-NAME TO MERNAMEOCOPAUS1C.cbl:352
  1. ERR-FLG-OFF
MOVE PA-MERCHANT-ID TO MERIDOCOPAUS1C.cbl:353
  1. ERR-FLG-OFF
MOVE PA-MERCHANT-CITY TO MERCITYOCOPAUS1C.cbl:354
  1. ERR-FLG-OFF
MOVE PA-MERCHANT-STATE TO MERSTOCOPAUS1C.cbl:355
  1. ERR-FLG-OFF
MOVE PA-MERCHANT-ZIP TO MERZIPOCOPAUS1C.cbl:356
2 rules

SEND-AUTHVIEW-SCREEN

WhenThenAt
  1. SEND-ERASE-YES
EXEC CICS SEND MAP('COPAU1A') MAPSET('COPAU01') FROM(COPAU1AO) ERASE CURSOR END-EXECCOPAUS1C.cbl:381–387
  1. NOT (SEND-ERASE-YES)
EXEC CICS SEND MAP('COPAU1A') MAPSET('COPAU01') FROM(COPAU1AO) CURSOR END-EXECCOPAUS1C.cbl:389–394
11 rules

READ-AUTH-RECORD

WhenThenAt
  1. STATUS-OK
SET AUTHS-NOT-EOF TO TRUECOPAUS1C.cbl:448
  1. SEGMENT-NOT-FOUND | END-OF-DB
SET AUTHS-EOF TO TRUECOPAUS1C.cbl:451
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
MOVE 'Y' TO WS-ERR-FLGCOPAUS1C.cbl:453
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
STRING ' System error while reading Auth Summary: Code:' IMS-RETURN-CODE DELIMITED BY SIZE INTO WS-MESSAGECOPAUS1C.cbl:455–459
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:461
  1. AUTHS-NOT-EOF
MOVE DIBSTAT TO IMS-RETURN-CODECOPAUS1C.cbl:471
  1. AUTHS-NOT-EOF
  2. STATUS-OK
SET AUTHS-NOT-EOF TO TRUECOPAUS1C.cbl:474
  1. AUTHS-NOT-EOF
  2. SEGMENT-NOT-FOUND | END-OF-DB
SET AUTHS-EOF TO TRUECOPAUS1C.cbl:477
  1. AUTHS-NOT-EOF
  2. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
MOVE 'Y' TO WS-ERR-FLGCOPAUS1C.cbl:479
  1. AUTHS-NOT-EOF
  2. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
STRING ' System error while reading Auth Details: Code:' IMS-RETURN-CODE DELIMITED BY SIZE INTO WS-MESSAGECOPAUS1C.cbl:481–485
  1. AUTHS-NOT-EOF
  2. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:487
5 rules

READ-NEXT-AUTH-RECORD

WhenThenAt
  1. STATUS-OK
SET AUTHS-NOT-EOF TO TRUECOPAUS1C.cbl:503
  1. SEGMENT-NOT-FOUND | END-OF-DB
SET AUTHS-EOF TO TRUECOPAUS1C.cbl:506
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
MOVE 'Y' TO WS-ERR-FLGCOPAUS1C.cbl:508
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
STRING ' System error while reading next Auth: Code:' IMS-RETURN-CODE DELIMITED BY SIZE INTO WS-MESSAGECOPAUS1C.cbl:510–514
  1. TRUE is none of [STATUS-OK; SEGMENT-NOT-FOUND; END-OF-DB]
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:516
7 rules

UPDATE-AUTH-DETAILS

WhenThenAt
  1. STATUS-OK
PERFORM TAKE-SYNCPOINTCOPAUS1C.cbl:533
  1. STATUS-OK
  2. PA-FRAUD-REMOVED
MOVE 'AUTH FRAUD REMOVED...' TO WS-MESSAGECOPAUS1C.cbl:535
  1. STATUS-OK
  2. NOT (PA-FRAUD-REMOVED)
MOVE 'AUTH MARKED FRAUD...' TO WS-MESSAGECOPAUS1C.cbl:537
  1. TRUE is none of [STATUS-OK]
PERFORM ROLL-BACKCOPAUS1C.cbl:540
  1. TRUE is none of [STATUS-OK]
MOVE 'Y' TO WS-ERR-FLGCOPAUS1C.cbl:542
  1. TRUE is none of [STATUS-OK]
STRING ' System error while FRAUD Tagging, ROLLBACK||' IMS-RETURN-CODE DELIMITED BY SIZE INTO WS-MESSAGECOPAUS1C.cbl:544–548
  1. TRUE is none of [STATUS-OK]
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:550
5 rules

SCHEDULE-PSB

WhenThenAt
  1. PSB-SCHEDULED-MORE-THAN-ONCE
MOVE DIBSTAT TO IMS-RETURN-CODECOPAUS1C.cbl:588
  1. STATUS-OK
SET IMS-PSB-SCHD TO TRUECOPAUS1C.cbl:591
  1. NOT (STATUS-OK)
MOVE 'Y' TO WS-ERR-FLGCOPAUS1C.cbl:593
  1. NOT (STATUS-OK)
STRING ' System error while scheduling PSB: Code:' IMS-RETURN-CODE DELIMITED BY SIZE INTO WS-MESSAGECOPAUS1C.cbl:595–599
  1. NOT (STATUS-OK)
PERFORM SEND-AUTHVIEW-SCREENCOPAUS1C.cbl:601