         PROCEDURE MGRB2100                                                     
                   using &LINK_APPL         as String (06),                     
                         &LINK_PROC         as String (08),                     
                         &LINK_SITE         as String (25),                     
                         &LINK_SITE_N       as Integer,                         
                         &LINK_S_LIB        as String (08),                     
                         &LINK_S_VOL        as String (06),                     
                         &LINK_B_LIB        as String (08),                     
                         &LINK_B_VOL        as String (06),                     
                         &LINK_DATE         as String (06),                     
                         &LINK_FILE_1       as String (16),                     
                         &LINK_FILE_2       as String (16),                     
                         &LINK_RECS_2       as Integer,                         
                         &LINK_FILE_3       as String (16),                     
                         &LINK_RECS_3       as Integer,                         
                         &LINK_FILE_4       as String (16),                     
                         &LINK_FILE_5       as String (08),                     
                         &LINK_RECS_5       as Integer,                         
                         &LINK_FILE_6       as String (08),                     
                         &LINK_RECS_6       as Integer,                         
                         &LINK_FILE_7       as String (08),                     
                         &LINK_RECS_7       as Integer,                         
                         &LINK_FILE_8       as String (08),                     
                         &LINK_RECS_8       as Integer,                         
                         &LINK_FILE_9       as String (08),                     
                         &LINK_RECS_9       as Integer,                         
                         &LINK_PARM_1       as String (06),                     
                         &LINK_PARM_2       as String (06)                      
                                                                                
***********************************************************************         
* PROCEDURE:  MGRB2100                                                *         
* TITLE:      Job Stream Utility                                      *         
* AUTHOR:     JMC                                                     *         
* REMARKS:    This procedure will run all Jobs listed on the schedule *         
*             file.  It maybe called by any application to execute    *         
*             a stream of procedures.                                 *         
*                                                                     *         
*=====================================================================*         
* PARAMETERS Passed in:                                               *         
*                                                                     *         
* &LINK_APPL   -- Application Code used to determine which            *         
*                 Return Code File to use when an error occurs        *         
* &LINK_PROC   -- Name of the Procedure calling MGRB2100.  This       *         
*                 parameter is used to indicate on the Log Reports    *         
*                 which Job Stream the Reports are for.               *         
* &LINK_SITE   -- Comment Field printed on the Log Reports.           *         
*                 An example comment would be the Name of the         *         
*                 Site the Job Stream was executed at or the          *         
*                 name of the Jog Stream                              *         
* &LINK_SITE_N -- Comment Field printed on the Log Reports.           *         
*                 An example comment would be the Site # of the       *         
*                 production system.  May be equal to zero.           *         
* &LINK_S_LIB  -- Spool Library, Job Stream Log Reports will be       *         
*                 created in this Library.                            *         
* &LINK_S_VOL  -- Spool Volume, Job Stream Log Reports will be        *         
*                 created on this Volume.                             *         
* &LINK_B_LIB  -- Backup Library used for Files, this field is        *         
*                 is used only for reporting, it may be spaces        *         
* &LINK_B_VOL  -- Backup Volume used for Files, this field is         *         
*                 is used only for reporting, it may be spaces        *         
* &LINK_DATE   -- Date Scream was executed, this date is printed      *         
*                 on the Log Reports, Should be formatted as YYMMDD.  *         
*                 NOTE: If this field is = spaces then the System     *         
*                       Date is extracted and used.                   *         
* &LINK_FILE_1 -- Catalog Entry of the the Job Run File.              *         
*                 This file lists all procedures to be executed.      *         
* &LINK_FILE_2 -- Catalog Entry of the the Batch Recovery File.       *         
*                 This file is used to log all procedures executed.   *         
*                 If necessary, it will be used to determine the      *         
*                 restart point of the stream in case of an IPL.      *         
* &LINK_RECS_2 -- # of records to assign to &LINK_FILE_2 when created *         
* &LINK_FILE_3 -- Catalog Entry of the Batch Recovery History File    *         
*                 This file is used to hold records archived off of   *         
*                 &LINK_FILE_2.  &LINK_FILE_2 is archived Daily to    *         
*                 &LINK_FILE_3, this prevents accidential rerun of    *         
*                 yesterdays jobs.                                    *         
* &LINK_RECS_3 -- # of records to assign to &LINK_FILE_3 when created *         
* &LINK_FILE_4 -- Catalog Entry of the Batch Recovery Archive File.   *         
*                 This file is used to hold Records Deleted off of    *         
*                 &LINK_FILE_3.  &LINK_PARM_1 determines how often    *         
*                 records are moved from &LINK_FILE_3 to &LINK_FILE_4 *         
* &LINK_FILE_5 -- Jobs Scheduled Report, Lists all procedures         *         
*                 to be executed.                                     *         
* &LINK_RECS_5 -- # of records to assign to &LINK_FILE_5 when created *         
* &LINK_FILE_6 -- Jobs Executed Report, Lists all procedures          *         
*                 executed and their return code                      *         
* &LINK_RECS_6 -- # of records to assign to &LINK_FILE_6 when created *         
* &LINK_FILE_7 -- Jobs Execute Time Report, list by procedure         *         
*                 of the run time of each procedure                   *         
* &LINK_RECS_7 -- # of records to assign to &LINK_FILE_7 when created *         
* &LINK_FILE_8 -- Jobs Executed Report, Lists all procedures          *         
*                 executed and their return code                      *         
* &LINK_RECS_8 -- # of records to assign to &LINK_FILE_8 when created *         
* &LINK_FILE_9 -- Jobs Execute Time Archive Report, list by           *         
*                 procedure of the run time of each procedure         *         
* &LINK_RECS_9 -- # of records to assign to &LINK_FILE_9 when created *         
* &LINK_PARM_1 -- Parameter on MG10151S to determine how to archive   *         
*                 the Job Stream Recovery File, if equal to spaces it *         
*                 defaults to MG0000.                                 *         
* &LINK_PARM_2 -- Parameter on MG10151S to determine where to send    *         
*                 the Job Stream Log Reports, if equal to spaces      *         
*                 it defaults to MG0001.                              *         
*                                                                     *         
*=====================================================================*         
*                             MODIFICATIONS                           *         
* Version   WHO   DATE   WHY                                          *         
* --------  --- -------- -------------------------------------------- *         
* 00.00.00  JMC 04/24/90 Original Version                             *         
*                                                                     *         
***********************************************************************         
         DECLARE &VERSION            as STRING (08) Initial "00.00.00"          
                                                                                
         DECLARE &RESTART_LABEL      as STRING (07) Initial " "                 
                                                                                
***** Processing variables                                                      
          DECLARE &MGRB2005_RESTORE_SW     as String (01) Initial " "           
          DECLARE &MGRB2005_RERUN_SW       as String (01) Initial " "           
          DECLARE &MGRB2005_RETURN_CODE    as Integer     Initial 0             
          DECLARE &MGRB2111_APPL           as String (40) Initial " "           
          DECLARE &MGRB2111_STATUS         as String (01) Initial " "           
          DECLARE &MGRB2111_RESTART_PROC   as String (08) Initial " "           
          DECLARE &MGRB2111_RESTART_LABEL  as Integer     Initial 0             
          DECLARE &MGRB2111_R_C            as Integer     Initial 0             
          DECLARE &MGRB2111_RESTORE_SW     as String (01) Initial " "           
          DECLARE &MGRB2111_BU_LIB         as String (08) Initial " "           
          DECLARE &MGRB2111_BU_VOL         as String (06) Initial " "           
          DECLARE &MGRB2111_SPOOL_LIB      as String (08) Initial " "           
          DECLARE &MGRB2111_SPOOL_VOL      as String (06) Initial " "           
          DECLARE &USER_ID                 as String (08) Initial " "           
          DECLARE &USER_NAME               as String (24) Initial " "           
          DECLARE &FILE_RECS_3             as String (07) Initial " "           
          DECLARE &FILE_RECS_5             as String (07) Initial " "           
          DECLARE &FILE_RECS_6             as String (07) Initial " "           
          DECLARE &FILE_RECS_7             as String (07) Initial " "           
          DECLARE &FILE_RECS_8             as String (07) Initial " "           
                                                                                
***** Area for Set Defaults (SETDEF)                                            
         DECLARE &SETDEF_SPOOL_LIB_OLD      as String (08) Initial " "          
         DECLARE &SETDEF_SPOOL_VOL_OLD      as String (06) Initial " "          
         DECLARE &SETDEF_WORK_VOL_OLD       as String (06) Initial " "          
         DECLARE &SETDEF_FILE_CLASS_OLD     as String (01) Initial " "          
         DECLARE &SETDEF_PRINT_FILE_CLASS   as String (01) Initial " "          
         DECLARE &SETDEF_SPOOL_SYSTEM       as String (08) Initial " "          
         DECLARE &SETDEF_PRINT_MODE         as String (01) Initial " "          
                                                                                
***** Initial Extracts and assigns                                              
          EXTRACT &USER_ID          = USERID,                                   
                  &USER_NAME        = USERNAME                                  
          ASSIGN &MGRB2111_APPL = &LINK_APPL !! "               "               
                                                                                
***********************************************************************         
* Step 1 -- Get the Location of files needed & validate some          *         
*           catalog entries.                                          *         
***********************************************************************         
STEP01:  RUN MU5350                                                             
             CANCEL EXIT is STEP01B                                             
               ENTER CATGET CATNAME = &LINK_FILE_1 [ Run File  ]                
     SI00010C: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = &LINK_FILE_2 [ Batch Recovery ]           
     SI00020C: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = &LINK_FILE_3 [ Batch Hist File]           
     SI00022C: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = &LINK_FILE_4 [ Batch Arcv File]           
     SI00023C: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = MG10151S                                  
     MG10151S: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = FPSULOAD  [ MG Programs ]                 
     FPSULOAD: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = FPSUPROC  [ MG Procedures ]               
     FPSUPROC: ENTER LOCATION                                                   
               ENTER CATGET                                                     
                                                                                
         IF STEP01 = 0 GOTO STEP01z                                             
                                                                                
         ASSIGN &MGRB2005_RETURN_CODE     = STEP01 + 1000                       
STEP01A: CALL   BADEND                                                          
         IF     &MGRB2005_RERUN_SW = "Y" GOTO STEP01                            
         RETURN CODE               = &MGRB2005_RETURN_CODE                      
                                                                                
STEP01B: ASSIGN &MGRB2005_RETURN_CODE = 1999                                    
         GOTO   STEP01A                                                         
                                                                                
STEP01z:  [ continue ]                                                          
                                                                                
***********************************************************************         
* STEP03 -- Log into the return code log that this procedure was      *         
*           started                                                   *         
***********************************************************************         
STEP03:   ASSIGN &MGRB2005_RETURN_CODE = 3000                                   
          CALL   BADEND                                                         
          ASSIGN &MGRB2005_RETURN_CODE = 0                                      
                                                                                
          IF &LINK_DATE = "      "  CALL GETDATE                                
                                                                                
          CALL SETDEF                                                           
                                                                                
*#####################################################################*         
* STEP 10 -- 19; DETERMINE IF JOB STREAM NEEDS TO BE RESTARTED        *         
*#####################################################################*         
***********************************************************************         
* STEP10 -- MGRB2111, DETERMINE if Job Stream needs to be restarted   *         
***********************************************************************         
STEP10:   ASSIGN &MGRB2005_RETURN_CODE = 0                                      
                                                                                
STEP10a:  RUN MGRB2111 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)               
              using &LINK_FILE_2,        [ Recovery File ]                      
                    &LINK_FILE_1,        [ Run      File ]                      
                    &LINK_PROC,                                                 
                    &MGRB2111_APPL,                                             
                    "Y",                 [ Display Restart Prompt ]             
                    &MGRB2111_STATUS,                                           
                    &MGRB2111_RESTART_PROC,                                     
                    &MGRB2111_RESTART_LABEL,                                    
                    &MGRB2111_R_C,                                              
                    &MGRB2111_BU_LIB,                                           
                    &MGRB2111_BU_VOL,                                           
                    &MGRB2111_SPOOL_LIB,                                        
                    &MGRB2111_SPOOL_VOL,                                        
                    &MGRB2111_RESTORE_SW                                        
               CANCEL EXIT is STEP10x                                           
                                                                                
          IF STEP10a = 0 GOTO STEP10z                                           
                                                                                
          ASSIGN &MGRB2005_RETURN_CODE     = 10000 + STEP10a                    
STEP10b:  CALL   BADEND                                                         
          IF     &MGRB2005_RERUN_SW = "Y" GOTO STEP10                           
          RETURN CODE = &MGRB2005_RETURN_CODE                                   
                                                                                
STEP10x:  ASSIGN &MGRB2005_RETURN_CODE     = 10999                              
          GOTO   STEP10b                                                        
                                                                                
STEP10z:  [ continue ]                                                          
                                                                                
***********************************************************************         
* STEP11 -- Process information from MGRB2111                         *         
***********************************************************************         
STEP11:   IF &MGRB2111_STATUS = " " GOTO STEP30 [ restart NOT needed ]          
                                                                                
***********************************************************************         
* STEP12 -- Log operator response from MGRB2111 Prompt                *         
***********************************************************************         
STEP12:   ASSIGN &RESTART_LABEL   = "STEP12" !! &MGRB2111_STATUS                
          IF     &LABEL(&RESTART_LABEL) GOTO &RESTART_LABEL                     
                                                                                
          ASSIGN &MGRB2005_RETURN_CODE = 12001 [ can't restart ]                
          CALL   BADEND                                                         
          IF     &MGRB2005_RERUN_SW = "Y"  GOTO STEP10                          
          RETURN CODE                 = &MGRB2005_RETURN_CODE                   
                                                                                
STEP12B:  ASSIGN &MGRB2005_RETURN_CODE = 12002 [ Rerun from the beg'n ]         
          CALL   BADEND                                                         
          ASSIGN &MGRB2005_RETURN_CODE = 0                                      
          GOTO   STEP30                                                         
                                                                                
STEP12E:  ASSIGN &MGRB2005_RETURN_CODE = 12003 [ processing done ]              
          CALL   BADEND                                                         
          ASSIGN &MGRB2005_RETURN_CODE = 0                                      
          CALL   SETDEF                                                         
          GOTO   STEP90                                                         
                                                                                
STEP12N:  ASSIGN &MGRB2005_RETURN_CODE = 12004 [ Restart after        ]         
          CALL   BADEND                        [ specific procedure   ]         
          ASSIGN &MGRB2005_RETURN_CODE = 0                                      
          GOTO STEP30                                                           
                                                                                
STEP12R:  ASSIGN &MGRB2005_RETURN_CODE = 12005 [ Restart specific proc]         
          CALL   BADEND                                                         
          ASSIGN &MGRB2005_RETURN_CODE = 0                                      
          GOTO STEP30                                                           
                                                                                
STEP12X:  ASSIGN &MGRB2005_RETURN_CODE = 12006 [ Operator did NOT want]         
          CALL   BADEND                   [ MGRB2100 to restart itself]         
          IF     &MGRB2005_RERUN_SW = "Y" GOTO STEP10                           
          RETURN CODE = &MGRB2005_RETURN_CODE                                   
                                                                                
*#####################################################################*         
* STEP 30 -- 39; Process Procedures on &LINK_FILE_1                   *         
*#####################################################################*         
STEP30:   SCRATCH &LINK_FILE_5 in &LINK_S_LIB on &LINK_S_VOL                    
                                                                                
***********************************************************************         
* STEP32 -- Run MG2100, actually executes Jobs                        *         
***********************************************************************         
STEP32:   RUN MG2100 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)                 
              using &MGRB2111_STATUS,                                           
                    &MGRB2111_RESTORE_SW,                                       
                    &USER_ID,                                                   
                    &USER_NAME,                                                 
                    &LINK_DATE,        [ formatted YYMMDD ]                     
                    &LINK_S_LIB,       [ Spool  Lib ]                           
                    &LINK_S_VOL,       [ Spool  Vol ]                           
                    &LINK_B_LIB,       [ Backup Lib ]                           
                    &LINK_B_VOL,       [ Backup Vol ]                           
                    &LINK_SITE,                                                 
                    &LINK_SITE_N,                                               
                    &MGRB2111_RESTART_LABEL,                                    
                    &MGRB2111_R_C                                               
               CANCEL EXIT is STEP32x                                           
               ENTER MG10151S   (MG10151S)                                      
               ENTER MG21001C   FILE     = (SI00020C.FILE),                     
                                LIBRARY  = (SI00020C.LIBRARY),                  
                                VOLUME   = (SI00020C.VOLUME),                   
                                FILECLAS = " ",                                 
                                RECORDS  = &LINK_RECS_2,                        
                                RELEASE  = NO                                   
               ENTER MG21002C (SI00010C)                                        
      SI0000A: ENTER MG2100A    FILE     = &LINK_FILE_5,                        
                                LIBRARY  = &LINK_S_LIB,                         
                                VOLUME   = &LINK_S_VOL,                         
                                RECORDS  = &LINK_RECS_5,                        
                                FILECLAS = " ",                                 
                                RELEASE  = YES                                  
                                                                                
          IF STEP32 = 0 GOTO STEP32z                                            
                                                                                
          ASSIGN &MGRB2005_RETURN_CODE = 32000 + STEP32                         
                                                                                
STEP32w:  CALL   BADEND                                                         
          IF     &MGRB2005_RERUN_SW = "Y"  GOTO STEP10 [ Restart ]              
          RETURN CODE = &MGRB2005_RETURN_CODE                                   
                                                                                
STEP32x:  ASSIGN &MGRB2005_RETURN_CODE = 32999                                  
          GOTO   STEP32w                                                        
                                                                                
STEP32z:  [ continue ]                                                          
                                                                                
*#####################################################################*         
* STEP 90 -- 99; Stream Processed successfully, clean up system       *         
*#####################################################################*         
***********************************************************************         
* STEP90 -- Inhibit procedure in progress prompt                      *         
***********************************************************************         
STEP90:   OPTIONS PROCMSG = NO                                                  
                                                                                
***********************************************************************         
* STEP92 -- Run MGRB2110, archive Batch Recovery Log File             *         
*---------------------------------------------------------------------*         
* MGRB2110 should not have its return-code checked because it uses    *         
* MGRB2005 (R/C System) internally.                                   *         
***********************************************************************         
STEP92:   MESSAGE ERASE = NO  ROW 23                                            
                  CENTER "Archiving Run Log File"                               
                                                                                
          IF &LINK_PARM_1 = "      " ASSIGN &LINK_PARM_1 = "MG0000"             
          IF &LINK_PARM_2 = "      " ASSIGN &LINK_PARM_2 = "MG0001"             
          ASSIGN &FILE_RECS_3 = &LINK_RECS_3                                    
          ASSIGN &FILE_RECS_5 = &LINK_RECS_6                                    
          ASSIGN &FILE_RECS_6 = &LINK_RECS_7                                    
          ASSIGN &FILE_RECS_7 = &LINK_RECS_8                                    
          ASSIGN &FILE_RECS_8 = &LINK_RECS_9                                    
                                                                                
STEP92A:  RUN MGRB2110 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)               
              using &LINK_PROC,                                                 
                    &LINK_FILE_6,  &FILE_RECS_5,                                
                    &LINK_FILE_7,  &FILE_RECS_6,                                
                    &LINK_FILE_8,  &FILE_RECS_7,                                
                    &LINK_FILE_9,  &FILE_RECS_8,                                
                    (SI00020C.CATNAME),                                         
                    (SI00022C.CATNAME), &FILE_RECS_3,                           
                    (SI00023C.CATNAME),                                         
                    &LINK_PARM_1,                                               
                    &LINK_PARM_2                                                
              CANCEL EXIT is STEP92x                                            
                                                                                
          GOTO STEP92z                                                          
                                                                                
STEP92x:  ASSIGN &MGRB2005_RETURN_CODE     = 92999                              
          CALL   BADEND                                                         
          MESSAGE ERASE = YES                                                   
                  CENTER "Procedure MGRB2100 in progress"                       
                                                                                
          IF     &MGRB2005_RERUN_SW = "Y"  GOTO STEP92 [ Restart ]              
          ASSIGN &MGRB2005_RETURN_CODE     = 0                                  
                                                                                
STEP92z: [ Continue ]                                                           
                                                                                
***********************************************************************         
* STEP97 -- Reset workstation defaults                                *         
***********************************************************************         
STEP97:   MESSAGE ERASE = NO  ROW 23                                            
                  CENTER "Restoring Workstation defaults"                       
                                                                                
          SET SPOOLIB  = &SETDEF_SPOOL_LIB_OLD                                  
          SET SPOOLVOL = &SETDEF_SPOOL_VOL_OLD                                  
          SET WORKVOL  = &SETDEF_WORK_VOL_OLD                                   
          SET FILECLAS = &SETDEF_FILE_CLASS_OLD                                 
          SET PRTFCLAS = &SETDEF_PRINT_FILE_CLASS                               
          SET SPOOLSYS = &SETDEF_SPOOL_SYSTEM                                   
          SET PRNTMODE = &SETDEF_PRINT_MODE                                     
                                                                                
***********************************************************************         
* STEP98 -- Log MGRB2100 completion                                   *         
***********************************************************************         
STEP98:   MESSAGE ERASE = NO  ROW 23                                            
                  CENTER "Logging job completion"                               
                                                                                
          ASSIGN &MGRB2005_RETURN_CODE = 98999                                  
          CALL   BADEND                                                         
                                                                                
***********************************************************************         
* STEP99 -- End of Job                                                *         
***********************************************************************         
STEP99:   RETURN                                                                
                                                                                
*#####################################################################*         
*                        S U B R O U T I N E S                        *         
*#####################################################################*         
***********************************************************************         
* BADEND --  Abnormal end of job, will execute if there is a return   *         
*            code or to log successful start & end of MGRB2100        *         
***********************************************************************         
BADEND:                                                                         
                                                                                
BADEND01: RUN MGRB2005 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)               
                       using &LINK_APPL,                                        
                             &LINK_PROC,                                        
                             &MGRB2005_RETURN_CODE,                             
                             &MGRB2005_RERUN_SW,                                
                             &MGRB2005_RESTORE_SW                               
              CANCEL EXIT is BADEND                                             
                                                                                
END  [ BADEND ]                                                                 
                                                                                
***********************************************************************         
* SETDEF -- Will Set the Defaults, saving old defaults.               *         
***********************************************************************         
SETDEF:                                                                         
         EXTRACT &SETDEF_SPOOL_LIB_OLD    =  SPOOLIB                            
         EXTRACT &SETDEF_SPOOL_VOL_OLD    =  SPOOLVOL                           
         EXTRACT &SETDEF_WORK_VOL_OLD     =  WORKVOL                            
         EXTRACT &SETDEF_FILE_CLASS_OLD   =  FILECLAS                           
         EXTRACT &SETDEF_PRINT_FILE_CLASS =  PRTFCLAS                           
         EXTRACT &SETDEF_SPOOL_SYSTEM     =  SPOOLSYS                           
         EXTRACT &SETDEF_PRINT_MODE       =  PRNTMODE                           
                                                                                
         SET     SPOOLIB         = &LINK_S_LIB,                                 
                 SPOOLVOL        = &LINK_S_VOL,                                 
                 FILECLAS        = " ",                                         
                 PRTFCLAS        = " ",                                         
                 SPOOLSYS        = "        "                                   
                                                                                
END   [ SETDEF ]                                                                
                                                                                
***********************************************************************         
* SETDEF -- Will Set the Defaults, saving old defaults.               *         
***********************************************************************         
GETDATE:  DECLARE &WORK_DATE as String (06)                                     
                                                                                
          ASSIGN &WORK_DATE      = &DATE                                        
          ASSIGN &LINK_DATE(1,2) = &WORK_DATE(5,2)  [ year  ]                   
          ASSIGN &LINK_DATE(3,2) = &WORK_DATE(1,2)  [ month ]                   
          ASSIGN &LINK_DATE(5,2) = &WORK_DATE(3,2)  [ day   ]                   
                                                                                
END                                                                             
                                                                                
************** ####### END OF PROCEDURE MGRB2100 ####### *************          
