               PROCEDURE MGRB2015                                               
***********************************************************************         
* PROCEDURE:        MGRB2015                                          *         
* AUTHOR:           JMC                                               *         
* DATE CREATED:     July 9, 1987                                      *         
* PURPOSE:          Will create a listing of the Return Code          *         
*                   Log File by System, Date & Time.                  *         
*---------------------------------------------------------------------*         
*                            MODIFICATIONS                            *         
*                           ===============                           *         
* VER   DATE   WHO WHY                                                *         
* --- -------- --- -------------------------------------------------- *         
*  01 04/22/88 JMC Create Report with a File Class = SPACES           *         
*  00 07/09/87 JMC Original Version                                   *         
*                                                                     *         
***********************************************************************         
         DECLARE &VERSION             as String (02) Initial "00"               
         DECLARE &PF                  as Integer     Initial 0                  
         DECLARE &RECORDS             as Integer     Initial 0                  
         DECLARE &PURGE               as String (03) Initial "NO "              
                                                                                
***** Area for Set Defaults (SETDEF)                                            
         DECLARE &RUN_LIB             as String (08) Initial "        "         
         DECLARE &RUN_VOL             as String (06) Initial "      "           
         DECLARE &IN_LIB_OLD          as String (08) Initial "        "         
         DECLARE &IN_VOL_OLD          as String (06) Initial "      "           
         DECLARE &OUT_LIB_OLD         as String (08) Initial "        "         
         DECLARE &OUT_VOL_OLD         as String (06) Initial "      "           
         DECLARE &SPOOL_VOL           as String (06) Initial "      "           
         DECLARE &SPOOL_VOL_OLD       as String (06) Initial "      "           
         DECLARE &FILE_CLASS_OLD      as String (01) Initial " "                
                                                                                
***** Declares for the Subroutine "VOLEDIT"                                     
         DECLARE &VOLUME_NAME       as String (06) Initial "      "             
         DECLARE &CHARS             as String (40) Initial                      
                 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$ "                     
         DECLARE &CURLENGTH         as Integer     Initial 0                    
                                                                                
                                                                                
*****  Messages                                                                 
         DECLARE &MESSAGE           as String (50) Initial                      
                 "                                                  "           
         DECLARE &SPACE_50          as String (50) Initial                      
                 "                                                  "           
         DECLARE &MESSAGE_01        as String (50) Initial                      
                 "        You must answer 'YES' or 'NO'             "           
                                                                                
***********************************************************************         
* STEP01 -- Get Location of MG20051C; Data, Control & Report Files    *         
***********************************************************************         
STEP01:  MESSAGE CENTER "MGRB2015 -- Step 1, MU5350 in Progress"                
                                                                                
STEP01A: RUN MU5350                                                             
               ENTER CATGET    CATNAME = MG20051C                               
     MG20051C: ENTER LOCATION                                                   
               ENTER CATGET    CATNAME = MG20051CREPORT                         
     RPTFILE:  ENTER LOCATION                                                   
               ENTER CATGET    CATNAME = MG20051CCONTROL                        
     CTLFILE:  ENTER LOCATION                                                   
               ENTER CATGET                                                     
                                                                                
         IF STEP01A ne 0 RETURN CODE = STEP01A + 1000                           
                                                                                
***********************************************************************         
* Will set Defaults                                                   *         
***********************************************************************         
         CALL SETDEF                                                            
                                                                                
***********************************************************************         
* Will determine is the report can be created                         *         
***********************************************************************         
         IF NOT EXISTS FILE (MG20051C) GOTO STEP05                              
                                                                                
         EXTRACT &RECORDS = RECORDS used by (MG20051C)                          
                                                                                
         IF &RECORDS < 1 GOTO STEP04                                            
                                                                                
***********************************************************************         
* STEP02 -- Will create the report                                    *         
***********************************************************************         
STEP02:  SCRATCH MG20051P in WIPRPTS on &SPOOL_VOL                              
         CALL    CLEAN  [ see if file is to be purged ]                         
                                                                                
         MESSAGE CENTER "MGRB2015 -- Step 2, REPORT in Progress"                
                                                                                
STEP02A: RUN REPORT     [ To Print the Report ]                                 
             CANCEL EXIT is STEP02B                                             
               ENTER FUNCTION  04                                               
               ENTER RPTDEF    FILE     = (RPTFILE.FILE),                       
                               LIBRARY  = (RPTFILE.LIBRARY),                    
                               VOLUME   = (RPTFILE.VOLUME)                      
               ENTER OPTIONS   ID       = (RPTFILE.FILE),                       
                               FILES    = YES                                   
               ENTER INPUT1    FILE     = (MG20051C.FILE),                      
                               LIBRARY  = (MG20051C.LIBRARY),                   
                               VOLUME   = (MG20051C.VOLUME),                    
                               MODE     = INPUT                                 
               ENTER CONTROL   FILE     = (CTLFILE.FILE),                       
                               LIBRARY  = (CTLFILE.LIBRARY),                    
                               VOLUME   = (CTLFILE.VOLUME)                      
     MG20051P: ENTER PRINT     FILE     = MG20051P,                             
                               LIBRARY  = WIPRPTS,                              
                               VOLUME   = &SPOOL_VOL,                           
                               FILECLAS = " ",                                  
                               RECORDS  = 20000                                 
               ENTER FUNCTION  16                                               
                                                                                
                                                                                
         IF    &PURGE = "YES" SCRATCH (MG20051C)                                
         GOTO STEP03                                                            
                                                                                
STEP02B: CALL SETOLD                                                            
         RETURN CODE = 2999                                                     
                                                                                
***********************************************************************         
* STEP03 -- Display the Listing                                       *         
***********************************************************************         
STEP03:  RUN DISPLAY                                                            
             ERROR  EXIT is STEP03A                                             
             CANCEL EXIT is STEP03B                                             
               ENTER INPUT FILE     = (MG20051P.FILE),                          
                           LIBRARY  = (MG20051P.LIBRARY),                       
                           VOLUME   = (MG20051P.VOLUME),                        
                           ACCESS   = PRINT                                     
                                                                                
         GOTO EOJ                                                               
                                                                                
STEP03A: CALL   SETOLD                                                          
         RETURN CODE    = 3998                                                  
STEP03B: CALL   SETOLD                                                          
         RETURN CODE    = 3999                                                  
                                                                                
***********************************************************************         
* STEP04 -- Will execute if the File has zero records.                *         
***********************************************************************         
STEP04:  PROMPT PFKEY = &PF ROW 1                                               
            CENTER "MGRB2015 - STEP05                            ",             
                     "                        VERSION ",&VERSION;               
            CENTER "W A N G    L A B O R A T O R I E S    ",                    
                   "I N C O R P O R A T E D ";                                  
            CENTER "MANUFACTURING INFORMATION RESOURCE SERVICE";                
            CENTER "Return Code Log File Report";;;;;;                          
            CENTER BRIGHT                                                       
                   "Return Code Log File contains zero records";                
            CENTER " ";;;;;;                                                    
            CENTER "Select ENTER or Pf-16 to Exit"                              
                                                                                
         GOTO EOJ                                                               
                                                                                
***********************************************************************         
* STEP05 -- Will execute if the file cannot be found                  *         
***********************************************************************         
STEP05:  PROMPT PFKEY = &PF ROW 1                                               
            CENTER "MGRB2015 - STEP05                            ",             
                     "                        VERSION ",&VERSION;               
            CENTER "W A N G    L A B O R A T O R I E S    ",                    
                   "I N C O R P O R A T E D ";                                  
            CENTER "MANUFACTURING INFORMATION RESOURCE SERVICE";                
            CENTER "Return Code Log File Report";;;;;;                          
            CENTER BRIGHT                                                       
                   "Unable to Find the Return Code Log File,";                  
            CENTER BRIGHT                                                       
                   "maybe because the file was purged.      ";                  
            CENTER " ";;;;;;                                                    
            CENTER "Select ENTER or Pf-16 to Exit"                              
                                                                                
         GOTO EOJ                                                               
                                                                                
***********************************************************************         
* EOJ -- End of Job                                                   *         
***********************************************************************         
EOJ:     CALL SETOLD                                                            
         RETURN                                                                 
                                                                                
*#####################################################################*         
*                                SUBROUTINES                          *         
*#####################################################################*         
***********************************************************************         
* SETOLD -- Will Set the Defaults back to what they were              *         
***********************************************************************         
SETOLD:                                                                         
                                                                                
         IF &IN_LIB_OLD     = "        " SET INLIB    = "        "              
         IF &IN_VOL_OLD     = "        " SET INVOL    = "      "                
         IF &OUT_LIB_OLD    = "        " SET OUTLIB   = "        "              
         IF &OUT_VOL_OLD    = "        " SET OUTVOL   = "      "                
         IF &SPOOL_VOL_OLD  = "        " SET SPOOLVOL = "      "                
         IF &FILE_CLASS_OLD = "        " SET FILECLAS = " "                     
                                                                                
         IF &IN_LIB_OLD     ne "        " SET INLIB    = &IN_LIB_OLD            
         IF &IN_VOL_OLD     ne "      "   SET INVOL    = &IN_VOL_OLD            
         IF &OUT_LIB_OLD    ne "        " SET OUTLIB   = &OUT_LIB_OLD           
         IF &OUT_VOL_OLD    ne "      "   SET OUTVOL   = &OUT_VOL_OLD           
         IF &SPOOL_VOL_OLD  ne "      "   SET SPOOLVOL = &SPOOL_VOL_OLD         
         IF &FILE_CLASS_OLD ne " "        SET FILECLAS =                        
                                              &FILE_CLASS_OLD                   
                                                                                
END   [ SETOLD ]                                                                
                                                                                
***********************************************************************         
* SETDEF -- Will Set the Defaults, saving old defaults.               *         
*           Will get the correct Spool Volume                         *         
***********************************************************************         
SETDEF:                                                                         
         EXTRACT &RUN_LIB        =  PROGLIB                                     
         EXTRACT &RUN_VOL        =  PROGVOL                                     
         EXTRACT &IN_LIB_OLD     =  INLIB                                       
         EXTRACT &IN_VOL_OLD     =  INVOL                                       
         EXTRACT &OUT_LIB_OLD    =  OUTLIB                                      
         EXTRACT &OUT_VOL_OLD    =  OUTVOL                                      
         EXTRACT &SPOOL_VOL_OLD  =  SPOOLVOL                                    
         EXTRACT &FILE_CLASS_OLD =  FILECLAS                                    
         ASSIGN  &SPOOL_VOL      =  &SPOOL_VOL_OLD                              
                                                                                
         CALL GET                                                               
         CALL CKSPOOL                                                           
                                                                                
         SET     INLIB           = TEMPDATA                                     
         SET     OUTLIB          = TEMPDATA                                     
         SET     INVOL           = &SPOOL_VOL                                   
         SET     OUTVOL          = &SPOOL_VOL                                   
         SET     SPOOLVOL        = &SPOOL_VOL                                   
         SET     FILECLAS        = "M"                                          
                                                                                
END   [ SETDEF ]                                                                
                                                                                
***********************************************************************         
* CKSPOOL -- Will Make sure the Spool Volume is set                   *         
***********************************************************************         
CKSPOOL:                                                                        
         IF &SPOOL_VOL = "      " GOTO CKSPOOL1                                 
                                                                                
         ASSIGN &VOLUME_NAME = &SPOOL_VOL                                       
         CALL   VOLEDIT                                                         
         IF     &VOLUME_NAME = "      " GOTO CKSPOOL1                           
                                                                                
         IF EXISTS VOLUME &SPOOL_VOL GOTO CKSPOOL9                              
                                                                                
CKSPOOL1: PROMPT PFKEY = &PF ROW 1                                              
            CENTER "MGRB2015 - CKSPOOL                           ",             
                     "                        VERSION ",&VERSION;               
            CENTER "W A N G    L A B O R A T O R I E S    ",                    
                   "I N C O R P O R A T E D ";                                  
            CENTER "MANUFACTURING INFORMATION RESOURCE SERVICE";                
            CENTER "Return Code Log File Report";;                              
            CENTER "The Spool Volume is either invalid or it ";                 
            CENTER "is not mounted, please assign the current";                 
            CENTER "Spool Volume below.                      ";;                
            CENTER "What is the Current Spool Volume ?",                        
                   BRIGHT UPPER &SPOOL_VOL;;                                    
            CENTER "Note: The Spool Volume is used to hold   ";                 
            CENTER "      the reports created & any temporary";                 
            CENTER "      files created.                     ";;                
            CENTER "Select ENTER to Continue"                                   
                                                                                
         GOTO CKSPOOL                                                           
                                                                                
CKSPOOL9: END                                                                   
                                                                                
***********************************************************************         
* GET:  Will get the work volume if the spool vol = spaces            *         
***********************************************************************         
GET:     IF &SPOOL_VOL = "      "    GOTO GET01                                 
         IF EXISTS VOLUME &SPOOL_VOL GOTO GET99                                 
                                                                                
GET01:   RUN CREATE                                                             
            X: ENTER OUTPUT  FILE     = ##000001,                               
                             TYPE     = C,                                      
                             RECSIZE  = 1,                                      
                             RECORDS  = 1                                       
               ENTER INPUT   16                                                 
               ENTER EOJ     16                                                 
                                                                                
         IF GET01 ne 0 GOTO GET99                                               
                                                                                
         ASSIGN &SPOOL_VOL = (X.VOLUME)                                         
                                                                                
GET99:   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 &CURLENGTH = &LENGTH(&VOLUME_NAME(1,*))                         
                                                                                
***** VOLUME NAME MUST NOT CONTAIN SPECIAL CHARACTERS                           
                                                                                
         IF &VERIFY(&VOLUME_NAME,&CHARS) NE 0                                   
           THEN ASSIGN &VOLUME_NAME = "      "                                  
                                                                                
***** VOLUME NAME MUST NOT CONTAIN EMBEDDED BLANKS                              
                                                                                
        IF &INDEX(&VOLUME_NAME," ") NE 0                                        
        IF &INDEX(&VOLUME_NAME," ") NE &CURLENGTH+1                             
           THEN ASSIGN &VOLUME_NAME = "      "                                  
                                                                                
END [  VOLEDIT   ]                                                              
                                                                                
***********************************************************************         
* CLEAN -- Will ask the user if the log file is to be purged.         *         
***********************************************************************         
CLEAN:   ASSIGN &MESSAGE  = &SPACE_50                                           
                                                                                
CLEAN01: PROMPT PFKEY = &PF ROW 1                                               
            CENTER "MGRB2015 - CLEAN                             ",             
                     "                        VERSION ",&VERSION;               
            CENTER "W A N G    L A B O R A T O R I E S    ",                    
                   "I N C O R P O R A T E D ";                                  
            CENTER "MANUFACTURING INFORMATION RESOURCE SERVICE";                
            CENTER "Return Code Log File Report";;;                             
            CENTER "This procedure will create a listing of ";                  
            CENTER "the Return Code Log File and display it ";                  
            CENTER "to the operator.                        ";;;                
            CENTER "Is the Return Code Log File to be purged";                  
            CENTER "upon completion of this procedure ?",                       
                   BRIGHT UPPER &PURGE, " " ;;;;                                
            CENTER BRIGHT BLINK &MESSAGE                                        
                                                                                
         IF     &PURGE   = "YES"    GOTO CLEAN99                                
         IF     &PURGE   = "NO "    GOTO CLEAN99                                
         IF     &PURGE   = " NO"    GOTO CLEAN99                                
         ASSIGN &MESSAGE = &MESSAGE_01                                          
         GOTO   CLEAN01                                                         
                                                                                
CLEAN99: END                                                                    
                                                                                
