Credit Score Generation and Update (CRDTAGY4)
The CRDTAGY4
The flow starts with setting up container and channel names, followed by generating a random delay. If any errors occur, they are logged with accurate timestamps. The program then retrieves the container, generates a new credit score, updates the container with this score, and checks the response status. If any errors are detected, they are handled gracefully.
Here is a high level diagram of the program:
Setup and delay generation
Handling Delay and Error Management
First, the PREMIERE
EXEC CICS DELAY
POPULATE-TIME-DATE
PREMIERE SECTION.
A010.
*
* Generate a random number of seconds between 0 & 3.
* This is the delay amount in seconds.
*
MOVE 'CIPD ' TO WS-CONTAINER-NAME.
MOVE 'CIPCREDCHANN ' TO WS-CHANNEL-NAME.
MOVE EIBTASKN TO WS-SEED.
COMPUTE WS-DELAY-AMT = ((3 - 1)
* FUNCTION RANDOM(WS-SEED)) + 1.
EXEC CICS DELAY
FOR SECONDS(WS-DELAY-AMT)
RESP(WS-CICS-RESP)
RESP2(WS-CICS-RESP2)
END-EXEC.
IF WS-CICS-RESP NOT = DFHRESP(NORMAL)
POPULATE-TIME-DATE
POPULATE-TIME-DATE
The POPULATE-TIME-DATE
EXEC CICS ASKTIME
EXEC CICS FORMATTIME
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.
Container retrieval and error handling
Handling Error Conditions
First, the code checks if the response from the GET CONTAINER
GET-ME-OUT-OF-HERE
IF WS-CICS-RESP NOT = DFHRESP(NORMAL)
DISPLAY 'CRDTAGY4 - UNABLE TO GET CONTAINER. RESP='
WS-CICS-RESP ', RESP2=' WS-CICS-RESP2
DISPLAY 'CONTAINER=' WS-CONTAINER-NAME ' CHANNEL='
WS-CHANNEL-NAME ' FLENGTH='
WS-CONTAINER-LEN
PERFORM GET-ME-OUT-OF-HERE
END-IF.
GET-ME-OUT-OF-HERE
GET-ME-OUT-OF-HERE
The GET-ME-OUT-OF-HERE
GET-ME-OUT-OF-HERE SECTION.
GMOFH010.
EXEC CICS RETURN
END-EXEC.
GMOFH999.
EXIT.
Interim Summary
So far, we saw how the program handles delay and error management, including setting up container and channel names, generating a random delay, and logging errors with accurate timestamps. We also covered the retrieval of containers and the graceful handling of errors using the GET-ME-OUT-OF-HERE
Credit score generation and container update
Generate Credit Score
First, we generate a new credit score between 1 and 999 using the RANDOM
WS-NEW-CREDSCORE
COMPUTE WS-NEW-CREDSCORE = ((999 - 1)
* FUNCTION RANDOM) + 1.
Update Container with Credit Score
Next, we move the new credit score to WS-CONT-IN-CREDIT-SCORE
PUT CONTAINER
MOVE WS-NEW-CREDSCORE TO WS-CONT-IN-CREDIT-SCORE.
*
* Now PUT the data back into a container
*
COMPUTE WS-CONTAINER-LEN = LENGTH OF WS-CONT-IN.
EXEC CICS PUT CONTAINER(WS-CONTAINER-NAME)
FROM(WS-CONT-IN)
FLENGTH(WS-CONTAINER-LEN)
CHANNEL(WS-CHANNEL-NAME)
RESP(WS-CICS-RESP)
RESP2(WS-CICS-RESP2)
Check Response Status
Then, we check the response status using WS-CICS-RESP
GET-ME-OUT-OF-HERE
IF WS-CICS-RESP NOT = DFHRESP(NORMAL)
DISPLAY 'CRDTAGY4- UNABLE TO PUT CONTAINER. RESP='
WS-CICS-RESP ', RESP2=' WS-CICS-RESP2
DISPLAY 'CONTAINER=' WS-CONTAINER-NAME
' CHANNEL=' WS-CHANNEL-NAME ' FLENGTH='
WS-CONTAINER-LEN
PERFORM GET-ME-OUT-OF-HERE
END-IF.
Handle Error if Any
Finally, the GET-ME-OUT-OF-HERE
PERFORM GET-ME-OUT-OF-HERE.
This is an auto-generated document by Swimm 🌊 and has not yet been verified by a human