Hi I am new to Cobol/400 and writing one program where the user will enter the Customer No. IF customer number is not present in DB then error message should be displayed " Customer invalid" for this i have defined the Indicator 21 in the DSPF. On providing the wrong customer number error message is not displayed. On providing the correct customer number details are displayed. Please help me out how to display the error message. Below is the DSPF DDS and Cobol program.
Below is the cobol/400 program
Code:
0000.30 A DSPSIZ(24 80 *DS3) 0000.40 A REF(NARENKUM1/CUSMSTP) 0000.50 A PRINT 0000.60 A INDARA 0000.70 A CA03(03 'PRESS F3 TO EXIT.') 0000.80 A R CUSPMT 0000.90 A*%%TS SD 20220901 180822 NARENKUM REL-V7R5M0 5770-WDS 0001.00 A 1 3'CUSTOMER MASTER INQUIRY' 0001.10 A 3 3'CUSTOMER NUMBER' 0001.20 A 5 3'USE F3 TO END PROGRAM, USE ENTER T- 0001.30 A O RETURN TO PROMPT SCREEN' 0001.40 A CUST R I 3 20REFFLD(CUSMST/CUST NARENKUM1/CUSMST- 0001.50 A P) 0001.60 A 21 ERRMSG('CUSTOMER NOT FOUND' 21) 0001.70 A R CUSFLDS 0001.80 A*%%TS SD 20220902 022438 NARENKUM REL-V7R5M0 5770-WDS 0001.90 A OVERLAY 0002.00 A 8 3'NAME' 0002.10 A 9 3'ADDRESS' 0002.20 A 10 3'CITY' 0002.30 A 11 3'STATE' 0002.40 A 7 3'CUST' 0002.50 A CUST R O 7 14REFFLD(CUSMST/CUST NARENKUM1/CUSMST- 0002.60 A P) 0002.70 A NAME R O 8 14REFFLD(CUSMST/NAME NARENKUM1/CUSMST- 0002.80 A P) 0002.90 A ADDR R O 9 14REFFLD(CUSMST/ADDR NARENKUM1/CUSMST- 0003.00 A P) 0003.10 A CITY R O 10 14REFFLD(CUSMST/CITY NARENKUM1/CUSMST- 0003.20 A P) 0003.30 A STATE R O 11 14REFFLD(CUSMST/STATE NARENKUM1/CUSMS- 0003.40 A TP) ****************** End of data ************************************************** **
Code:
0001.00 IDENTIFICATION DIVISION. 0002.00 PROGRAM-ID. CUSMINQY. 0003.00 ENVIRONMENT DIVISION. 0004.00 INPUT-OUTPUT SECTION. 0005.00 FILE-CONTROL. 0006.00 SELECT CUSTOMER-FILE 0007.00 ASSIGN TO DATABASE-CUSMSTP 0008.00 ORGANIZATION IS INDEXED 0009.00 ACCESS MODE IS RANDOM 0010.00 RECORD KEY IS EXTERNALLY-DESCRIBED-KEY 0011.00 FILE STATUS IS WS-CUS-FILE-STATUS. 0012.00 0013.00 SELECT CUSTOMER-SCREEN-FILE 0014.00 ASSIGN TO WORKSTATION-CUSMINQ-SI 0015.00 ORGANIZATION IS TRANSACTION 0015.01 ACCESS IS SEQUENTIAL 0016.00 FILE STATUS IS WS-CUS-SCREEN-FILE-STATUS 0017.00 CONTROL-AREA IS WS-SCREEN-CONTROL-AREA. 0018.00 0019.00 DATA DIVISION. 0020.00 FILE SECTION. 0021.00 FD CUSTOMER-FILE 0022.00 LABEL RECORDS ARE STANDARD. 0023.00 01 CUSTOMER-RECORD. 0024.00 COPY DD-ALL-FORMATS OF CUSMSTP. 0025.00 0026.00 FD CUSTOMER-SCREEN-FILE 0027.00 LABEL RECORDS ARE OMITTED. 0028.00 01 DISPLAY-RECORD. 0029.00 COPY DDS-ALL-FORMATS OF CUSMINQ. 0030.00 0031.00 WORKING-STORAGE SECTION. 0032.00 01 WS-FILE-STATUS. 0033.00 05 WS-CUS-FILE-STATUS PIC X(2) VALUE '00'. 0034.00 05 WS-CUS-SCREEN-FILE-STATUS PIC X(2) VALUE '00'. 0034.01 0035.00 01 WS-SCREEN-CONTROL-AREA. 0036.00 05 WS-KEY-PRESSED PIC X(2). 0039.00 88 FUNCTION-KEY03 VALUE "03". 0039.04 0040.00 01 WS-SCREEN-INDICATORS. 0041.00 05 WS-SCR-INDICATOR PIC 1 OCCURS 99 TIMES INDICATOR 1. 0042.00 88 INDICATOR-OFF VALUE B"0". 0043.00 88 INDICATOR-ON VALUE B"1". 0043.01 0044.00 01 WS-INDICATORS-USED. 0045.00 05 INVALID-CUSNO PIC 9(2) VALUE 21. 0045.01 0047.00 01 WS10-ABEND-VARIABLES. 0048.00 05 WS10-PROGRAM-NAME PIC X(9) VALUE 'CUSMINQY'. 0049.00 05 WS10-FILE-STATUS PIC X(2) VALUE SPACES. 0050.00 05 WS10-ERROR-MESSAGE PIC X(80) VALUE SPACES. 0050.01 0050.02 01 WORK-FIELDS. 0050.03 05 WS-CHECK PIC X(1) VALUE 'N'. 0050.05 0051.00 PROCEDURE DIVISION. 0052.00 0000-START. 0053.00 PERFORM 1000-INITIALISATION. 0054.00 PERFORM 2000-MAIN-PROCESSING 0055.00 UNTIL FUNCTION-KEY03. 0056.00 PERFORM 3000-TERMINATION-PROCESS. 0057.00 0000-EXIT. 0058.00 STOP RUN. 0059.00 *-------------------------------------* 0060.00 1000-INITIALISATION. 0061.00 PERFORM 1100-OPEN-FILE. 0062.00 INITIALIZE WS-SCREEN-INDICATORS. 0063.00 INITIALIZE WS-KEY-PRESSED. 0064.00 INITIALIZE CUSPMT-I. 0065.00 PERFORM 1200-DISPLAY-HEADER. 0066.00 *-------------------------------------------------------------* 0067.00 * THIS SECTION WILL BE USED TO OPEN THE FILES * 0068.00 * USED IN THIS PROGRAM. * 0069.00 *-------------------------------------------------------------* 0070.00 1100-OPEN-FILE. 0071.00 OPEN INPUT CUSTOMER-FILE. 0072.00 EVALUATE WS-CUS-FILE-STATUS 0073.00 WHEN '00' 0074.00 CONTINUE 0075.00 WHEN OTHER 0076.00 MOVE WS-CUS-FILE-STATUS TO WS10-FILE-STATUS 0077.00 MOVE 'ERROR IN OPENING CUS FILE' TO WS10-ERROR-MESSAGE 0078.00 PERFORM Z200-FILE-ABEND-PROCESS 0079.00 END-EVALUATE. 0080.00 0081.00 OPEN I-O CUSTOMER-SCREEN-FILE. 0082.00 EVALUATE WS-CUS-SCREEN-FILE-STATUS 0083.00 WHEN '00' 0084.00 CONTINUE 0085.00 WHEN OTHER 0086.00 MOVE WS-CUS-SCREEN-FILE-STATUS TO WS10-FILE-STATUS 0087.00 MOVE 'ERROR IN OPENING CUS SCREEN FILE' 0088.00 TO WS10-ERROR-MESSAGE 0089.00 PERFORM Z200-FILE-ABEND-PROCESS 0090.00 END-EVALUATE. 0091.00 *--------------------------------------------------------* 0092.00 * THIS SECTION WILL DISPLAY THE EMPLOYEE ADD SCREEN * 0093.00 *--------------------------------------------------------* 0094.00 1200-DISPLAY-HEADER. 0095.00 WRITE DISPLAY-RECORD 0096.00 FORMAT IS "CUSPMT" 0097.00 INDICATORS ARE WS-SCREEN-INDICATORS. 0098.00 READ CUSTOMER-SCREEN-FILE 0098.01 FORMAT IS "CUSPMT" 0099.00 INDICATORS ARE WS-SCREEN-INDICATORS. 0100.00 *--------------------------------------------------------* 0101.00 * DISPLAY THE EMP SCREEN UNTI F03 KEY IS PRESSED * 0102.00 *--------------------------------------------------------* 0103.00 2000-MAIN-PROCESSING. 0103.01 MOVE CUST OF CUSPMT-I TO CUST OF CUSMST. 0103.02 READ CUSTOMER-FILE 0103.03 INVALID KEY 0103.04 SET INDICATOR-ON(INVALID-CUSNO) TO TRUE 0103.05 PERFORM 2200-DISPLAY-HEADER 0103.13 NOT INVALID KEY 0103.14 MOVE 'Y' TO WS-CHECK 0103.15 PERFORM 2100-WRITE-SCREEN-RECORD 0103.21 END-READ. 0120.00 ************************************************** ********* 0121.00 *---------------------------------------------------------* 0122.00 * THIS WILL CHECK THE EMP NO IS BLANK AND ALSO * 0123.00 * IF THE RECORD ALREADY PRESENT IN DATA BASE * 0124.00 *---------------------------------------------------------* 0124.01 2100-WRITE-SCREEN-RECORD. 0124.03 MOVE NAME OF CUSMST TO NAME OF CUSFLDS-O. 0124.04 MOVE CITY OF CUSMST TO CITY OF CUSFLDS-O. 0124.05 MOVE STATE OF CUSMST TO STATE OF CUSFLDS-O. 0124.06 MOVE ADDR OF CUSMST TO ADDR OF CUSFLDS-O. 0124.07 MOVE CUST OF CUSMST TO CUST OF CUSFLDS-O. 0124.08 WRITE DISPLAY-RECORD 0124.09 FORMAT IS "CUSFLDS" 0124.10 INDICATORS ARE WS-SCREEN-INDICATORS. 0124.11 READ CUSTOMER-SCREEN-FILE. 0135.00 *--------------------------------------------------------* 0135.01 2200-DISPLAY-HEADER. 0135.02 INITIALIZE CUSPMT-I. 0135.04 WRITE DISPLAY-RECORD 0135.05 FORMAT IS "CUSPMT" 0135.06 INDICATORS ARE WS-SCREEN-INDICATORS. 0135.07 READ CUSTOMER-SCREEN-FILE 0135.08 FORMAT IS "CUSPMT". 0136.00 Z200-FILE-ABEND-PROCESS. 0137.00 DISPLAY 'PROGRAM NAME :' WS10-PROGRAM-NAME. 0138.00 DISPLAY 'FILE STATUS :' WS10-FILE-STATUS. 0139.00 DISPLAY 'ERROR MESSAGE :' WS10-ERROR-MESSAGE. 0140.00 3000-TERMINATION-PROCESS. 0141.00 CLOSE CUSTOMER-FILE. 0142.00 CLOSE CUSTOMER-SCREEN-FILE.
Comment