DSN8CP8
ROUTER FOR SECONDARY SELECTION AND/OR DETAIL PROCESSIN CALLS SECONDARY SELECTION MODULES DSN8MPM CALLS DETAIL MODULES DSN8MPT DSN8MPV DSN8MPW DSN8MPX DSN8MPZ CALLED BY DSN8CP7 (SQL1) .
DSN8CP8: PROC(COMMPTR) OPTIONS(MAIN); 00010000
%PAGE; 00020000
/********************************************************************* 00030000
* * 00040000
* MODULE NAME = DSN8CP8 * 00050000
* * 00060000
* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION * 00070000
* SQL 2 COMMON MODULE * 00080000
* CICS * 00090000
* PL/I * 00100000
* PROJECT APPLICATION * 00110000
* * 00120000
* * 00130000
* LICENSED MATERIALS - PROPERTY OF IBM * 00140000
* 5695-DB2 * 00146000
* (C) COPYRIGHT 1982, 1995 IBM CORP. ALL RIGHTS RESERVED. * 00153000
* * 00160000
* STATUS = VERSION 4 * 00170000
* * 00180000
* FUNCTION = ROUTER FOR SECONDARY SELECTION AND/OR DETAIL PROCESSIN* 00190000
* CALLS SECONDARY SELECTION MODULES * 00200000
* DSN8MPM * 00210000
* CALLS DETAIL MODULES * 00220000
* DSN8MPT DSN8MPV DSN8MPW DSN8MPX DSN8MPZ * 00230000
* CALLED BY DSN8CP7 (SQL1) * 00240000
* * 00250000
* NOTES = NONE * 00260000
* * 00270000
* MODULE TYPE = BLOCK OF PL/I CODE * 00280000
* PROCESSOR = DB2 PRECOMPILER, PL/I OPTIMIZER * 00290000
* MODULE SIZE = SEE LINKEDIT * 00300000
* ATTRIBUTES = REUSABLE * 00310000
* * 00320000
* ENTRY POINT = DSN8CP8 * 00330000
* PURPOSE = SEE FUNCTION * 00340000
* LINKAGE = NONE * 00350000
* INPUT = * 00360000
* * 00370000
* SYMBOLIC LABEL/NAME = COMMPTR * 00380000
* DESCRIPTION = POINTER TO COMMAREA * 00390000
* (COMMUNICATION AREA) * 00400000
* * 00410000
* OUTPUT = * 00420000
* * 00430000
* SYMBOLIC LABEL/NAME = COMMPTR * 00440000
* DESCRIPTION = POINTER TO COMMAREA * 00450000
* (COMMUNICATION AREA) * 00460000
* * 00470000
* * 00480000
* EXIT-NORMAL = * 00490000
* * 00500000
* EXIT-ERROR = IF SQLERROR OR SQLWARNING, SQL WHENEVER CONDITION * 00510000
* SPECIFIED IN DSN8CP8 WILL BE RAISED AND PROGRAM * 00520000
* WILL GO TO THE LABEL DB_ERROR. * 00530000
* * 00540000
* * 00550000
* RETURN CODE = NONE * 00560000
* * 00570000
* ABEND CODES = NONE * 00580000
* * 00590000
* ERROR-MESSAGES = * 00600000
* DSN8062E-AN OBJECT WAS NOT SELECTED * 00610000
* DSN8066E-UNSUPPORTED PFK OR LOGIC ERROR * 00630000
* DSN8072E-INVALID SELECTION ON SECONDARY SCREEN * 00640000
* * 00650000
* EXTERNAL REFERENCES = NONE * 00660000
* ROUTINES/SERVICES = 6 MODULES LISTED ABOVE * 00670000
* DSN8MPG - ERROR MESSAGE ROUTINE * 00680000
* * 00690000
* DATA-AREAS = * 00700000
* DSN8MPAC - DCLGEN FOR ACTIVITY TYPES * 00710000
* DSN8MPAS - CURSOR SECONDARY SELECTION FOR * 00720000
* STAFF * 00730000
* DSN8MPCA - COMMUNICATION AREA BETWEEN MODULES * 00740000
* DSN8MPDH - CURSOR FOR DISPLAY TEXT FROM * 00750000
* TDSPTXT TABLE * 00760000
* DSN8MPDP - DCLGEN FOR DEPARTMENT * 00770000
* DSN8MPDT - DCLGEN FOR DISPLAY TEXT TABLE * 00780000
* DSN8MPEM - DCLGEN FOR EMPLOYEE * 00790000
* DSN8MPEP - DCLGEN FOR PROJECT/STAFFING * 00800000
* DSN8MPES - CURSOR SECONDARY SELECTION FOR * 00810000
* ESTIMATES * 00820000
* DSN8MPOV - DCLGEN FOR OPTION VALIDATION * 00830000
* DSN8MPPA - DCLGEN FOR PROJECT/ACTIVITIES * 00840000
* DSN8MPPD - DCLGEN FOR PROJ STRUCTURE DETAIL * 00850000
* DSN8MPP2 - DCLGEN FOR PROJ STRUCTURE DETAIL * 00855000
* DSN8MPPE - CURSOR PROJECT DETAIL * 00860000
* DSN8MPPJ - DCLGEN FOR PROJECTS * 00870000
* DSN8MPPL - CURSOR PROJECT LIST * 00880000
* DSN8MPPR - DCLGEN FOR PROJ/RESP EMPLOYEE * 00890000
* DSN8MPSA - DCLGEN FOR PROJ ACTIVITY LISTING * 00910000
* DSN8MPSL - CURSOR STAFFING LIST * 00920000
* DSN8MPS2 - DCLGEN FOR PROJ ACTIVITY LISTING * 00930000
* DSN8MPFP - DCLGEN FOR PROJECT-EMPLOYEE * 00935000
* DSN8MPED - DCLGEN FOR EMPLOYEE-DEPT * 00937000
* DSN8MPM - SECONDARY SELECTION FOR PROJECTS * 00940000
* DSN8MPT - PROJECT ACTIVITY LIST * 00950000
* DSN8MPV - PROJECT STRUCTURE DETAIL * 00960000
* DSN8MPW - ACTIVITY STAFFING DETAIL * 00970000
* DSN8MPX - ACTIVITY ESTIMATE DETAIL * 00980000
* DSN8MPZ - PROJECT DETAIL * 00990000
* * 01000000
* CONTROL-BLOCKS = * 01010000
* SQLCA - SQL COMMUNICATION AREA * 01020000
* * 01030000
* TABLES = NONE * 01040000
* * 01050000
* CHANGE-ACTIVITY = NONE * 01060000
* * 01070000
* * 01080000
* *PSEUDOCODE* * 01090000
* * 01100000
* THIS MODULE DETERMINES WHICH SECONDARY SELECTION AND/OR * 01110000
* DETAIL MODULE(S) ARE TO BE CALLED IN THE CICS/PL/I * 01120000
* ENVIRONMENT. * 01130000
* * 01140000
* WHAT HAS HAPPENED SO FAR?.............THE SUBSYSTEM * 01150000
* DEPENDENT MODULE (IMS,CICS,TSO) OR (SQL 0) HAS * 01160000
* READ THE INPUT SCREEN, FORMATTED THE INPUT AND PASSED CONTROL * 01170000
* TO SQL 1. SQL 1 PERFORMS VALIDATION ON THE SYSTEM DEPENDENT * 01180000
* FIELDS (MAJOR SYSTEM, ACTION, OBJECT, SEARCH CRITERIA). IF * 01190000
* ALL SYSTEM FIELDS ARE VALID SQL 1 PASSED CONTROL TO THIS * 01200000
* MODULE. PASSED PARAMETERS CONSIST ONLY OF A POINTER WHICH * 01210000
* POINTS TO A COMMUNICATION CONTROL AREA USED TO COMMUNICATE * 01220000
* BETWEEN SQL 0 , SQL 1, SQL 2 AND THE SECONDARY SELECTION * 01230000
* AND DETAIL MODULES. * 01240000
* * 01250000
* WHAT IS INCLUDED IN THIS MODULE?............. * 01260000
* ALL SECONDARY SELECTION AND DETAIL MODULES ARE 'INCLUDED'. * 01270000
* ALL VARIABLES KNOWN IN THIS PROCEDURE ARE KNOWN IN THE * 01280000
* SUB PROCEDURES. ALL SQL CURSOR DEFINITIONS AND * 01290000
* SQL 'INCLUDES' ARE DONE IN THIS PROCEDURE. BECAUSE OF THE * 01300000
* RESTRICTION THAT CURSOR HOST VARIABLES MUST BE DECLARED BEFORE* 01310000
* THE CURSOR DEFINITION ALL CURSOR HOST VARIABLES ARE DECLARED * 01320000
* IN THIS PROCEDURE. * 01330000
* * 01340000
* PROCEDURE * 01350000
* IF ANSWER TO DETAIL SCREEN & DETAIL PROCESSOR * 01360000
* IS NOT WILLING TO ACCEPT AN ANSWER THEN * 01370000
* NEW REQUEST* * 01380000
* * 01390000
* ELSE * 01400000
* IF ANSWER TO A SECONDARY SELECTION THEN * 01410000
* DETERMINE IF NEW REQUEST. * 01420000
* * 01430000
* * 01440000
* * 01450000
* CASE (NEW REQUEST) * 01460000
* * 01470000
* SUBCASE ('ADD') * 01480000
* DETAIL PROCESSOR * 01490000
* RETURN TO SQL 1 * 01500000
* ENDSUB * 01510000
* * 01520000
* SUBCASE ('DISPLAY','ERASE','UPDATE') * 01530000
* CALL SECONDARY SELECTION * 01540000
* IF # OF POSSIBLE CHOICES IS ^= 1 THEN * 01550000
* RETURN TO SQL 1 * 01560000
* ELSE * 01570000
* CALL THE DETAIL PROCESSOR * 01580000
* RETURN TO SQL 1 * 01590000
* ENDSUB * 01600000
* * 01610000
* ENDCASE * 01620000
* * 01630000
* IF ANSWER TO SECONDARY SELECTION AND A SELECTION HAS * 01640000
* ACTUALLY BEEN MADE THEN * 01650000
* VALID SELECTION #? * 01660000
* IF IT IS VALID THEN * 01670000
* CALL DETAIL PROCESSOR * 01680000
* RETURN TO SQL 1 * 01690000
* ELSE * 01700000
* PRINT ERROR MSG * 01710000
* RETURN TO SQL 1. * 01720000
* * 01730000
* IF ANSWER TO SECONDARY SELECTION THEN * 01740000
* CALL SECONDARY SELECTION * 01750000
* RETURN TO SQL 1. * 01760000
* * 01770000
* IF ANSWER TO DETAIL THEN * 01780000
* CALL DETAIL PROCESSOR * 01790000
* RETURN TO SQL 1. * 01800000
* * 01810000
* END. * 01820000
* * 01830000
* *EXAMPLE- A ROW IS SUCCESSFULLY ADDED, THE OPERATOR RECEIVES* 01840000
* THE SUCCESSFULLY ADDED MESSAGE AND JUST HITS ENTER. * 01850000
* * 01860000
*-------------------------------------------------------------------*/ 01870000
01880000
EXEC SQL INCLUDE DSN8MPCA; /*COMMUNICATION AREA BETWEEN MODULES */ 01890000
EXEC SQL INCLUDE SQLCA; /*SQL COMMUNICATION AREA */ 01900000
01910000
EXEC SQL INCLUDE DSN8MPDP; /* DCLGEN FOR DEPARTMENT */ 01920000
EXEC SQL INCLUDE DSN8MPEM; /* DCLGEN FOR EMPLOYEE */ 01930000
EXEC SQL INCLUDE DSN8MPPJ; /* DCLGEN FOR PROJECTS */ 01940000
EXEC SQL INCLUDE DSN8MPAC; /* DCLGEN FOR ACTIVITY TYPES */ 01950000
EXEC SQL INCLUDE DSN8MPPA; /* DCLGEN FOR PROJECT/ACTIVITIES */ 01960000
EXEC SQL INCLUDE DSN8MPEP; /* DCLGEN FOR PROJECT/STAFFING */ 01970000
EXEC SQL INCLUDE DSN8MPPR; /* DCLGEN FOR PROJ/RESP EMPLOYEE */ 01980000
EXEC SQL INCLUDE DSN8MPPD; /* DCLGEN FOR PROJ STRUCTURE DETAIL */ 01990000
EXEC SQL INCLUDE DSN8MPP2; /* DCLGEN FOR PROJ STRUCTURE DETAIL */ 02000000
EXEC SQL INCLUDE DSN8MPSA; /* DCLGEN FOR PROJ ACTIVITY LISTING */ 02010000
EXEC SQL INCLUDE DSN8MPS2; /* DCLGEN FOR PROJ ACTIVITY LISTING */ 02020000
EXEC SQL INCLUDE DSN8MPFP; /* DCLGEN FOR PROJECT-EMPLOYEE */ 02025000
EXEC SQL INCLUDE DSN8MPED; /* DCLGEN FOR EMPLOYEE-DEPT */ 02027000
/* PROGRAMMING TABLES */ 02030000
EXEC SQL INCLUDE DSN8MPOV; /* DCLGEN FOR OPTION VALIDATION */ 02040000
EXEC SQL INCLUDE DSN8MPDT; /* DCLGEN FOR DISPLAY TEXT TABLE */ 02050000
02060000
/* CURSORS */ 02070000
EXEC SQL INCLUDE DSN8MPPL; /* MAJSYS P - SEC SEL FOR PS, AL, PR*/ 02080000
EXEC SQL INCLUDE DSN8MPES; /* MAJSYS P - SEC SEL FOR AE */ 02090000
EXEC SQL INCLUDE DSN8MPAS; /* MAJSYS P - SEC SEL FOR AS */ 02100000
EXEC SQL INCLUDE DSN8MPPE; /* MAJSYS P - DETAIL FOR PS */ 02110000
EXEC SQL INCLUDE DSN8MPSL; /* MAJSYS P - DETAIL FOR AL */ 02120000
EXEC SQL INCLUDE DSN8MPDH; /* PROG TABLES - DISPLAY HEADINGS */ 02130000
02140000
/*********************************************************/ 02150000
/* SQL RETURN CODE HANDLING */ 02160000
/*********************************************************/ 02170000
02180000
EXEC SQL WHENEVER SQLERROR GO TO DB_ERROR; 02190000
EXEC SQL WHENEVER SQLWARNING GO TO DB_ERROR; 02200000
02210000
0 DCL UNSPEC BUILTIN; 02220000
DCL VERIFY BUILTIN; 02230000
02240000
DCL LENGTH BUILTIN; 02250000
DCL DSN8MPG EXTERNAL ENTRY; 02260000
02270000
/****************************************************************/ 02280000
/* ** DCLGENS AND INITIALIZATIONS */ 02290000
/****************************************************************/ 02300000
02310000
DCL STRING BUILTIN; 02320000
DCL J FIXED BIN; 02330000
DCL SAVE_CONVID CHAR(16); 02340000
/* DECLARE CONTROL FLAGS */ 02350000
DCL ( SENDBIT, ENDBIT, NEXTBIT, ON, OFF) BIT(1); 02360000
02370000
/*******************************************/ 02380000
/* FIELDS SENT TO MESSAGE ROUTINE */ 02390000
/*******************************************/ 02400000
02410000
DCL MODULE CHAR (07) INIT('DSN8CP8'); 02420000
DCL OUTMSG CHAR (69); 02430000
02440000
/*********************************************************/ 02450000
/* INITIALIZATIONS */ 02460000
/*********************************************************/ 02470000
02480000
DSN8_MODULE_NAME.MAJOR='DSN8CP8'; 02490000
DSN8_MODULE_NAME.MINOR=' '; 02500000
02510000
/***********************************************************/ 02520000
/* DETERMINES WHETHER NEW REQUEST OR NOT */ 02530000
/***********************************************************/ 02540000
02550000
/* IF 'NO ANSWER POSSIBLE' SET BY DETAIL PROCESSOR THEN FORCE A */ 02560000
/* NEW REQUEST. */ 02570000
02580000
IF PCONVSTA.PREV = ' ' THEN 02590000
COMPARM.NEWREQ = 'Y'; 02600000
02610000
/* IF ANSWER TO SECONDARY SELECTION THEN DETERMINE IF REALLY A */ 02620000
/* NEW REQUEST. IT WILL BE CONSIDERED A NEW REQUEST IF POSITIONS*/ 02630000
/* 3 TO 60 ARE NOT ALL BLANK AND THE ENTERED DATA IF NOT 'NEXT' */ 02640000
02650000
IF COMPARM.NEWREQ = 'N' & PCONVSTA.PREV = 'S' & 02660000
SUBSTR(COMPARM.DATA,3,58) ^= ' ' & 02670000
COMPARM.DATA ^= 'NEXT' 02680000
THEN COMPARM.NEWREQ = 'Y'; 02690000
02700000
/***********************************************************/ 02710000
/* IF NEW REQUEST AND ACTION IS 'ADD' THEN */ 02720000
/* CALL DETAIL PROCESSOR */ 02730000
/* ELSE CALL SECONDARY SELECTION */ 02740000
/***********************************************************/ 02750000
IF COMPARM.NEWREQ='Y' THEN 02760000
DO; 02770000
02780000
IF COMPARM.ACTION = 'A' THEN 02790000
DO; 02800000
CALL DETAIL; /* CALL DETAIL PROCESSOR*/ 02810000
GO TO EXIT; /* RETURN */ 02820000
END; 02830000
02840000
CALL SECSEL; /* CALL SECONDARY SELECTION */ 02850000
02860000
IF MAXSEL = 1 THEN /* IF NO. OF CHOICES = 1 */ 02870000
CALL DETAIL; /* CALL DETAIL PROCESSOR */ 02880000
GO TO EXIT; /* RETURN */ 02890000
END; 02900000
02910000
/* IF ANSWER TO SECONDARY SELECTION AND NOT A SCROLLING REQUEST */ 02920000
/* (INPUT NOT EQUAL TO 'NEXT') AND THE POSITIONS */ 02930000
/* 1 TO 2 IN INPUT DATA FIELD NOT EQUAL TO POSITIONS 1 TO 2 */ 02940000
/* IN OUTPUT DATA FIELD THEN SEE IF VALID SELECTION. */ 02950000
02960000
/***********************************************************/ 02970000
/* DETERMINES IF VALID SELECTION NUMBER */ 02980000
/***********************************************************/ 02990000
03000000
IF PCONVSTA.PREV ^= 'S' THEN GO TO IP201; /* TO SECONDARY SEL */ 03010000
03020000
IF PCONVSTA.MAXSEL < 1 THEN GO TO IP201; /* NO VALID CHOICES */ 03030000
03040000
IF COMPARM.DATA = 'NEXT' THEN GO TO IP201; /* SCROOL REQUEST*/ 03050000
03060000
IF SUBSTR(COMPARM.DATA,1,2) = SUBSTR(PCONVSTA.DATA,1,2) 03070000
THEN GO TO IP201; /* NO CHANGE ON INPUT SCREEN */ 03080000
03090000
IF SUBSTR(COMPARM.DATA,2,1) = ' ' THEN /* SECOND CHAR BLANK */ 03100000
IF VERIFY(SUBSTR(COMPARM.DATA,1,1),'123456789') = 0 THEN 03110000
DO; 03120000
SUBSTR(COMPARM.DATA,2,1) = SUBSTR(COMPARM.DATA,1,1); 03130000
SUBSTR(COMPARM.DATA,1,1) = '0'; 03140000
END; 03150000
03160000
IF VERIFY(SUBSTR(COMPARM.DATA,1,2),'0123456789') = 0 & 03170000
SUBSTR(COMPARM.DATA,1,2) > '00' THEN 03180000
IF DATAP <= PCONVSTA.MAXSEL THEN 03190000
DO; 03200000
03210000
COMPARM.NEWREQ = 'Y'; /* TELL DETAIL PROCESSOR NEW REQ */ 03220000
CALL DETAIL; /* CALL DETAIL PROCESSOR */ 03230000
GO TO EXIT; /* RETURN */ 03240000
END; 03250000
03260000
/* INVALID SELECTION NO. */ 03270000
CALL DSN8MPG (MODULE, '072E', OUTMSG); /* PRINT ERROR MSG */ 03280000
PCONVSTA.MSG = OUTMSG; 03290000
PCONVSTA.PREV = ' '; /* NOT SEC SELECTION, ERROR */ 03300000
03310000
GO TO EXIT; /* RETURN */ 03320000
03330000
/***********************************************************/ 03340000
/* DETERMINES WHETHER SECONDARY SELECTION OR DETAIL */ 03350000
/***********************************************************/ 03360000
/* MUST BE ANY ANSWER TO EITHER SEC SEL OR DETAIL */ 03370000
IP201: 03380000
IF PCONVSTA.PREV = 'S' THEN 03390000
DO; 03400000
CALL SECSEL; /* CALL SECONDARY SELECTION*/ 03410000
GO TO EXIT; /* RETURN */ 03420000
END; 03430000
03440000
IF PCONVSTA.PREV = 'D' THEN 03450000
DO; 03460000
CALL DETAIL; /* CALL DETAIL PROCESSOR */ 03470000
GO TO EXIT; /* RETURN */ 03480000
END; 03490000
03500000
/* LOGIC ERROR */ 03510000
/* PRINT ERROR MESSAGE */ 03520000
CALL DSN8MPG (MODULE, '066E', OUTMSG); 03530000
PCONVSTA.MSG= OUTMSG; 03540000
PCONVSTA.PREV = ' '; /* NOT SEC SELECTION, ERROR */ 03550000
GO TO EXIT; /* RETURN */ 03560000
03570000
EXEC SQL INCLUDE DSN8MPXX; /* HANDLES SQL ERRORS */ 03580000
GO TO EXIT; /* RETURN */ 03590000
03600000
/************************************************************/ 03610000
/* CALLS SECONDARY SELECTION AND RETURNS TO SQL 1 */ 03620000
/* NOTE - SAME SECONDARY SELECTION MODULE FOR DS, DE AND EM */ 03630000
/************************************************************/ 03640000
03650000
SECSEL: PROC; /* CALL APPROPRIATE SECONDARY SELECTION MODULE */ 03660000
PCONVSTA.LASTSCR = 'DSN8001'; /* SET FOR GENERAL MAP */ 03670000
03680000
IF COMPARM.OBJFLD='AE' | /*ACTIVITY ESTIMATE */ 03690002
COMPARM.OBJFLD='AL' | /*PROJECT ACTIVITY LISTING */ 03700002
COMPARM.OBJFLD='AS' | /*INDIVIDUAL PROJECT STAFFING*/ 03710002
COMPARM.OBJFLD='PR' | /*INDIVIDUAL PROJECT PROCESSING*/ 03720002
COMPARM.OBJFLD='PS' THEN /*PROJECT STRUCTURE */ 03730002
DO; 03740000
CALL DSN8MPM; /*SECONDARY SELECTION FOR PROJECTS*/ 03750000
RETURN; /*RETURN */ 03760000
END; 03770000
03780000
/*MISSING SECONDARY SEL*/ 03790000
/*PRINT ERROR MESSAGE */ 03800000
CALL DSN8MPG (MODULE, '062E', OUTMSG); 03810000
PCONVSTA.MSG= OUTMSG; 03820000
PCONVSTA.PREV = ' '; /* NOT SEC SELECTION, ERROR */ 03830000
GO TO EXIT; /*RETURN */ 03840000
END SECSEL; 03850000
03860000
/**********************************************************/ 03870000
/* CALLS DETAIL PROCESSOR AND RETURNS TO SQL 1 */ 03880000
/**********************************************************/ 03890000
03900000
DETAIL: PROC; /* CALL APPROPRIATE DETAIL MODULE */ 03910000
PCONVSTA.LASTSCR = 'DSN8002'; /* SET FOR DETAIL MAP */ 03920000
03930000
IF COMPARM.OBJFLD='PS' THEN 03940002
DO; 03950000
CALL DSN8MPV; /* PROJECT STRUCTURE DETAIL */ 03960000
RETURN; 03970000
END; 03980000
03990000
IF COMPARM.OBJFLD='AL' THEN 04000002
DO; 04010000
CALL DSN8MPT; /* PROJECT ACTIVITY LIST */ 04020000
RETURN; 04030000
END; 04040000
04050000
IF COMPARM.OBJFLD='PR' THEN 04060002
DO; 04070000
CALL DSN8MPZ; /* PROJECT DETAIL */ 04080000
RETURN; 04090000
END; 04100000
04110000
IF COMPARM.OBJFLD='AE' THEN 04120002
DO; 04130000
CALL DSN8MPX; /* ACTIVITY ESTIMATE DETAIL */ 04140000
RETURN; 04150000
END; 04160000
04170000
IF COMPARM.OBJFLD='AS' THEN 04180002
DO; 04190000
CALL DSN8MPW; /* ACTIVITY STAFFING DETAIL */ 04200000
RETURN; 04210000
END; 04220000
04230000
/*MISSING DETAIL MODULE*/ 04240000
/*PRINT ERROR MESSAGE */ 04250000
CALL DSN8MPG (MODULE, '062E', OUTMSG); 04260000
PCONVSTA.MSG= OUTMSG; 04270000
PCONVSTA.PREV = ' '; /* NOT SEC SELECTION, ERROR */ 04280000
GO TO EXIT; 04290000
END DETAIL; 04300000
04310000
/*RETURNS TO SQL 1*/ 04320000
EXIT: EXEC CICS RETURN; 04330000
/* PROJECTS */ 04340000
EXEC SQL INCLUDE DSN8MPM; /* SEC SEL - PROJECTS */ 04350000
EXEC SQL INCLUDE DSN8MPT; /* DETAIL - PROJ ACT LISTING*/ 04360000
EXEC SQL INCLUDE DSN8MPV; /* DETAIL - PROJ STRUCTURE */ 04370000
EXEC SQL INCLUDE DSN8MPW; /* DETAIL - INDIVID STAFFING*/ 04380000
EXEC SQL INCLUDE DSN8MPX; /* DETAIL - INDIVID ACTIVITY*/ 04390000
EXEC SQL INCLUDE DSN8MPZ; /* DETAIL - INDIVIDUAL PROJ */ 04400000
END DSN8CP8; 04410000