DSN8IP8

ROUTER FOR SECONDARY SELECTION AND/OR DETAIL PROCESSIN CALLS SECONDARY SELECTION MODULES DSN8MPM CALLS DETAIL MODULES DSN8MPT DSN8MPV DSN8MPW DSN8MPX DSN8MPZ CALLED BY DSN8IP7 (SQL1) .

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