Listing Accounts (BNK1CCA)
The BNK1CCA
The BNK1CCA
Here is a high level diagram of the program:
Keypress Event Handling and Return Setup
Initial Check
First, the code checks if it is the first time through by evaluating if EIBCALEN
LOW-VALUE
BNK1ACCO
CUSTNOL
SEND-ERASE
SEND-MAP
EVALUATE TRUE
*
* Is it the first time through? If so, send the map
* with erased (empty) data fields.
*
WHEN EIBCALEN = ZERO
MOVE LOW-VALUE TO BNK1ACCO
MOVE -1 TO CUSTNOL
SET SEND-ERASE TO TRUE
PERFORM SEND-MAP
Handling PA Key Presses
Moving to the next condition, if a PA key (DFHPA1
DFHPA2
DFHPA3
*
* If a PA key is pressed, just carry on
*
WHEN EIBAID = DFHPA1 OR DFHPA2 OR DFHPA3
CONTINUE
Handling PF3 Key Press
Next, if the PF3 key (DFHPF3
*
* When Pf3 is pressed, return to the main menu
*
WHEN EIBAID = DFHPF3
EXEC CICS RETURN
TRANSID('OMEN')
IMMEDIATE
RESP(WS-CICS-RESP)
RESP2(WS-CICS-RESP2)
END-EXEC
Handling AID or PF12 Key Press
Then, if the AID key (DFHAID
DFHPF12
SEND-TERMINATION-MSG
*
* If the aid or Pf12 is pressed, then send a termination
* message.
*
WHEN EIBAID = DFHAID OR DFHPF12
PERFORM SEND-TERMINATION-MSG
EXEC CICS
RETURN
END-EXEC
Handling CLEAR Key Press
When the CLEAR key (DFHCLEAR
* When CLEAR is pressed
*
WHEN EIBAID = DFHCLEAR
EXEC CICS SEND CONTROL
ERASE
FREEKB
END-EXEC
EXEC CICS RETURN
END-EXEC
Handling ENTER Key Press
When the ENTER key (DFHENTER
PROCESS-MAP
* When enter is presseed then process the content
*
WHEN EIBAID = DFHENTER
PERFORM PROCESS-MAP
Handling Other Key Presses
For any other key presses, the code moves LOW-VALUES
BNK1ACCO
CUSTNOL
SEND-DATAONLY-ALARM
SEND-MAP
* When anything else happens, send the invalid key message
*
WHEN OTHER
MOVE LOW-VALUES TO BNK1ACCO
MOVE 'Invalid key pressed.' TO MESSAGEO
MOVE -1 TO CUSTNOL
SET SEND-DATAONLY-ALARM TO TRUE
PERFORM SEND-MAP
Final Return
Finally, the code executes a CICS RETURN command with the transaction ID 'OCCA', passing the communication area WS-COMM-AREA
EXEC CICS
RETURN TRANSID('OCCA')
COMMAREA(WS-COMM-AREA)
LENGTH(248)
RESP(WS-CICS-RESP)
RESP2(WS-CICS-RESP2)
END-EXEC.
Error Handling and Abend Information Preparation
Checking CICS Response
First, the code checks if the CICS response (WS-CICS-RESP
IF WS-CICS-RESP NOT = DFHRESP(NORMAL)
Initializing ABNDINFO-REC
ABNDINFO-REC
Next, the ABNDINFO-REC
INITIALIZE ABNDINFO-REC
Moving Response Codes
Then, the response codes EIBRESP
EIBRESP2
ABND-RESPCODE
ABND-RESP2CODE
MOVE EIBRESP TO ABND-RESPCODE
MOVE EIBRESP2 TO ABND-RESP2CODE
Assigning APPLID
The application ID (APPLID
ABND-APPLID
EXEC CICS ASSIGN APPLID(ABND-APPLID)
END-EXEC
Moving Task and Transaction IDs
The task number (EIBTASKN
EIBTRNID
ABND-TASKNO-KEY
ABND-TRANID
MOVE EIBTASKN TO ABND-TASKNO-KEY
MOVE EIBTRNID TO ABND-TRANID
Populating Time and Date
The POPULATE-TIME-DATE
PERFORM POPULATE-TIME-DATE
POPULATE-TIME-DATE
Function
POPULATE-TIME-DATE
The POPULATE-TIME-DATE
ASKTIME
FORMATTIME
WS-ORIG-DATE
WS-TIME-NOW
POPULATE-TIME-DATE SECTION.
PTD010.
EXEC CICS ASKTIME
ABSTIME(WS-U-TIME)
END-EXEC.
EXEC CICS FORMATTIME
ABSTIME(WS-U-TIME)
DDMMYYYY(WS-ORIG-DATE)
TIME(WS-TIME-NOW)
DATESEP
END-EXEC.
PTD999.
EXIT.
Moving Date and Time
The original date (WS-ORIG-DATE
WS-TIME-NOW-GRP-HH
WS-TIME-NOW-GRP-MM
ABND-DATE
ABND-TIME
MOVE WS-ORIG-DATE TO ABND-DATE
STRING WS-TIME-NOW-GRP-HH DELIMITED BY SIZE,
':' DELIMITED BY SIZE,
WS-TIME-NOW-GRP-MM DELIMITED BY SIZE,
':' DELIMITED BY SIZE,
WS-TIME-NOW-GRP-MM DELIMITED BY SIZE
INTO ABND-TIME
Moving Unique Time and Code
The unique time (WS-U-TIME
ABND-UTIME-KEY
ABND-CODE
MOVE WS-U-TIME TO ABND-UTIME-KEY
MOVE 'HBNK' TO ABND-CODE
Assigning Program
The program name is assigned to ABND-PROGRAM
EXEC CICS ASSIGN PROGRAM(ABND-PROGRAM)
END-EXEC
Moving SQL Code
The SQL code is set to zero (ZEROS
MOVE ZEROS TO ABND-SQLCODE
Formatting Error Message
An error message is formatted and moved to ABND-FREEFORM
STRING 'A010 - RETURN TRANSID(OCCA) FAIL'
DELIMITED BY SIZE,
'EIBRESP=' DELIMITED BY SIZE,
ABND-RESPCODE DELIMITED BY SIZE,
' RESP2=' DELIMITED BY SIZE,
ABND-RESP2CODE DELIMITED BY SIZE
INTO ABND-FREEFORM
Linking to Abend Handler
The WS-ABEND-PGM
ABNDINFO-REC
EXEC CICS LINK PROGRAM(WS-ABEND-PGM)
COMMAREA(ABNDINFO-REC)
END-EXEC
Initializing Fail Info
The WS-FAIL-INFO
INITIALIZE WS-FAIL-INFO
Moving Failure Message
A failure message is moved to WS-CICS-FAIL-MSG
MOVE 'BNK1CCA - A010 - RETURN TRANSID(OCCA) FAIL' TO
WS-CICS-FAIL-MSG
This is an auto-generated document by Swimm 🌊 and has not yet been verified by a human