DSN8MCG

THIS MODULE GIVEN A MESSAGE CODE, SENDS THE APPROPRIATE MESSAGE TO THE CALLING ROUTINE.

       IDENTIFICATION DIVISION.
      *-----------------------
       PROGRAM-ID.  DSN8MCG.

      ********************* DSN8MCG  **********************************
      *                                                               *
      *   MODULE NAME = DSN8MCG                                       *
      *                                                               *
      *   DESCRIPTIVE NAME = DB2  SAMPLE APPLICATION                  *
      *                      MESSAGE ROUTINE                          *
      *                      COBOL                                    *
      *                                                               *
      *                                                               *
      *COPYRIGHT = 5615-DB2 (C) COPYRIGHT IBM CORP 1982, 2013         *
      *SEE COPYRIGHT INSTRUCTIONS                                     *
      *LICENSED MATERIALS - PROPERTY OF IBM                           *
      *                                                               *
      *STATUS = VERSION 11                                            *
      *   FUNCTION = THIS MODULE GIVEN A MESSAGE CODE, SENDS THE      *
      *              APPROPRIATE MESSAGE TO THE CALLING ROUTINE.      *
      *                                                               *
      *   NOTES = NONE                                                *
      *                                                               *
      *   MODULE TYPE = COBOL PROGRAM                                 *
      *      PROCESSOR   = DB2 PRECOMPILER, COBOL COMPILER            *
      *      MODULE SIZE = SEE LINK EDIT                              *
      *      ATTRIBUTES  = NOT REENTRANT OR REUSABLE                  *
      *                                                               *
      *                                                               *
      *   ENTRY POINT = DSN8MCG                                       *
      *      PURPOSE = SEE FUNCTION                                   *
      *      LINKAGE = INVOKED FROM DSN RUN                           *
      *      INPUT   =                                                *
      *                                                               *
      *                SYMBOLIC LABEL/NAME =  MSGCODE                 *
      *                DESCRIPTION         =  A MESSAGE CODE NO.      *
      *                                       PIC X(4)                *
      *                                                               *
      *                SYMBOLIC LABEL/NAME =  MAJOR                   *
      *                DESCRIPTION         =  CALLING MODULE NAME     *
      *                                       PIC X(7)                *
      *      OUTPUT  =                                                *
      *                                                               *
      *                SYMBOLIC LABEL/NAME =  OUTMSG                  *
      *                DESCRIPTION         =  A MESSAGE               *
      *                                       PIC X(69)               *
      *                                                               *
      *   EXIT-NORMAL = NONE                                          *
      *                                                               *
      *   EXIT-ERROR =                                                *
      *                                                               *
      *      RETURN CODE    =  NONE                                   *
      *                                                               *
      *      ABEND CODES    =  NONE                                   *
      *                                                               *
      /      ERROR-MESSAGES =  ALL                                    *
      *                                                               *
      *   EXTERNAL REFERENCES =                                       *
      *                                                               *
      *      ROUTINES/SERVICES =  NONE                                *
      *                                                               *
      *      DATA-AREAS        =  NONE                                *
      *                                                               *
      *      CONTROL-BLOCKS    =  NONE                                *
      *                                                               *
      *   TABLES =  NONE                                              *
      *                                                               *
      *                                                               *
      *   CHANGE-ACTIVITY =                                           *
      *   - ADDED MESSAGES   200E,202E,203E,210E,212E,                *
      *                      213E,214E,215E                           *
      *   - DELETED MESSAGES 050I,052I                         V2R1   *
      *   - ADDED MESSAGES   079E,216E,217E                    V2R3   *
      *                                                               *
      *                                                               *
      *  *PSEUDOCODE*                                                 *
      *                                                               *
      *  PROCEDURE                                                    *
      *    GET INPUT FROM CALLING ROUTINE                             *
      *    SEARCH CODE ARRAY                                          *
      *                                                               *
      *    IF CODES MATCH                                             *
      *       GET APPROPRIATE MESSAGE                                 *
      *    ELSE                                                       *
      *       USE 'MESSAGE TEXT NOT FOUND' AS MESSAGE                 *
      *                                                               *
      *    SEND MESSAGE TO CALLING ROUTINE                            *
      *  END.                                                         *
      *                                                               *
      *---------------------------------------------------------------*
      /
       ENVIRONMENT DIVISION.
      *--------------------

       DATA DIVISION.
      *-------------
       WORKING-STORAGE SECTION.
      *                                     *OUTPUT MESSAGE
         01 WORK-MSG.
            02 HEAD-CODE         PIC X(04) VALUE 'DSN8'.
            02 O-CODE            PIC X(04).
            02 FILLER            PIC X(03) VALUE '   '.
            02 O-MODULE          PIC X(07).
            02 DASH-SYM          PIC X(01) VALUE '-'.
            02 O-MESSAGE         PIC X(50).

         01 OMSG REDEFINES WORK-MSG PIC X(69).

       LINKAGE SECTION.

      *                                     *INPUT MESSAGE CODE
         01 MSGCODE              PIC X(04).

      *                                     *INPUT CALLING MODULE NAME
         01 MAJOR                PIC X(07).

      *                                     *OUTPUT MESSAGE
         01 OUTMSG               PIC X(69).

      *****************************************************
      *         MAIN PROGRAM ROUTINE                      *
      *****************************************************

       PROCEDURE DIVISION USING MAJOR MSGCODE OUTMSG.
      *------------------
       PROG-START.
      *                                      **INITIALIZE OUTPUT
            MOVE MSGCODE  TO O-CODE   OF WORK-MSG.
            MOVE MAJOR TO O-MODULE OF WORK-MSG.
            MOVE 'MESSAGE TEXT NOT FOUND                            '
               TO O-MESSAGE OF WORK-MSG.


      *                                       **MESSAGE TEXT FOUND
      *                    * EMPLOYEE *
      *                                     *001I*
           IF MSGCODE EQUAL '001I' THEN
           MOVE 'EMPLOYEE NOT FOUND                                ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *002I*
           IF MSGCODE EQUAL '002I' THEN
           MOVE 'EMPLOYEE SUCCESSFULLY ADDED                       ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *003I*
           IF MSGCODE EQUAL '003I' THEN
           MOVE 'EMPLOYEE SUCCESSFULLY ERASED                      ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *004I*
           IF MSGCODE EQUAL '004I' THEN
           MOVE 'EMPLOYEE SUCCESSFULLY UPDATED                     ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *005E*
           IF MSGCODE EQUAL '005E' THEN
           MOVE 'EMPLOYEE EXISTS ALREADY, ADD NOT DONE             ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *006E*
           IF MSGCODE EQUAL '006E' THEN
           MOVE 'EMPLOYEE DOES NOT EXIST, ERASE NOT DONE           ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *007E*
           IF MSGCODE EQUAL '007E' THEN
           MOVE 'EMPLOYEE DOES NOT EXIST, UPDATE NOT DONE          ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *008I*
           IF MSGCODE EQUAL '008I' THEN
           MOVE 'NO EMPLOYEE FOUND IN TABLE                        ' TO
           O-MESSAGE OF WORK-MSG.


      *                     * DEPARTMENT *
      *                                     *011I*
           IF MSGCODE EQUAL '011I' THEN
           MOVE 'DEPARTMENT NOT FOUND                              ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *012I*
           IF MSGCODE EQUAL '012I' THEN
           MOVE 'DEPARTMENT SUCCESSFULLY ADDED                     ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *013I*
           IF MSGCODE EQUAL '013I' THEN
           MOVE 'DEPARTMENT SUCCESSFULLY ERASED                    ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *014I*
           IF MSGCODE EQUAL '014I' THEN
           MOVE 'DEPARTMENT SUCCESSFULLY UPDATED                   ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *015E*
           IF MSGCODE EQUAL '015E' THEN
           MOVE 'DEPARTMENT EXISTS ALREADY, ADD NOT DONE           ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *016E*
           IF MSGCODE EQUAL '016E' THEN
           MOVE 'DEPARTMENT DOES NOT EXIST, ERASE NOT DONE         ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *017E*
           IF MSGCODE EQUAL '017E' THEN
           MOVE 'DEPARTMENT DOES NOT EXIST, UPDATE NOT DONE        ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *018I*
           IF MSGCODE EQUAL '018I' THEN
           MOVE '''CURRENT'' DEPARTMENT NOT FOUND                  ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *019E*
           IF MSGCODE EQUAL '019E' THEN
           MOVE 'NO ''HIGHER'' DEPARTMENT EXISTS                   ' TO
           O-MESSAGE OF WORK-MSG.


      *             * GENERAL INFO. MESSAGES *
      *                                     *051I*
           IF MSGCODE EQUAL '051I' THEN
           MOVE 'PROGRAM ENDED                                     ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *053I*
           IF MSGCODE EQUAL '053I' THEN
           MOVE 'ROLLBACK SUCCESSFUL, ALL UPDATES REMOVED          ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *056I*
           IF MSGCODE EQUAL '056I' THEN
           MOVE 'NO MORE DATA TO DISPLAY                           ' TO
           O-MESSAGE OF WORK-MSG.


      *              * GENERAL ERROR MESSAGES *
      *                                     *060E*
           IF MSGCODE EQUAL '060E' THEN
           MOVE 'SQL ERROR, RETURN CODE IS:                        ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *061E*
           IF MSGCODE EQUAL '061E' THEN
           MOVE 'ROLLBACK FAILED, RETURN CODE IS:                  ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *062E*
           IF MSGCODE EQUAL '062E' THEN
           MOVE 'AN OBJECT WAS NOT SELECTED                        ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *064E*
           IF MSGCODE EQUAL '064E' THEN
           MOVE 'INVALID DL/I STC-CODE ON GU MSG                   ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *065E*
           IF MSGCODE EQUAL '065E' THEN
           MOVE 'INVALID DL/I STC-CODE ON ISRT MSG                 ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *066E*
           IF MSGCODE EQUAL '066E' THEN
           MOVE 'UNSUPPORTED PFK OR LOGIC ERROR                    ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *067E*
           IF MSGCODE EQUAL '067E' THEN
           MOVE 'UNSUPPORTED SEARCH CRITERIA FOR OBJECT            ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *068E*
           IF MSGCODE EQUAL '068E' THEN
           MOVE 'INVALID REQUEST, SHOULD BE ''L'' OR ''U''         ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *069E*
           IF MSGCODE EQUAL '069E' THEN
           MOVE 'NO VALID SELECTIONS QUALIFY FOR THIS REQUEST      ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *070E*
           IF MSGCODE EQUAL '070E' THEN
           MOVE 'VITAL DATA IS MISSING IN TABLE ''TOPTVAL''        ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *072E*
           IF MSGCODE EQUAL '072E' THEN
           MOVE 'INVALID SELECTION ON SECONDARY SCREEN             ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *073E*
           IF MSGCODE EQUAL '073E' THEN
           MOVE 'SPECIFIED LINE-NUMBER NOT FOUND IN PREVIOUS SCREEN' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *074E*
           IF MSGCODE EQUAL '074E' THEN
           MOVE 'DATA IS TOO LONG FOR SEARCH CRITERIA              ' TO
           O-MESSAGE OF WORK-MSG.
      *                                     *075E*
           IF MSGCODE EQUAL '075E' THEN
           MOVE 'MESSAGE FORMAT ROUTINE ERROR, RETURN CODE IS:     ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *079E*
           IF MSGCODE EQUAL '079E' THEN
           MOVE 'CONNECTION TO DB2 NOT ESTABLISHED                 ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *200E*
           IF MSGCODE EQUAL '200E' THEN
           MOVE 'INVALID DEPARTMENT NUMBER, EMPLOYEE NOT ADDED     ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *202E*
           IF MSGCODE EQUAL '202E' THEN
           MOVE 'EMPLOYEE NUMBER HAS DEPENDENT ROWS, NOT ERASED    ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *203E*
           IF MSGCODE EQUAL '203E' THEN
           MOVE 'INVALID WORK DEPT, EMPLOYEE NOT UPDATED           ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *210E*
           IF MSGCODE EQUAL '210E' THEN
           MOVE 'INVALID MGRNO, DEPARTMENT NOT ADDED               ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *212E*
           IF MSGCODE EQUAL '212E' THEN
           MOVE 'DEPARTMENT NUMBER HAS DEPENDENT ROWS, NOT ERASED  ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *213E*
           IF MSGCODE EQUAL '213E' THEN
           MOVE 'INVALID ADMIN DEPT ID, DEPARTMENT NOT ADDED       ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *214E*
           IF MSGCODE EQUAL '214E' THEN
           MOVE 'INVALID MANAGER ID, DEPARTMENT NOT UPDATED        ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *215E*
           IF MSGCODE EQUAL '215E' THEN
           MOVE 'INVALID ADMIN DEPT ID, DEPARTMENT NOT UPDATED     ' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *216E*
           IF MSGCODE EQUAL '216E' THEN
           MOVE 'DEPT NOT AT SPECIFIED LOCATION, EMPLOYEE NOT ADDED' TO
           O-MESSAGE OF WORK-MSG.

      *                                     *217E*
           IF MSGCODE EQUAL '217E' THEN
           MOVE 'DEPT NOT AT SPECIFIED LOCATION, EMP NOT UPDATED   ' TO
           O-MESSAGE OF WORK-MSG.


       PROG-END.
      *                                        **RETURN TO CALLER
      *                                        **END OF PROGRAM
           MOVE OMSG TO OUTMSG.
              GOBACK.