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