DSN8MPG

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

 DSN8MPG: PROC(MODULE, ICODE, OUTMSG);                                  00010000
 /********************************************************************* 00020000
 *                                                                    * 00030000
 *   MODULE NAME = DSN8MPG                                            * 00040000
 *                                                                    * 00050000
 *   DESCRIPTIVE NAME = DB2  SAMPLE APPLICATION                       * 00060000
 *                      MESSAGE ROUTINE                               * 00070000
 *                      PL/I                                          * 00080000
 *                                                                    * 00090000
 *     COPYRIGHT = 5665-DB2 (C) COPYRIGHT IBM CORP 1982, 1991         * 00100000
 *     SEE COPYRIGHT INSTRUCTIONS                                     * 00110000
 *     LICENSED MATERIALS - PROPERTY OF IBM                           * 00120000
 *                                                                    * 00130000
 *     STATUS = VERSION 2 RELEASE 3, LEVEL 0                          * 00140000
 *                                                                    * 00150000
 *   FUNCTION = THIS MODULE GIVEN A MESSAGE CODE, SENDS THE           * 00160000
 *              APPROPRIATE MESSAGE TO THE CALLING ROUTINE.           * 00170000
 *                                                                    * 00180000
 *   NOTES = NONE                                                     * 00190000
 *                                                                    * 00200000
 *                                                                    * 00210000
 *   MODULE TYPE = PL/I PROC OPTIONS(MAIN)                            * 00220000
 *      PROCESSOR = DB2  PRECOMPILER, PL/I OPTIMIZER                  * 00230000
 *      MODULE SIZE = SEE LINK EDIT                                   * 00240000
 *      ATTRIBUTES = REENTRANT                                        * 00250000
 *                                                                    * 00260000
 *   ENTRY POINT = DSN8MPG                                            * 00270000
 *      PURPOSE = SEE FUNCTION                                        * 00280000
 *      LINKAGE = INVOKED FROM DSN RUN                                * 00290000
 *      INPUT   =                                                     * 00300000
 *                                                                    * 00310000
 *                SYMBOLIC LABEL/NAME = ICODE                         * 00320000
 *                DESCRIPTION = A MESSAGE CODE NO.                    * 00330000
 *                              CHARACTER(4)                          * 00340000
 *                                                                    * 00350000
 *                SYMBOLIC LABEL/NAME = MODULE                        * 00360000
 *                DESCRIPTION = THE CALLING MODULE NAME               * 00370000
 *                              CHARACTER(7)                          * 00380000
 *      OUTPUT  =                                                     * 00390000
 *                                                                    * 00400000
 *                SYMBOLIC LABEL/NAME = OUTMSG                        * 00410000
 *                DESCRIPTION = A MESSAGE                             * 00420000
 *                              CHARACTER(69)                         * 00430000
 *                                                                    * 00440000
 *   EXIT-NORMAL = NONE                                               * 00450000
 *                                                                    * 00460000
 *   EXIT-ERROR =                                                     * 00470000
 *                                                                    * 00480000
 *      RETURN CODE = NONE                                            * 00490000
 *                                                                    * 00500000
 *      ABEND CODES =  NONE                                           * 00510000
 *                                                                    * 00520000
 *      ERROR-MESSAGES = ALL                                          * 00530000
 *                                                                    * 00540000
 *   EXTERNAL REFERENCES =                                            * 00550000
 *                                                                    * 00560000
 *      ROUTINES/SERVICES = NONE                                      * 00570000
 *                                                                    * 00580000
 *      DATA-AREAS = NONE                                             * 00590000
 *                                                                    * 00600000
 *      CONTROL-BLOCKS = NONE                                         * 00610000
 *                                                                    * 00620000
 *   TABLES = NONE                                                    * 00630000
 *                                                                    * 00640000
 *   CHANGE-ACTIVITY =                                                * 00650000
 *   - ADDED MESSAGES 200E,202E,203E,210E,212E,213E,214E,             * 00660000
 *                    215E,220E,222E,223E,230E,231E,233E,             * 00670000
 *                    235E,236E,237E,238E,240E,242E,243E              * 00680000
 *   - DELETED MESSAGES 050I, 052I                             V2R1   * 00690000
 *   - ADDED MESSAGE  079E                                     V2R3   * 00700000
 *                                                                    * 00710000
 *                                                                    * 00720000
 *                                                                    * 00730000
 *  *PSEUDOCODE*                                                      * 00740000
 *                                                                    * 00750000
 *  PROCEDURE                                                         * 00760000
 *    GET INPUT FROM CALLING ROUTINE                                  * 00770000
 *    SEARCH CODE ARRAY                                               * 00780000
 *                                                                    * 00790000
 *    IF CODES MATCH                                                  * 00800000
 *       GET APPROPRIATE MESSAGE                                      * 00810000
 *    ELSE                                                            * 00820000
 *       USE 'MESSAGE TEXT NOT FOUND' AS MESSAGE                      * 00830000
 *                                                                    * 00840000
 *    SEND MESSAGE TO CALLING ROUTINE                                 * 00850000
 *  END.                                                              * 00860000
 *                                                                    * 00870000
 * 05/22/03 - FIX CODE HOLE CLOSED BY VA AND ENTERPRISE PL/I   PQ44916* 00871001
 *                                                                    * 00872001
 *-------------------------------------------------------------------*/ 00880000
 DCL I           FIXED  DECIMAL (02);                                   00890000
 DCL OUTMSG      CHAR(69);                                              00900000
 DCL MODULE      CHAR(07);                                              00910000
 DCL ICODE       CHAR(04);                                              00920000
 DCL MNF         CHAR(50) INIT(                                         00930000
           'MESSAGE TEXT NOT FOUND                            ');       00940000
                                                                        00950000
 /****************************/                                         00960000
 /*   CODE ARRAY             */                                         00970000
 /****************************/                                         00980000
                                                                        00990000
 DCL CODE  (83)    CHAR(04) INIT(                                       01000000
                                                                        01010000
           '001I',    '002I',    '003I',    '004I',                     01020000
           '005E',    '006E',    '007E',    '008I',                     01030000
           '011I',    '012I',    '013I',    '014I',                     01040000
           '015E',    '016E',    '017E',    '018I',                     01050000
           '019E',    '021I',    '022I',    '023I',                     01060000
           '024I',    '025E',    '026E',    '027E',                     01070000
           '028I',    '031I',    '032I',    '033I',                     01080000
           '034I',    '035E',    '036E',    '037E',                     01090000
           '038I',    '039E',    '041I',    '042I',                     01100000
           '043I',    '044I',    '045E',    '046E',                     01110000
           '047E',    '051I',    '053I',    '056I',                     01120000
           '057I',    '058I',    '060E',    '061E',                     01130000
           '062E',    '064E',    '065E',                                01140000
           '066E',    '067E',    '068E',    '069E',                     01150000
           '070E',    '072E',    '073E',    '074E',                     01160000
           '075E',    '076E',    '079E',                                01170000
           '200E',    '202E',    '203E',    '210E',                     01180000
           '212E',    '213E',    '214E',    '215E',                     01190000
           '220E',    '222E',    '223E',                                01200000
           '230E',    '231E',    '233E',                                01210000
           '235E',    '236E',    '237E',    '238E',                     01220000
           '240E',    '242E',    '243E');                               01230000
                                                                        01240000
 /****************************/                                         01250000
 /*   TEXT ARRAY             */                                         01260000
 /****************************/                                         01270000
                                                                        01280000
 DCL TEXT  (83)  CHAR(50) INIT(                                         01290000
                                                                        01300000
                                       /* EMPLOYEE */                   01310000
 'EMPLOYEE NOT FOUND                                ',/*001I*/          01320000
 'EMPLOYEE SUCCESSFULLY ADDED                       ',/*002I*/          01330000
 'EMPLOYEE SUCCESSFULLY ERASED                      ',/*003I*/          01340000
 'EMPLOYEE SUCCESSFULLY UPDATED                     ',/*004I*/          01350000
 'EMPLOYEE EXISTS ALREADY, ADD NOT DONE             ',/*005E*/          01360000
 'EMPLOYEE DOES NOT EXIST, ERASE NOT DONE           ',/*006E*/          01370000
 'EMPLOYEE DOES NOT EXIST, UPDATE NOT DONE          ',/*007E*/          01380000
 'NO EMPLOYEE FOUND IN TABLE                        ',/*008I*/          01390000
                                                                        01400000
                                       /* DEPARTMENT */                 01410000
 'DEPARTMENT NOT FOUND                              ',/*011I*/          01420000
 'DEPARTMENT SUCCESSFULLY ADDED                     ',/*012I*/          01430000
 'DEPARTMENT SUCCESSFULLY ERASED                    ',/*013I*/          01440000
 'DEPARTMENT SUCCESSFULLY UPDATED                   ',/*014I*/          01450000
 'DEPARTMENT EXISTS ALREADY, ADD NOT DONE           ',/*015E*/          01460000
 'DEPARTMENT DOES NOT EXIST, ERASE NOT DONE         ',/*016E*/          01470000
 'DEPARTMENT DOES NOT EXIST, UPDATE NOT DONE        ',/*017E*/          01480000
 '''CURRENT'' DEPARTMENT NOT FOUND                  ',/*018I*/          01490000
 'NO ''HIGHER'' DEPARTMENT EXISTS                   ',/*019E*/          01500000
                                                                        01510000
                                       /* ACTIVITY */                   01520000
 'ACTIVITY NOT FOUND                                ',/*021I*/          01530000
 'ACTIVITY SUCCESSFULLY ADDED                       ',/*022I*/          01540000
 'ACTIVITY SUCCESSFULLY ERASED                      ',/*023I*/          01550000
 'ACTIVITY SUCCESSFULLY UPDATED                     ',/*024I*/          01560000
 'ACTIVITY EXISTS ALREADY, ADD NOT DONE             ',/*025E*/          01570000
 'ACTIVITY DOES NOT EXIST, ERASE NOT DONE           ',/*026E*/          01580000
 'ACTIVITY DOES NOT EXIST, UPDATE NOT DONE          ',/*027E*/          01590000
 'ACTIVITY TYPE NOT FOUND, ADD IT INTERACTIVELY     ',/*028I*/          01600000
                                                                        01610000
                                       /* PROJECT */                    01620000
 'PROJECT NOT FOUND                                 ',/*031I*/          01630000
 'PROJECT SUCCESSFULLY ADDED                        ',/*032I*/          01640000
 'PROJECT SUCCESSFULLY ERASED                       ',/*033I*/          01650000
 'PROJECT SUCCESSFULLY UPDATED                      ',/*034I*/          01660000
 'PROJECT EXISTS ALREADY, ADD NOT DONE              ',/*035E*/          01670000
 'PROJECT DOES NOT EXIST, ERASE NOT DONE            ',/*036E*/          01680000
 'PROJECT DOES NOT EXIST, UPDATE NOT DONE           ',/*037E*/          01690000
 '''CURRENT'' PROJECT NOT FOUND                     ',/*038I*/          01700000
 'NO ''HIGHER'' PROJECT EXISTS                      ',/*039E*/          01710000
                                                                        01720000
                                       /* STAFFING */                   01730000
 'STAFFING NOT FOUND                                ',/*041I*/          01740000
 'STAFFING SUCCESSFULLY ADDED                       ',/*042I*/          01750000
 'STAFFING SUCCESSFULLY ERASED                      ',/*043I*/          01760000
 'STAFFING SUCCESSFULLY UPDATED                     ',/*044I*/          01770000
 'STAFFING EXISTS ALREADY, ADD NOT DONE             ',/*045E*/          01780000
 'STAFFING DOES NOT EXIST, ERASE NOT DONE           ',/*046E*/          01790000
 'STAFFING DOES NOT EXIST, UPDATE NOT DONE          ',/*047E*/          01800000
                                                                        01810000
                                                                        01820000
                                       /* GENERAL INFO. MESSAGES */     01830000
 'PROGRAM ENDED                                     ',/*051I*/          01840000
 'ROLLBACK SUCCESSFUL, ALL UPDATES REMOVED          ',/*053I*/          01850000
 'NO MORE DATA TO DISPLAY                           ',/*056I*/          01860000
 'FURTHER ENTRIES IN TABLE - UPDATE POSSIBLE        ',/*057I*/          01870000
 'PRESS PA1 FOR NEXT PAGE / ENTER FOR SELECTION MENU',/*058I*/          01880000
                                                                        01890000
                                       /* GENERAL ERROR MESSAGES */     01900000
 'SQL ERROR, RETURN CODE IS:                        ',/*060E*/          01910000
 'ROLLBACK FAILED, RETURN CODE IS:                  ',/*061E*/          01920000
 'AN OBJECT WAS NOT SELECTED                        ',/*062E*/          01930000
 'INVALID DL/I STC-CODE ON GU MSG                   ',/*064E*/          01940000
 'INVALID DL/I STC-CODE ON ISRT MSG                 ',/*065E*/          01950000
 'UNSUPPORTED PFK OR LOGIC ERROR                    ',/*066E*/          01960000
 'UNSUPPORTED SEARCH CRITERIA FOR OBJECT            ',/*067E*/          01970000
 'INVALID REQUEST, SHOULD BE ''L'' OR ''U''         ',/*068E*/          01980000
 'NO VALID SELECTIONS QUALIFY FOR THIS REQUEST      ',/*069E*/          01990000
 'VITAL DATA IS MISSING IN TABLE ''TOPTVAL''        ',/*070E*/          02000000
 'INVALID SELECTION ON SECONDARY SCREEN             ',/*072E*/          02010000
 'SPECIFIED LINE-NUMBER NOT FOUND IN PREVIOUS SCREEN',/*073E*/          02020000
 'DATA IS TOO LONG FOR SEARCH CRITERIA              ',/*074E*/          02030000
 'MESSAGE FORMAT ROUTINE ERROR, RETURN CODE IS:     ',/*075E*/          02040000
 'VITAL DATA IS MISSING IN TABLE ''TDSPTXT''        ',/*076E*/          02050000
 'CONNECTION TO DB2 NOT ESTABLISHED                 ',/*079E*/          02060000
                                                                        02070000
                                /* REFERENTIAL INTEGRITY MESSAGES */    02080000
 'INVALID DEPARTMENT NUMBER, EMPLOYEE NOT ADDED     ',/*200E*/          02090000
 'EMPLOYEE NUMBER HAS DEPENDENT ROWS, NOT ERASED    ',/*202E*/          02100000
 'INVALID WORK DEPT, EMPLOYEE NOT UPDATED           ',/*203E*/          02110000
 'INVALID MGRNO, DEPARTMENT NOT ADDED               ',/*210E*/          02120000
 'DEPARTMENT NUMBER HAS DEPENDENT ROWS, NOT ERASED  ',/*212E*/          02130000
 'INVALID ADMIN DEPT ID, DEPARTMENT NOT ADDED       ',/*213E*/          02140000
 'INVALID MANAGER ID, DEPARTMENT NOT UPDATED        ',/*214E*/          02150000
 'INVALID ADMIN DEPT ID, DEPARTMENT NOT UPDATED     ',/*215E*/          02160000
 'INVALID PROJECT NUMBER, ACTIVITY NOT ADDED        ',/*220E*/          02170000
 'ACTIVITY HAS DEPENDENT ROWS, NOT ERASED           ',/*222E*/          02180000
 'ACTIVITY HAS DEPENDENT ROWS, NOT UPDATED          ',/*223E*/          02190000
 'INVALID DEPARTMENT NUMBER, PROJECT NOT ADDED      ',/*230E*/          02200000
 'INVALID RESPONSIBLE ID, PROJECT NOT ADDED         ',/*231E*/          02210000
 'PROJECT NUMBER HAS DEPENDENT ROWS, NOT ERASED     ',/*233E*/          02220000
 'INVALID MAJOR PROJECT ID, PROJECT NOT ADDED       ',/*235E*/          02230000
 'INVALID ASSOCIATE DEPT ID, PROJECT NOT UPDATED    ',/*236E*/          02240000
 'INVALID RESPONSIBLE ID, PROJECT NOT UPDATED       ',/*237E*/          02250000
 'INVALID MAJOR PROJECT ID, PROJECT NOT UPDATED     ',/*238E*/          02260000
 'INVALID EMPLOYEE NUMBER, STAFFING NOT ADDED       ',/*240E*/          02270000
 'INVALID PROJECT ACTIVITY DATA, STAFFING NOT ADDED ',/*242E*/          02280000
 'INVALID START DATE, STAFFING NOT UPDATED          ')/*243E*/;         02290000
                                                                        02300000
 /****************************/                                         02310000
 /* MAIN PROGRAM ROUTINE     */                                         02320000
 /****************************/                                         02330000
                                                                        02340000
                                       /* INITIALIZE OUTPUT          */ 02350000
 OUTMSG = 'DSN8'||ICODE||'   '||MODULE||'-'||MNF;                       02360000
                                                                        02370000
 DO I = 1 TO 83;                       /* GET MESSAGE TEXT           */ 02380000
    IF ICODE = CODE(I) THEN                                             02390000
       OUTMSG = 'DSN8'||ICODE||'   '||MODULE||'-'||TEXT(I);             02400000
 END;                                                                   02410000
                                                                        02420000
 RETURN;                               /* RETURN TO CALLER           */ 02430000
 END DSN8MPG;                          /* END OF PROGRAM             */ 02440000