          PROCEDURE MGRB2164                                                    
                    using &PARAMETER    as String (512)                         
                                                                                
***********************************************************************         
* PROCEDURE:        MGRB2164                                          *         
* AUTHOR:           JMC                                               *         
* DATE CREATED:     June 8, 1993                                      *         
* PURPOSE:          Executed to Submit MGRB2163 to Background         *         
*---------------------------------------------------------------------*         
*                            MODIFICATIONS                            *         
*                           ===============                           *         
* Version  Date     Who Why                                           *         
* -------- -------- --- --------------------------------------------- *         
* 00.00.00 06/08/93 JMC Original Version                              *         
*                                                                     *         
*---------------------------------------------------------------------*         
* &PARAMETER Format:                                                  *         
*                                                                     *         
* Pos Size Description                                                *         
* --- ---- ---------------------------------------------------------- *         
*   1   6  Job to Execute Volume                                      *         
*   7   8  Job to Execute Library                                     *         
*  15   8  Job to Execute File                                        *         
*  23   4  Job to Execute Message Port Name                           *         
*  27   1  Background Execution Class                                 *         
*  28   8  Background Job Name                                        *         
*  36 477  Unused                                                     *         
*                                                                     *         
***********************************************************************         
          DECLARE &VERSION      as String (08) Initial "00.00.00"               
                                                                                
          DECLARE &USER_ID      as String (08) Initial " "                      
          DECLARE &R_C_ADD      as Integer     Initial 0                        
          DECLARE &R_C          as Integer     Initial 0                        
          DECLARE &ERROR_OK     as String (01) Initial "N"                      
          DECLARE &ERR_MSG      as String (79) Initial " "                      
          DECLARE &EXEC_VOL     as String (06) Initial &PARAMETER(1,6)          
          DECLARE &EXEC_LIB     as String (08) Initial &PARAMETER(7,8)          
          DECLARE &EXEC_FILE    as String (08) Initial &PARAMETER(15,8)         
          DECLARE &EXEC_PORT    as String (04) Initial &PARAMETER(23,4)         
          DECLARE &EXEC_CLASS   as String (01) Initial &PARAMETER(27,1)         
          DECLARE &EXEC_JOB     as String (08) Initial &PARAMETER(28,8)         
          DECLARE &PROG_VOL     as String (06) Initial " "                      
          DECLARE &PROG_LIB     as String (08) Initial " "                      
                                                                                
          EXTRACT &USER_ID  = USERID,                                           
                  &PROG_LIB = PROGLIB,                                          
                  &PROG_VOL = PROGVOL                                           
                                                                                
***********************************************************************         
* STEP01 -- get Log File Location                                     *         
***********************************************************************         
STEP01:   RUN MU5350                                                            
              ERROR  EXIT STEP01y                                               
              CANCEL EXIT STEP01x                                               
               ENTER CATGET     CATNAME = MG21621I                              
     MG21621I: ENTER LOCATION                                                   
               ENTER CATGET     CATNAME = MG21641C                              
     MG21641C: ENTER LOCATION                                                   
               ENTER CATGET     CATNAME = FPSURPTS                              
     FPSURPTS: ENTER LOCATION                                                   
               ENTER CATGET     CATNAME = FPSUPROC                              
     FPSUPROC: ENTER LOCATION                                                   
               ENTER CATGET     CATNAME = FPSULOAD                              
     FPSULOAD: ENTER LOCATION                                                   
               ENTER CATGET     CATNAME = VSSUBS                                
       VSSUBS: ENTER LOCATION                                                   
               ENTER CATGET                                                     
                                                                                
          IF STEP01 = 0 GOTO STEP01z                                            
                                                                                
STEP01w:  ASSIGN &R_C_ADD = 1000                                                
          ASSIGN &R_C     = STEP01                                              
          ASSIGN &ERR_MSG = "One or more Catalog Entries is invalid"            
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP01x:  ASSIGN &R_C_ADD = 1000                                                
          ASSIGN &R_C     = 98                                                  
          ASSIGN &ERR_MSG = "MU5350 Cancelled"                                  
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP01y:  ASSIGN &R_C_ADD = 1000                                                
          ASSIGN &R_C     = 99                                                  
          ASSIGN &ERR_MSG = "MU5350 ERROR Exit Taken"                           
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP01z:  [ continue ]                                                          
                                                                                
***********************************************************************         
* STEP03 -- Verify Defaults                                           *         
***********************************************************************         
STEP03:   IF &EXEC_VOL = "      "   ASSIGN &EXEC_VOL = &PROG_VOL                
          IF &EXEC_LIB = "        " ASSIGN &EXEC_LIB = &PROG_LIB                
                                                                                
          ASSIGN &PARAMETER(1,6) = &EXEC_VOL                                    
          ASSIGN &PARAMETER(7,8) = &EXEC_LIB                                    
                                                                                
          IF EXISTS FILE &EXEC_FILE in &EXEC_LIB on &EXEC_VOL                   
             GOTO STEP03b                                                       
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 1                                                   
          ASSIGN &ERR_MSG = "Cannot Locate Procedure"                           
          CALL ERROR                                                            
          GOTO STEP03                                                           
                                                                                
STEP03b:  IF EXISTS FILE MESSAGE in (VSSUBS.LIBRARY) on (VSSUBS.VOLUME)         
               GOTO STEP03c                                                     
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 2                                                   
          ASSIGN &ERR_MSG = "Cannot Locate MESSAGE VSSUB " !!                   
                            "using Catalog Entry VSSUB"                         
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP03c:  IF EXISTS FILE MGRB2163 in (FPSUPROC.LIBRARY)                         
                                  on (FPSUPROC.VOLUME) GOTO STEP03d             
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 3                                                   
          ASSIGN &ERR_MSG = "Cannot Locate Procedure MGRB2163 " !!              
                            "using Catalog Entry FPSUPROC"                      
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP03d:  IF EXISTS FILE MG2164 in (FPSULOAD.LIBRARY)                           
                                on (FPSULOAD.VOLUME) GOTO STEP03e               
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 4                                                   
          ASSIGN &ERR_MSG = "Cannot Locate Program MG2164 " !!                  
                            "using Catalog Entry FPSULOAD"                      
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP03e:  IF EXISTS FILE MG2161 in (FPSULOAD.LIBRARY)                           
                                on (FPSULOAD.VOLUME) GOTO STEP03f               
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 5                                                   
          ASSIGN &ERR_MSG = "Cannot Locate Program MG2161 " !!                  
                            "using Catalog Entry FPSULOAD"                      
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP03f:  IF EXISTS FILE MG2160 in (FPSULOAD.LIBRARY)                           
                                on (FPSULOAD.VOLUME) GOTO STEP03g               
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 6                                                   
          ASSIGN &ERR_MSG = "Cannot Locate Program MG2160 " !!                  
                            "using Catalog Entry FPSULOAD"                      
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP03g:  IF EXISTS FILE MG21621I in (MG21621I.LIBRARY)                         
                                  on (MG21621I.VOLUME) GOTO STEP03h             
                                                                                
          ASSIGN &R_C_ADD = 3000                                                
          ASSIGN &R_C     = 7                                                   
          ASSIGN &ERR_MSG = "Cannot Locate File MG21621I " !!                   
                            "using Catalog Entry MG21621I"                      
          CALL ERROR                                                            
          GOTO STEP01                                                           
                                                                                
STEP03h:  [ continue ]                                                          
                                                                                
***********************************************************************         
* STEP10 -- Submit Procedure for execution                            *         
***********************************************************************         
STEP10:   SUBMIT MGRB2163 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)            
                 as &EXEC_JOB                                                   
                 USING &PARAMETER,                                              
                 CLASS       = &EXEC_CLASS,                                     
                 STATUS      = RUN,                                             
                 ENVIRONMENT = YES                                              
                                                                                
          IF STEP10 = 0 GOTO STEP10z                                            
                                                                                
STEP10b:  ASSIGN &R_C     = STEP10                                              
          ASSIGN &R_C_ADD = 10000                                               
          ASSIGN &ERR_MSG = "Error Submitting MGRB2163, " !!                    
                            " SUBMIT R/C = "  !! &R_C                           
          CALL ERROR                                                            
          GOTO STEP10                                                           
                                                                                
STEP10z:  [ continue ]                                                          
                                                                                
***********************************************************************         
* EOJ -- End of Job                                                   *         
***********************************************************************         
EOJ:      RETURN                                                                
                                                                                
***********************************************************************         
* ERROR -- Display Error Screen                                       *         
***********************************************************************         
ERROR:    IF &ERROR_OK = "Y" GOTO ERRORa                                        
                                                                                
          DECLARE &LOPROUL      as String (01) Initial &BYTE(172)               
          DECLARE &FLPRO        as String (01) Initial &BYTE(148)               
          DECLARE &HIPRO        as String (01) Initial &BYTE(132)               
          DECLARE &LOPRO        as String (01) Initial &BYTE(140)               
          DECLARE &Pf,                                                          
                  &CURSOR_COL,                                                  
                  &CURSOR_ROW           as Integer     Initial 0                
          DECLARE &MESSAGE,                                                     
                  &SPACE_79             as String (79) Initial " "              
          DECLARE &ALARM                as String (03) Initial "NO "            
          DECLARE &FORM                 as String (06) Initial " "              
          DECLARE &AM_PM,                                                       
                  &PF_LITERAL           as String (02) Initial " "              
          DECLARE &SCREEN_TIME          as String (05) Initial " "              
                                                                                
          DECLARE &TITLE_01         as String (79) Initial                      
                  "MGRB2164         " !!                                        
                  "W A N G    L A B O R A T O R I E S,    I N C." !!            
                  "       " !! &VERSION !! "  "                                 
          DECLARE &TITLE_02         as String (79) Initial                      
                  "                           " !!                              
                  "Background Monitor Utility" !!                               
                  "                          "                                  
          DECLARE &TITLE_03         as String (79) Initial                      
                  "                            " !!                             
                  "Procedure Submit Routine"        !!                          
                  "                           "                                 
                                                                                
***** Declares for the Subroutine "LIBEDIT"                                     
         DECLARE &LIBEDIT_LIB        as String (08) Initial "        "          
         DECLARE &LIBEDIT_CHAR       as String (40) Initial                     
                 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$ "                     
         DECLARE &LIBEDIT_LEN        as Integer     Initial 0                   
                                                                                
***** Declares for the Subroutine "VOLEDIT"                                     
         DECLARE &VOLEDIT_VOL       as String (06) Initial "      "             
         DECLARE &VOLEDIT_CHAR      as String (40) Initial                      
                 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$ "                     
         DECLARE &VOLEDIT_LEN       as Integer     Initial 0                    
                                                                                
*---------------------------------------------------------------------*         
* ERRORa -- Show and process the screen                               *         
*---------------------------------------------------------------------*         
ERRORa:   ASSIGN  &FORM          = &TIME                                        
          ASSIGN  &Pf            = &FORM(1,2)                                   
          IF      &Pf            > 12 GOTO ERRORb                               
          ASSIGN  &AM_PM         = "am"                                         
          IF      &Pf            = 12 ASSIGN &AM_PM = "pm"                      
          GOTO    ERRORc                                                        
                                                                                
ERRORb:   ASSIGN &Pf         = &Pf - 12                                         
          ASSIGN &FORM(1,2)  = &Pf                                              
          ASSIGN &AM_PM      = "pm"                                             
                                                                                
ERRORc:   IF    &Pf          < 10 ASSIGN &FORM(1,2) = " " !! &Pf                
          ASSIGN  &TITLE_02(1,6)  = "STEP05"                                    
          ASSIGN  &TITLE_03(70,7) = &FORM(1,2) !! ":" !! &FORM(3,2) !!          
                                    &AM_PM                                      
                                                                                
          MESSAGE ERASE = YES ROW 1                                             
               DIM &TITLE_01;                                                   
               DIM &TITLE_02;                                                   
               DIM &TITLE_03;;;                                                 
               CENTER                                                           
                   "Attemt to submit " !!                                       
                   &EXEC_VOL(1,*)  !! "." !!                                    
                   &EXEC_LIB(1,*)  !! "." !!                                    
                   &EXEC_FILE(1,*) !! " " !!                                    
                   "to Background FAILED.";;;                                   
               CENTER BRIGHT LINE &ERR_MSG(1,*)                                 
                                                                                
          MESSAGE ERASE = NO ROW 22                                             
               BRIGHT &MESSAGE;                                                 
               LINE   &SPACE_79;                                                
               DIM    "(ENTER) Try again; " !!                                  
                      "(15) Display Procedure, (16) Abort"                      
                                                                                
          PROMPT ERASE = NO,           ALARM  = &ALARM,                         
                 CURROW = &CURSOR_ROW, CURCOL = &CURSOR_COL,                    
                 PFKEY = &Pf           ROW 12                                   
               DIM "                    "  !! &LOPROUL !!                       
                   "File    "  !! &LOPROUL !!                                   
                   "Library "  !! &LOPROUL !!                                   
                   "Volume"    !! &LOPROUL !!                                   
                   "Port"      !! &LOPROUL !!                                   
                   "Job Name"  !! &LOPROUL !!                                   
                   "Class"     !! &LOPRO;                                       
               DIM "   Submit procedure:",                                      
                    BRIGHT &EXEC_FILE,                                          
                    BRIGHT UPPER &EXEC_LIB,                                     
                    BRIGHT UPPER &EXEC_VOL,                                     
                    BRIGHT &EXEC_PORT,                                          
                    BRIGHT &EXEC_JOB, " ",                                      
                    BRIGHT &EXEC_CLASS                                          
                                                                                
                                                                                
          ASSIGN &MESSAGE = &SPACE_79                                           
          ASSIGN &ALARM   = "NO "                                               
                                                                                
          IF &Pf = 0  GOTO ERRORg                                               
          IF &Pf = 15 GOTO ERRORy                                               
          IF &Pf = 16 RETURN CODE = &R_C + &R_C_ADD                             
          ASSIGN &MESSAGE = "Invalid Pf-Key selected"                           
          GOTO   ERRORa                                                         
                                                                                
ERRORg:   ASSIGN &LIBEDIT_LIB = &EXEC_LIB                                       
          CALL   LIBEDIT                                                        
          IF     &LIBEDIT_LIB ne "        " GOTO ERRORh                         
          ASSIGN &MESSAGE = "'" !! &EXEC_LIB(1,*) !! "' " !!                    
                 "is an Invalid Library Name"                                   
          GOTO ERRORa                                                           
                                                                                
ERRORh:   ASSIGN &VOLEDIT_VOL = &EXEC_VOL                                       
          CALL   VOLEDIT                                                        
          IF     &VOLEDIT_VOL ne "        " GOTO ERRORi                         
          ASSIGN &MESSAGE = "'" !! &EXEC_VOL(1,*) !! "' " !!                    
                 "is an Invalid Volume Name"                                    
          GOTO ERRORa                                                           
                                                                                
ERRORi:   ASSIGN &PARAMETER(1,6) = &EXEC_VOL                                    
          ASSIGN &PARAMETER(7,8) = &EXEC_LIB                                    
          GOTO   ERRORz                                                         
                                                                                
ERRORy:   RUN DISPLAY                                                           
               ENTER INPUT      FILE     = &EXEC_FILE,                          
                                LIBRARY  = &EXEC_LIB,                           
                                VOLUME   = &EXEC_VOL                            
          ASSIGN &MESSAGE = "Display Complete"                                  
          GOTO ERRORa                                                           
                                                                                
ERRORz:   END                                                                   
                                                                                
                                                                                
***********************************************************************         
* LIBEDIT -- Will Edit a Library                                      *         
***********************************************************************         
LIBEDIT: IF &LIBEDIT_LIB = "        " GOTO LIBEDIT9                             
                                                                                
         ASSIGN &LIBEDIT_LEN = &LENGTH(&LIBEDIT_LIB(1,*))                       
                                                                                
***** Library must not contain special characters                               
                                                                                
         IF &VERIFY(&LIBEDIT_LIB,&LIBEDIT_CHAR) NE 0                            
           THEN ASSIGN &LIBEDIT_LIB = "      "                                  
                                                                                
***** Library must not contain embedded blanks                                  
                                                                                
        IF &INDEX(&LIBEDIT_LIB," ") NE 0                                        
        IF &INDEX(&LIBEDIT_LIB," ") NE &LIBEDIT_LEN+1                           
           THEN ASSIGN &LIBEDIT_LIB = "      "                                  
                                                                                
LIBEDIT9: END                                                                   
                                                                                
***********************************************************************         
* VOLEDIT -- This subroutine will validate a volume name to make sure *         
*            there are no invalid characters in the name.             *         
*            If the volume name is invalid it will be set = spaces.   *         
***********************************************************************         
VOLEDIT: ASSIGN &VOLEDIT_LEN = &LENGTH(&VOLEDIT_VOL(1,*))                       
                                                                                
***** Volume name cannot contain special characters                             
                                                                                
         IF &VERIFY(&VOLEDIT_VOL,&VOLEDIT_CHAR) NE 0                            
           THEN ASSIGN &VOLEDIT_VOL = "      "                                  
                                                                                
***** Volume name must not contain embedded spaces                              
                                                                                
        IF &INDEX(&VOLEDIT_VOL," ") NE 0                                        
        IF &INDEX(&VOLEDIT_VOL," ") NE &VOLEDIT_LEN+1                           
           THEN ASSIGN &VOLEDIT_VOL = "      "                                  
                                                                                
END [  VOLEDIT   ]                                                              
                                                                                
                                                                                
*************########### End Procedure MGRB2164 ###########************         
