          PROCEDURE MGRB2005                                                    
                    using &MG2005_APPLICATION  as String (06),                  
                          &MG2005_PROCEDURE    as String (08),                  
                          &MG2005_RETURN_CODE  as Integer,                      
                          &MG2005_RERUN_SW     as String (01),                  
                          &MG2005_RESTORE_SW   as String (01)                   
                                                                                
***********************************************************************         
* PROCEDURE:  MGRB2005                                                *         
* AUTHOR:     JMC                                                     *         
* TITLE:      Return Code Display Utility                             *         
* REMARKS:    This procedure is executed to display to the operator   *         
*             a return code of a procedure that failed.               *         
*             Along with the return code it will also display the     *         
*             Procedure that failed, the reason if failed and the     *         
*             action the operator should take.                        *         
*             In order to execute the following is needed:            *         
*             1. &MG2005_APPLICATION:                                 *         
*                This is a 6 byte application code, it is used        *         
*                to get the location of the specific return code      *         
*                file for that application.                           *         
*             2. &MG2005_PROCEDURE:                                   *         
*                This is the name of the procedure that failed.       *         
*             3. &MG2005_RETURN_CODE:                                 *         
*                This is the Return Code of the Procedure that        *         
*                failed.                                              *         
*                                                                     *         
*             2 switches will then be passed back to the calling      *         
*             procedure:                                              *         
*                1. &MG2005_RERUN_SW, "Y" = the operator selected     *         
*                   the Pf-Key to Rerun the failed procedure,         *         
*                   "N" = the operator selected the Pf-key that       *         
*                   indicated the failed procedure will not be        *         
*                   run again.                                        *         
*                2. &MG2005_RESTORE_SW, "Y" = for this Return Code    *         
*                   Files MUST be restored.  "N" = For this           *         
*                   Return Code Files do NOT have to be Restored.     *         
*            The Procedure & Return Code will also be logged into     *         
*            file MG20051C.                                           *         
*            NOTE: If &MG2005_RETURN_CODE = zero the this procedure   *         
*                  assumes that the operator canceled the procedure   *         
*                  or program that failed by using "HELP" & "PF-16".  *         
*                  ie: Cancel Exit taken by the failed module.        *         
*                                                                     *         
*---------------------------------------------------------------------*         
*                            MODIFICATIONS                            *         
* Version  Who   Date   Why                                           *         
* -------- --- -------- --------------------------------------------- *         
* 00.03.01 JMC 11/23/94 Fixed Error Message for MGRB2010              *         
* 00.03.00 JMC 08/23/93 Added MG2006 for Background Processing        *         
* 00.02.00 JMC 05/14/91 Prompt operator to mount volume of files      *         
* 00.01.00 JMC 07/12/87 Corrected Error Exit                          *         
* 00.00.00 JMC 03/12/87 Original Version                              *         
*                                                                     *         
***********************************************************************         
                                                                                
         DECLARE &VERSION         as String (08) Initial "00.03.01"             
                                                                                
         DECLARE &PF              as Integer     Initial 00                     
         DECLARE &CAT_ENTRY       as String (16) Initial " "                    
         DECLARE &RETURN_CODE_S   as String (11) Initial " "                    
         DECLARE &CANCEL_SW       as String (01) Initial " "                    
         DECLARE &USER_ID         as String (03) Initial " "                    
         DECLARE &MESSAGE         as String (50) Initial " "                    
         DECLARE &MOUNT_VOLUME    as String (06) Initial " "                    
         DECLARE &WS              as Integer     Initial 0                      
                                                                                
***** PROMPT variables                                                          
          DECLARE &PROMPT_TITLE_01         as String (79) Initial               
                  "MGRB2005                 WANG LABORATORI"  !!                
                  "ES INCORPORATED              " !! &VERSION !! "  "           
          DECLARE &PROMPT_TITLE_02         as String (79) Initial               
                  "                  MANUFACTURING MANAGEME"  !!                
                  "NT INFORMATION SYSTEMS                 "                     
          DECLARE &PROMPT_TITLE_03         as String (79) Initial               
                  "                         Return Code Di"  !!                 
                  "splay Utility                         "                      
                                                                                
***********************************************************************         
* STEP00 -- Initial extracts                                          *         
***********************************************************************         
STEP00:  EXTRACT &USER_ID = USERID,                                             
                 &WS      = WS                                                  
                                                                                
***********************************************************************         
* STEP01 -- Get procedure/program location                            *         
***********************************************************************         
STEP01:   RUN MU5350                                                            
              CANCEL EXIT is STEP01x                                            
               ENTER CATGET    CATNAME = FPSULOAD                               
     FPSULOAD: ENTER LOCATION                                                   
               ENTER CATGET    CATNAME = FPSUPROC                               
     FPSUPROC: ENTER LOCATION                                                   
               ENTER CATGET                                                     
                                                                                
          IF STEP01 ne 0 GOTO STEP01c                                           
                                                                                
          ASSIGN &MOUNT_VOLUME = (FPSULOAD.VOLUME)  CALL MOUNT                  
          ASSIGN &MOUNT_VOLUME = (FPSUPROC.VOLUME)  CALL MOUNT                  
          GOTO STEP01z                                                          
                                                                                
STEP01c:  ASSIGN &MESSAGE =                                                     
                 "MU5350 could not get the location of prog/procs"              
          CALL BADCAT                                                           
          GOTO EOJ                                                              
                                                                                
STEP01x:  CALL CANCAT                                                           
          GOTO STEP01                                                           
                                                                                
STEP01z:  CALL GETCAT                                                           
                                                                                
***********************************************************************         
* STEP05 -- Get Locations of Files to use                             *         
***********************************************************************         
STEP05:   IF &CAT_ENTRY = "                " GOTO STEP05g                       
                                                                                
STEP05a:  RUN MU5350                                                            
              CANCEL EXIT is STEP05x                                            
               ENTER CATGET    CATNAME = &CAT_ENTRY                             
     MG20011I: ENTER LOCATION                                                   
               ENTER CATGET    CATNAME = MG20051C                               
     MG20051C: ENTER LOCATION                                                   
               ENTER CATGET                                                     
                                                                                
         IF STEP05a ne 0 GOTO STEP05f                                           
                                                                                
          ASSIGN &MOUNT_VOLUME = (MG20011I.VOLUME)  CALL MOUNT                  
          ASSIGN &MOUNT_VOLUME = (MG20051C.VOLUME)  CALL MOUNT                  
                                                                                
STEP05e: IF EXISTS FILE (MG20011I) GOTO STEP05h                                 
         ASSIGN &MESSAGE =                                                      
                "The Return Code file for this appl. does not exist"            
         CALL BADCAT                                                            
         GOTO EOJ                                                               
                                                                                
STEP05f: ASSIGN &MESSAGE =                                                      
                "MU5350 could not get the location of the files"                
         CALL BADCAT                                                            
         GOTO EOJ                                                               
                                                                                
STEP05g: ASSIGN &MESSAGE =                                                      
                "MGRB2010 was unable to get the correct cat entry"              
         CALL BADCAT                                                            
         GOTO EOJ                                                               
                                                                                
STEP05h: IF EXISTS VOLUME (MG20051C.VOLUME) GOTO STEP05z                        
         ASSIGN &MESSAGE =                                                      
                "Volume for LOG file for this appl. does not exist"             
         CALL BADCAT                                                            
         GOTO EOJ                                                               
                                                                                
STEP05x:  CALL CANCAT                                                           
          GOTO STEP05                                                           
                                                                                
STEP05z:  [ continue ]                                                          
                                                                                
***********************************************************************         
* STEP09: Will Decide which step to execute                           *         
*         If the operator canceled the program/procedure then         *         
*         STEP10 will be skipped.                                     *         
***********************************************************************         
STEP09:  ASSIGN &CANCEL_SW          = "N"                                       
         IF     &MG2005_RETURN_CODE = 0                                         
                ASSIGN &CANCEL_SW   = "Y"                                       
                                                                                
         IF     &CANCEL_SW        = "Y" GOTO STEP20  [ Opr Cancelled ]          
                                                                                
***********************************************************************         
* STEP10: Will Convert an Integer to a String when a procedure        *         
*         abended.                                                    *         
***********************************************************************         
STEP10:  ASSIGN &RETURN_CODE_S        = &MG2005_RETURN_CODE                     
         IF &MG2005_RETURN_CODE < 10000000000                                   
               ASSIGN &RETURN_CODE_S        = "0" !!                            
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 1000000000                                    
               ASSIGN &RETURN_CODE_S        = "00" !!                           
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 100000000                                     
               ASSIGN &RETURN_CODE_S        = "000" !!                          
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 10000000                                      
               ASSIGN &RETURN_CODE_S        = "0000" !!                         
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 1000000                                       
               ASSIGN &RETURN_CODE_S        = "00000" !!                        
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 100000                                        
               ASSIGN &RETURN_CODE_S        = "000000" !!                       
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 10000                                         
               ASSIGN &RETURN_CODE_S        = "0000000" !!                      
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 1000                                          
               ASSIGN &RETURN_CODE_S        = "00000000" !!                     
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 100                                           
               ASSIGN &RETURN_CODE_S        = "000000000" !!                    
                      &MG2005_RETURN_CODE                                       
         IF &MG2005_RETURN_CODE < 10                                            
               ASSIGN &RETURN_CODE_S        = "0000000000" !!                   
                      &MG2005_RETURN_CODE                                       
                                                                                
***********************************************************************         
* STEP20: Will Run MG2005, to Prompt the Operator                     *         
***********************************************************************         
STEP20:   IF &WS < 0 GOTO STEP21                                                
                                                                                
STEP20a:  RUN MG2005 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)                 
              using &MG2005_APPLICATION,                                        
                    &MG2005_PROCEDURE,                                          
                    &RETURN_CODE_S,                                             
                    &CANCEL_SW,                                                 
                    &USER_ID,                                                   
                    &MG2005_RERUN_SW,                                           
                    &MG2005_RESTORE_SW                                          
              CANCEL EXIT is STEP09                                             
              ERROR  EXIT is STEP20c                                            
               ENTER MG20011I   (MG20011I)                                      
               ENTER MG20051C   FILE     = (MG20051C.FILE),                     
                                LIBRARY  = (MG20051C.LIBRARY),                  
                                VOLUME   = (MG20051C.VOLUME),                   
                                FILECLAS = " ",                                 
                                RECORDS  = 100000,                              
                                RELEASE  = NO                                   
                                                                                
          GOTO EOJ                                                              
                                                                                
STEP20c:  ASSIGN &MESSAGE = "Unable to find PROGRAM MG2005"                     
          CALL   BADCAT                                                         
                                                                                
***********************************************************************         
* STEP21: Will Run MG2006, log Return Code                            *         
***********************************************************************         
STEP21:   RUN MG2006 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)                 
              using &MG2005_APPLICATION,                                        
                    &MG2005_PROCEDURE,                                          
                    &RETURN_CODE_S,                                             
                    &CANCEL_SW,                                                 
                    &USER_ID,                                                   
                    &MG2005_RERUN_SW,                                           
                    &MG2005_RESTORE_SW                                          
              CANCEL EXIT is STEP09                                             
              ERROR  EXIT is STEP21c                                            
               ENTER MG20011I   (MG20011I)                                      
               ENTER MG20051C   FILE     = (MG20051C.FILE),                     
                                LIBRARY  = (MG20051C.LIBRARY),                  
                                VOLUME   = (MG20051C.VOLUME),                   
                                FILECLAS = " ",                                 
                                RECORDS  = 100000,                              
                                RELEASE  = NO                                   
                                                                                
          GOTO EOJ                                                              
                                                                                
STEP21c:  ASSIGN &MESSAGE = "Unable to find PROGRAM MG2005"                     
          ASSIGN &MG2005_RERUN_SW   = "N"                                       
          ASSIGN &MG2005_RESTORE_SW = "Y"                                       
                                                                                
***********************************************************************         
* End of Job                                                          *         
***********************************************************************         
EOJ: RETURN                                                                     
                                                                                
*#####################################################################*         
*                        S U B R O U T I N E S                        *         
*#####################################################################*         
***********************************************************************         
* GETCAT -- Will get the catalog entry for the Application.           *         
***********************************************************************         
GETCAT:  ASSIGN &CAT_ENTRY = "                "                                 
                                                                                
GETCAT1: RUN MGRB2010 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)                
             using &MG2005_APPLICATION, &CAT_ENTRY                              
               ERROR EXIT  is GETCAT2                                           
               CANCEL EXIT is GETCAT2                                           
                                                                                
         IF     &CAT_ENTRY ne "                " GOTO GETCAT9                   
                                                                                
GETCAT2: ASSIGN &CAT_ENTRY  = "                "                                
                                                                                
GETCAT9: END                                                                    
                                                                                
***********************************************************************         
* BADCAT -- Will Display the return when this procedure abended       *         
***********************************************************************         
BADCAT:   ASSIGN &PROMPT_TITLE_03(1,8) = "BADCAT  "                             
                                                                                
          IF &WS = 0 GOTO BADCATa                                               
          IF &WS > 0 GOTO BADCATa                                               
          ASSIGN &MG2005_RERUN_SW   = "N"                                       
          ASSIGN &MG2005_RESTORE_SW = "Y"                                       
          GOTO BADCATz                                                          
                                                                                
BADCATa:  MESSAGE ERASE = YES ROW 1                                             
               DIM &PROMPT_TITLE_01;                                            
               DIM &PROMPT_TITLE_02;                                            
               DIM &PROMPT_TITLE_03                                             
                                                                                
          PROMPT PFKEY = &PF, ERASE = NO  ROW 6                                 
               CENTER BRIGHT "Procedure",                                       
                      BRIGHT LINE &MG2005_PROCEDURE (1,*),                      
                      BRIGHT "ABENDED,",                                        
                      DIM    "Return Code =",                                   
                              &MG2005_RETURN_CODE;;                             
               BRIGHT "       " !!                                              
                      "Unable to get the description of this " !!               
                      "Return Code because:";                                   
               DIM    "           " !! &MESSAGE;;                               
               DIM    "      ",                                                 
                      LINE "Take the following Action:";                        
               DIM    "       " !!                                              
                      "    o  Take a picture of this screen (HELP " !!          
                      "& Pf-14).";                                              
               DIM    "       " !!                                              
                      "    o  Write Incident.";                                 
               DIM    "       " !!                                              
                      "    o  Attach the print out of this screen " !!          
                      "to the incident report. ";                               
               DIM    "       " !!                                              
                      "    o  Look up Return Code in the Documenta" !!          
                      "tion for this procedure.";                               
               DIM    "       " !!                                              
                      "    o  Notify Contact if required.";;                    
               DIM    "      ",                                                 
                      BRIGHT "Select:",                                         
                       "ENTER to Bypass " !! &MG2005_PROCEDURE;                 
               DIM    "              ",                                         
                      DIM    "Pf-01 to Rerun " !! &MG2005_PROCEDURE             
                                                                                
         ASSIGN &MG2005_RERUN_SW   = " "                                        
         IF     &PF                = 00  ASSIGN &MG2005_RERUN_SW = "N"          
         IF     &PF                = 01  ASSIGN &MG2005_RERUN_SW = "Y"          
         IF     &MG2005_RERUN_SW   = " " GOTO   BADCATa                         
         ASSIGN &MG2005_RESTORE_SW = "Y"                                        
                                                                                
BADCATz:  END [ BADCAT ]                                                        
                                                                                
***********************************************************************         
* CANCAT --Catalog was cancelled by operator                          *         
***********************************************************************         
CANCAT:   ASSIGN &PROMPT_TITLE_03(1,8) = "CANCAT  "                             
                                                                                
          IF &WS = 0 GOTO CANCATa                                               
          IF &WS > 0 GOTO CANCATa                                               
          ASSIGN &MG2005_RERUN_SW   = "N"                                       
          ASSIGN &MG2005_RESTORE_SW = "Y"                                       
          GOTO CANCATz                                                          
                                                                                
CANCATa:  MESSAGE ERASE = YES ROW 1                                             
               DIM &PROMPT_TITLE_01;                                            
               DIM &PROMPT_TITLE_02;                                            
               DIM &PROMPT_TITLE_03                                             
                                                                                
          PROMPT PFKEY = &PF, ERASE = NO  ROW 8                                 
               DIM "            ",                                              
                   "Operator Cancelled MU5350.";                                
               DIM "            ",                                              
                   "MU5350 must Execute.";;                                     
               DIM "            ",                                              
                   "Take the following Action:";                                
               DIM "                ",                                          
                   "o  Do NOT Call Contact";                                    
               DIM "                ",                                          
                   "o  Do NOT Write Incident";                                  
               DIM "                ",                                          
                   "o  Select ENTER to rerun MU5350"                            
                                                                                
CANCATz:  END [ CANCAT ]                                                        
                                                                                
***********************************************************************         
* MOUNT -- Will Prompt the Operator to Mount the Volume               *         
***********************************************************************         
MOUNT:    ASSIGN &PROMPT_TITLE_03(1,8) = "MOUNT   "                             
          GOTO   MOUNTc                                                         
                                                                                
                                                                                
MOUNTa:   IF &WS = 0 GOTO MOUNTb                                                
          IF &WS > 0 GOTO MOUNTb                                                
          ASSIGN &MG2005_RERUN_SW   = "N"                                       
          ASSIGN &MG2005_RESTORE_SW = "Y"                                       
          END                                                                   
                                                                                
MOUNTb:   MESSAGE ERASE = YES ROW 1                                             
               DIM &PROMPT_TITLE_01;                                            
               DIM &PROMPT_TITLE_02;                                            
               DIM &PROMPT_TITLE_03                                             
                                                                                
          PROMPT ERASE=NO, PFKEY = &PF ROW 10                                   
               CENTER "Volume",BRIGHT &MOUNT_VOLUME,                            
                      "is NOT mounted";;                                        
               CENTER "Please Mount this Volume and select";                    
               CENTER "ENTER to Continue.                 "                     
                                                                                
MOUNTc:   IF NOT EXISTS VOLUME &MOUNT_VOLUME GOTO MOUNTa                        
                                                                                
MOUNTz:   MESSAGE ERASE = YES                                                   
                  CENTER "Procedure MGRB2005 in progress"                       
                                                                                
          END    [ Sub Routine MOUNT ]                                          
                                                                                
************########### End Procedure MGRB2005 ###########*************         
