****************************************************************** * Program : COTRN01C.CBL * Application : CardDemo * Type : CICS COBOL Program * Function : View a Transaction from TRANSACT file ****************************************************************** * Copyright Amazon.com, Inc. or its affiliates. * All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific * language governing permissions and limitations under the License ****************************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. COTRN01C. AUTHOR. AWS. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. *----------------------------------------------------------------* * WORKING STORAGE SECTION *----------------------------------------------------------------* WORKING-STORAGE SECTION. 01 WS-VARIABLES. 05 WS-PGMNAME PIC X(08) VALUE 'COTRN01C'. 05 WS-TRANID PIC X(04) VALUE 'CT01'. 05 WS-MESSAGE PIC X(80) VALUE SPACES. 05 WS-TRANSACT-FILE PIC X(08) VALUE 'TRANSACT'. 05 WS-ERR-FLG PIC X(01) VALUE 'N'. 88 ERR-FLG-ON VALUE 'Y'. 88 ERR-FLG-OFF VALUE 'N'. 05 WS-RESP-CD PIC S9(09) COMP VALUE ZEROS. 05 WS-REAS-CD PIC S9(09) COMP VALUE ZEROS. 05 WS-USR-MODIFIED PIC X(01) VALUE 'N'. 88 USR-MODIFIED-YES VALUE 'Y'. 88 USR-MODIFIED-NO VALUE 'N'. 05 WS-TRAN-AMT PIC +99999999.99. 05 WS-TRAN-DATE PIC X(08) VALUE '00/00/00'. COPY COCOM01Y. 05 CDEMO-CT01-INFO. 10 CDEMO-CT01-TRNID-FIRST PIC X(16). 10 CDEMO-CT01-TRNID-LAST PIC X(16). 10 CDEMO-CT01-PAGE-NUM PIC 9(08). 10 CDEMO-CT01-NEXT-PAGE-FLG PIC X(01) VALUE 'N'. 88 NEXT-PAGE-YES VALUE 'Y'. 88 NEXT-PAGE-NO VALUE 'N'. 10 CDEMO-CT01-TRN-SEL-FLG PIC X(01). 10 CDEMO-CT01-TRN-SELECTED PIC X(16). COPY COTRN01. COPY COTTL01Y. COPY CSDAT01Y. COPY CSMSG01Y. COPY CVTRA05Y. COPY DFHAID. COPY DFHBMSCA. *----------------------------------------------------------------* * LINKAGE SECTION *----------------------------------------------------------------* LINKAGE SECTION. 01 DFHCOMMAREA. 05 LK-COMMAREA PIC X(01) OCCURS 1 TO 32767 TIMES DEPENDING ON EIBCALEN. *----------------------------------------------------------------* * PROCEDURE DIVISION *----------------------------------------------------------------* PROCEDURE DIVISION. MAIN-PARA. SET ERR-FLG-OFF TO TRUE SET USR-MODIFIED-NO TO TRUE MOVE SPACES TO WS-MESSAGE ERRMSGO OF COTRN1AO IF EIBCALEN = 0 MOVE 'COSGN00C' TO CDEMO-TO-PROGRAM PERFORM RETURN-TO-PREV-SCREEN ELSE MOVE DFHCOMMAREA(1:EIBCALEN) TO CARDDEMO-COMMAREA IF NOT CDEMO-PGM-REENTER SET CDEMO-PGM-REENTER TO TRUE MOVE LOW-VALUES TO COTRN1AO MOVE -1 TO TRNIDINL OF COTRN1AI IF CDEMO-CT01-TRN-SELECTED NOT = SPACES AND LOW-VALUES MOVE CDEMO-CT01-TRN-SELECTED TO TRNIDINI OF COTRN1AI PERFORM PROCESS-ENTER-KEY END-IF PERFORM SEND-TRNVIEW-SCREEN ELSE PERFORM RECEIVE-TRNVIEW-SCREEN EVALUATE EIBAID WHEN DFHENTER PERFORM PROCESS-ENTER-KEY WHEN DFHPF3 IF CDEMO-FROM-PROGRAM = SPACES OR LOW-VALUES MOVE 'COMEN01C' TO CDEMO-TO-PROGRAM ELSE MOVE CDEMO-FROM-PROGRAM TO CDEMO-TO-PROGRAM END-IF PERFORM RETURN-TO-PREV-SCREEN WHEN DFHPF4 PERFORM CLEAR-CURRENT-SCREEN WHEN DFHPF5 MOVE 'COTRN00C' TO CDEMO-TO-PROGRAM PERFORM RETURN-TO-PREV-SCREEN WHEN OTHER MOVE 'Y' TO WS-ERR-FLG MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGE PERFORM SEND-TRNVIEW-SCREEN END-EVALUATE END-IF END-IF EXEC CICS RETURN TRANSID (WS-TRANID) COMMAREA (CARDDEMO-COMMAREA) END-EXEC. *----------------------------------------------------------------* * PROCESS-ENTER-KEY *----------------------------------------------------------------* PROCESS-ENTER-KEY. EVALUATE TRUE WHEN TRNIDINI OF COTRN1AI = SPACES OR LOW-VALUES MOVE 'Y' TO WS-ERR-FLG MOVE 'Tran ID can NOT be empty...' TO WS-MESSAGE MOVE -1 TO TRNIDINL OF COTRN1AI PERFORM SEND-TRNVIEW-SCREEN WHEN OTHER MOVE -1 TO TRNIDINL OF COTRN1AI CONTINUE END-EVALUATE IF NOT ERR-FLG-ON MOVE SPACES TO TRNIDI OF COTRN1AI CARDNUMI OF COTRN1AI TTYPCDI OF COTRN1AI TCATCDI OF COTRN1AI TRNSRCI OF COTRN1AI TRNAMTI OF COTRN1AI TDESCI OF COTRN1AI TORIGDTI OF COTRN1AI TPROCDTI OF COTRN1AI MIDI OF COTRN1AI MNAMEI OF COTRN1AI MCITYI OF COTRN1AI MZIPI OF COTRN1AI MOVE TRNIDINI OF COTRN1AI TO TRAN-ID PERFORM READ-TRANSACT-FILE END-IF. IF NOT ERR-FLG-ON MOVE TRAN-AMT TO WS-TRAN-AMT MOVE TRAN-ID TO TRNIDI OF COTRN1AI MOVE TRAN-CARD-NUM TO CARDNUMI OF COTRN1AI MOVE TRAN-TYPE-CD TO TTYPCDI OF COTRN1AI MOVE TRAN-CAT-CD TO TCATCDI OF COTRN1AI MOVE TRAN-SOURCE TO TRNSRCI OF COTRN1AI MOVE WS-TRAN-AMT TO TRNAMTI OF COTRN1AI MOVE TRAN-DESC TO TDESCI OF COTRN1AI MOVE TRAN-ORIG-TS TO TORIGDTI OF COTRN1AI MOVE TRAN-PROC-TS TO TPROCDTI OF COTRN1AI MOVE TRAN-MERCHANT-ID TO MIDI OF COTRN1AI MOVE TRAN-MERCHANT-NAME TO MNAMEI OF COTRN1AI MOVE TRAN-MERCHANT-CITY TO MCITYI OF COTRN1AI MOVE TRAN-MERCHANT-ZIP TO MZIPI OF COTRN1AI PERFORM SEND-TRNVIEW-SCREEN END-IF. *----------------------------------------------------------------* * RETURN-TO-PREV-SCREEN *----------------------------------------------------------------* RETURN-TO-PREV-SCREEN. IF CDEMO-TO-PROGRAM = LOW-VALUES OR SPACES MOVE 'COSGN00C' TO CDEMO-TO-PROGRAM END-IF MOVE WS-TRANID TO CDEMO-FROM-TRANID MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAM MOVE ZEROS TO CDEMO-PGM-CONTEXT EXEC CICS XCTL PROGRAM(CDEMO-TO-PROGRAM) COMMAREA(CARDDEMO-COMMAREA) END-EXEC. *----------------------------------------------------------------* * SEND-TRNVIEW-SCREEN *----------------------------------------------------------------* SEND-TRNVIEW-SCREEN. PERFORM POPULATE-HEADER-INFO MOVE WS-MESSAGE TO ERRMSGO OF COTRN1AO EXEC CICS SEND MAP('COTRN1A') MAPSET('COTRN01') FROM(COTRN1AO) ERASE CURSOR END-EXEC. *----------------------------------------------------------------* * RECEIVE-TRNVIEW-SCREEN *----------------------------------------------------------------* RECEIVE-TRNVIEW-SCREEN. EXEC CICS RECEIVE MAP('COTRN1A') MAPSET('COTRN01') INTO(COTRN1AI) RESP(WS-RESP-CD) RESP2(WS-REAS-CD) END-EXEC. *----------------------------------------------------------------* * POPULATE-HEADER-INFO *----------------------------------------------------------------* POPULATE-HEADER-INFO. MOVE FUNCTION CURRENT-DATE TO WS-CURDATE-DATA MOVE CCDA-TITLE01 TO TITLE01O OF COTRN1AO MOVE CCDA-TITLE02 TO TITLE02O OF COTRN1AO MOVE WS-TRANID TO TRNNAMEO OF COTRN1AO MOVE WS-PGMNAME TO PGMNAMEO OF COTRN1AO MOVE WS-CURDATE-MONTH TO WS-CURDATE-MM MOVE WS-CURDATE-DAY TO WS-CURDATE-DD MOVE WS-CURDATE-YEAR(3:2) TO WS-CURDATE-YY MOVE WS-CURDATE-MM-DD-YY TO CURDATEO OF COTRN1AO MOVE WS-CURTIME-HOURS TO WS-CURTIME-HH MOVE WS-CURTIME-MINUTE TO WS-CURTIME-MM MOVE WS-CURTIME-SECOND TO WS-CURTIME-SS MOVE WS-CURTIME-HH-MM-SS TO CURTIMEO OF COTRN1AO. *----------------------------------------------------------------* * READ-TRANSACT-FILE *----------------------------------------------------------------* READ-TRANSACT-FILE. EXEC CICS READ DATASET (WS-TRANSACT-FILE) INTO (TRAN-RECORD) LENGTH (LENGTH OF TRAN-RECORD) RIDFLD (TRAN-ID) KEYLENGTH (LENGTH OF TRAN-ID) UPDATE RESP (WS-RESP-CD) RESP2 (WS-REAS-CD) END-EXEC. EVALUATE WS-RESP-CD WHEN DFHRESP(NORMAL) CONTINUE WHEN DFHRESP(NOTFND) MOVE 'Y' TO WS-ERR-FLG MOVE 'Transaction ID NOT found...' TO WS-MESSAGE MOVE -1 TO TRNIDINL OF COTRN1AI PERFORM SEND-TRNVIEW-SCREEN WHEN OTHER DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD MOVE 'Y' TO WS-ERR-FLG MOVE 'Unable to lookup Transaction...' TO WS-MESSAGE MOVE -1 TO TRNIDINL OF COTRN1AI PERFORM SEND-TRNVIEW-SCREEN END-EVALUATE. *----------------------------------------------------------------* * CLEAR-CURRENT-SCREEN *----------------------------------------------------------------* CLEAR-CURRENT-SCREEN. PERFORM INITIALIZE-ALL-FIELDS. PERFORM SEND-TRNVIEW-SCREEN. *----------------------------------------------------------------* * INITIALIZE-ALL-FIELDS *----------------------------------------------------------------* INITIALIZE-ALL-FIELDS. MOVE -1 TO TRNIDINL OF COTRN1AI MOVE SPACES TO TRNIDINI OF COTRN1AI TRNIDI OF COTRN1AI CARDNUMI OF COTRN1AI TTYPCDI OF COTRN1AI TCATCDI OF COTRN1AI TRNSRCI OF COTRN1AI TRNAMTI OF COTRN1AI TDESCI OF COTRN1AI TORIGDTI OF COTRN1AI TPROCDTI OF COTRN1AI MIDI OF COTRN1AI MNAMEI OF COTRN1AI MCITYI OF COTRN1AI MZIPI OF COTRN1AI WS-MESSAGE. * * Ver: CardDemo_v1.0-15-g27d6c6f-68 Date: 2022-07-19 23:12:34 CDT *