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