         PROCEDURE MGRB2110                                                     
                   using &LINK_JOB_STREAM          as String (08),              
                         &LINK_REPORT_NAME_1       as String (08),              
                         &LINK_RPT_RECORDS_1       as String (07),              
                         &LINK_REPORT_NAME_2       as String (08),              
                         &LINK_RPT_RECORDS_2       as String (07),              
                         &LINK_REPORT_NAME_3       as String (08),              
                         &LINK_RPT_RECORDS_3       as String (07),              
                         &LINK_REPORT_NAME_4       as String (08),              
                         &LINK_RPT_RECORDS_4       as String (07),              
                         &LINK_CATENTRY_1          as String (16),              
                         &LINK_CATENTRY_2          as String (16),              
                         &LINK_RECORDS_2           as String (07),              
                         &LINK_CATENTRY_3          as String (16),              
                         &LINK_PARM_1              as String (06),              
                         &LINK_PARM_2              as String (06)               
                  OPTIONS PROCMSG = NO                                          
                                                                                
***********************************************************************         
* PROCEDURE:  MGRB2110                                                *         
* AUTHOR:     JMC                                                     *         
* TITLE:      Archive of Job Stream Log File                          *         
* REMARKS:    This is called by a number of applications.             *         
*                                                                     *         
*             This procedure will first create reports MG2110A and    *         
*             MG2110B from MG21001C.  It will then append MG21001C    *         
*             to the end of MG21111C.  At the period end (from        *         
*             parameter) MG21111C is archived to Disk or Tape         *         
*             (again based upon the parameter).                       *         
*             If MG21111C is to be archived MG2110 will execute       *         
*             to report on MG21111C prior to the archive.             *         
*                                                                     *         
* Note:       MGRB2110 does NOT pass return codes back to the calling *         
*             procedure, it calls MGRB2005 internally to display any  *         
*             errors to the operator.                                 *         
*                                                                     *         
*=====================================================================*         
*                            LINK PARAMETERS                          *         
*                           =================                         *         
* Link Parameter       Description                                    *         
* -------------------- ---------------------------------------------- *         
* &LINK_JOB_STREAM     Name of the Job Stream that calls MGRB2110     *         
* &LINK_REPORT_NAME_1  Name to use for report MG2110A from MG21001C   *         
* &LINK_RPT_RECORDS_1  Records to allocate for Report MG2110A         *         
* &LINK_REPORT_NAME_2  Name to use for report MG2110B from MG21001C   *         
* &LINK_RPT_RECORDS_2  Records to allocate for Report MG2110B         *         
* &LINK_REPORT_NAME_3  Name to use for report MG2110A from MG21111C   *         
* &LINK_RPT_RECORDS_3  Records to allocate for Report MG2110A         *         
* &LINK_REPORT_NAME_4  Name to use for report MG2110A from MG21111C   *         
* &LINK_RPT_RECORDS_4  Records to allocate for Report MG2110B         *         
* &LINK_CATENTRY_1     Catalog entry for MG21001C, Batch Log File     *         
* &LINK_CATENTRY_2     Catalog entry for MG21111C, Batch Archive File *         
* &LINK_RECORDS_2      Records to allocate when creating MG21111C     *         
* &LINK_CATENTRY_3     Catalog Entry for MG21001H, Disk History File  *         
* &LINK_PARM_1         Parameter to determine how to archive the      *         
*                      Batch History File, from MG10151S              *         
* &LINK_PARM_2         Parameter to determine where to transfer       *         
*                      the reports created. (via MGRB2112)            *         
*                                                                     *         
*=====================================================================*         
*                            MODIFICATIONS                            *         
* Version  who   Date   Why                                           *         
* -------- --- -------- --------------------------------------------- *         
* 00.02.00 JMC 09/23/92 Added FPSULOAD/FPSUPROC Catalog               *         
* 00.01.00 JMC 04/29/92 Added Scratch of Job Stream Reports           *         
* 00.00.00 JMC 05/07/89 Original Version                              *         
*                                                                     *         
***********************************************************************         
                                                                                
          MESSAGE  ERASE = YES                                                  
                   CENTER  "Procedure " !! &LINK_JOB_STREAM (1,*) !!            
                           " in progress"                                       
                                                                                
          DECLARE &VERSION            as String (08) Initial "00.02.00"         
          DECLARE &PROCEDURE          as String (08) Initial "MGRB2110"         
                                                                                
          DECLARE &PRINT_MODE         as String (01) Initial "H"                
          DECLARE &RUN_TYPE           as String (01) Initial " "                
          DECLARE &PARM01_NUMERIC     as String (12) Initial " "                
          DECLARE &ARCHIVE_MG21111C   as String (01) Initial "N"                
          DECLARE &ARCHIVE_FREQ       as String (01) Initial "4"                
          DECLARE &ARCHIVE_SWITCH     as String (01) Initial "N"                
          DECLARE &MG21111C_FILE      as String (08) Initial " "                
          DECLARE &MG21111C_LIB       as String (08) Initial " "                
          DECLARE &MG21111C_VOL       as String (06) Initial " "                
          DECLARE &MG21001H_FILE      as String (08) Initial " "                
          DECLARE &MG21001H_LIB       as String (08) Initial " "                
          DECLARE &MG21001H_VOL       as String (06) Initial " "                
          DECLARE &MG2110_FILE        as String (08) Initial " "                
          DECLARE &MG2110_LIBRARY     as String (08) Initial " "                
          DECLARE &MG2110_VOLUME      as String (08) Initial " "                
          DECLARE &MG2110_REPORT_A    as String (08) Initial " "                
          DECLARE &MG2110_REPORT_B    as String (08) Initial " "                
          DECLARE &MG2110A_RECORDS    as String (07) Initial " "                
          DECLARE &MG2110B_RECORDS    as String (07) Initial " "                
          DECLARE &TAPE               as String (06) Initial " "                
          DECLARE &DEVICE             as String (03) Initial " "                
          DECLARE &DISK               as String (06) Initial " "                
          DECLARE &MESSAGE            as String (79) Initial " "                
          DECLARE &SPACE_40           as String (79) Initial " "                
          DECLARE &SPACE_79           as String (79) Initial " "                
          DECLARE &STEP_ADD           as Integer     Initial 0                  
          DECLARE &Pf                 as Integer     Initial 0                  
          DECLARE &MESSAGE_R_C        as Integer     Initial 0                  
          DECLARE &TAPE_LABEL         as String (40) Initial " "                
          DECLARE &MGRB2112_FILE      as String (08) Initial " "                
          DECLARE &MGRB2112_LIB       as String (08) Initial " "                
          DECLARE &MGRB2112_VOL       as String (06) Initial " "                
          DECLARE &SPOOL_LIB          as String (08) Initial " "                
          DECLARE &SPOOL_VOL          as String (06) Initial " "                
                                                                                
***** Prompt Titles                                                             
          DECLARE &TITLE_01           as String (40) Initial                    
                  "         WANG LABORATORIES INC.         "                    
          DECLARE &TITLE_02           as String (40) Initial                    
                  "  Manf. Management Information Systems  "                    
                                                                                
          DECLARE &PROMPT_TITLE_01    as String (79) Initial                    
                  &PROCEDURE !! "            " !! &TITLE_01 !!                  
                  "        " !! &VERSION !! "  "                                
          DECLARE &PROMPT_TITLE_02    as String (79) Initial                    
                  "                    " !! &TITLE_02 !!                        
                  "                   "                                         
          DECLARE &PROMPT_TITLE_03    as String (79) Initial                    
                  "                          Job Stream Log" !!                 
                  " File Archive                          "                     
                                                                                
***** Declares for MGRB2155                                                     
          DECLARE &MGRB2155_FILE        as String (08) Initial " "              
          DECLARE &MGRB2155_LIB         as String (08) Initial " "              
          DECLARE &MGRB2155_VOL         as String (06) 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                    
                                                                                
***** Declares for the Subroutine "DEVEDIT"                                     
         DECLARE &DEV_NAME          as String (03) Initial "        "           
         DECLARE &DEV_CHARS         as String (10) Initial                      
                 "0123456789"                                                   
         DECLARE &DEV_LENGTH        as Integer     Initial 0                    
                                                                                
***** BADEND Declares                                                           
          DECLARE &BADEND_APPLICATION as String (06) Initial "FSU   "           
          DECLARE &BADEND_PROCEDURE   as String (08) Initial "MGRB2110"         
          DECLARE &BADEND_RETURN_CODE as Integer     Initial 0                  
          DECLARE &BADEND_RERUN_SW    as String (01) Initial " "                
          DECLARE &BADEND_RESTORE_SW  as String (01) Initial " "                
                                                                                
***********************************************************************         
* STEP01 -- MU5350, Get Locations of files needed                     *         
***********************************************************************         
STEP01:   RUN MU5350                                                            
               CANCEL EXIT is STEP01C                                           
               ENTER CATGET CATNAME = MA00301                                   
     MA00301:  ENTER LOCATION                                                   
               ENTER CATGET CATNAME = MG10151S                                  
     MG10151S: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = &LINK_CATENTRY_1                          
     MG21001C: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = &LINK_CATENTRY_2                          
     MG21111C: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = &LINK_CATENTRY_3                          
     MG21001H: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = FPSULOAD                                  
     FPSULOAD: ENTER LOCATION                                                   
               ENTER CATGET CATNAME = FPSUPROC                                  
     FPSUPROC: ENTER LOCATION                                                   
               ENTER CATGET                                                     
                                                                                
          IF STEP01 = 0 GOTO STEP01Z                                            
                                                                                
          ASSIGN &BADEND_RETURN_CODE = 1000 + STEP01                            
                                                                                
STEP01B:  CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP01                          
          RETURN                                                                
                                                                                
STEP01C:  ASSIGN &BADEND_RETURN_CODE = 1999                                     
          GOTO   STEP01B                                                        
                                                                                
STEP01Z:  ASSIGN &MG21111C_FILE = (MG21111C.FILE)                               
          ASSIGN &MG21111C_LIB  = (MG21111C.LIBRARY)                            
          ASSIGN &MG21111C_VOL  = (MG21111C.VOLUME)                             
          ASSIGN &MG21001H_FILE = (MG21111C.FILE)                               
          ASSIGN &MG21001H_LIB  = (MG21111C.LIBRARY)                            
          ASSIGN &MG21001H_VOL  = (MG21111C.VOLUME)                             
                                                                                
***********************************************************************         
* STEP02 -- Will make sure required files exist                       *         
***********************************************************************         
STEP02:   EXTRACT &SPOOL_LIB = SPOOLIB                                          
          EXTRACT &SPOOL_VOL = SPOOLVOL                                         
                                                                                
STEP02A:  IF     EXISTS FILE (MA00301) GOTO STEP02B                             
          ASSIGN &BADEND_RETURN_CODE = 2001                                     
          GOTO   STEP02Y                                                        
                                                                                
STEP02B:  IF     EXISTS FILE (MG10151S) GOTO STEP02C                            
          ASSIGN &BADEND_RETURN_CODE = 2002                                     
          GOTO   STEP02Y                                                        
                                                                                
STEP02C:  IF     EXISTS FILE (MG21001C) GOTO STEP02Z                            
          ASSIGN &BADEND_RETURN_CODE = 2003                                     
          GOTO   STEP02Y                                                        
                                                                                
STEP02Y:  CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP01                          
          RETURN                                                                
                                                                                
STEP02Z:  [ continue processing ]                                               
                                                                                
***********************************************************************         
* STEP03 -- Get archive parameter, if not found assume NO archive     *         
***********************************************************************         
STEP03:   ASSIGN &ARCHIVE_MG21111C   = "N"                                      
          ASSIGN &ARCHIVE_FREQ       = "0"                                      
                                                                                
STEP03A: RUN MG2151 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)                  
             CANCEL EXIT is STEP30  [ Bypass Parameter Processing ]             
               ENTER ACCEPT WSOPEN = S                                          
               ENTER MG10151I (MG10151S)                                        
               ENTER PARMKEY    KEY = MG2100                                    
      MG2100P: ENTER PARMINFO                                                   
               ENTER PARMKEY    KEY = MG2101                                    
      MG2101P: ENTER PARMINFO                                                   
               ENTER PARMKEY    KEY = &LINK_PARM_1                              
      PARM01P: ENTER PARMINFO                                                   
               ENTER PARMKEY 16                                                 
                                                                                
***********************************************************************         
* STEP04 -- Validate/Process Parameter MG2100, heading 1 Parameter    *         
***********************************************************************         
STEP04:   IF (MG2100P.STATUS) = "N" GOTO STEP05                                 
                                                                                
          ASSIGN &TITLE_01 = (MG2100P.LITERAL)                                  
          IF     &TITLE_01 = &SPACE_40 GOTO STEP05                              
                                                                                
          ASSIGN &PROMPT_TITLE_01(20,40) = &TITLE_01                            
                                                                                
***********************************************************************         
* STEP05 -- Validate/Process Parameter MG2101, heading 2 Parameter    *         
***********************************************************************         
STEP05:   IF (MG2101P.STATUS) = "N" GOTO STEP06                                 
                                                                                
          ASSIGN &TITLE_02 = (MG2101P.LITERAL)                                  
          IF     &TITLE_02 = &SPACE_40 GOTO STEP06                              
                                                                                
          ASSIGN &PROMPT_TITLE_02(20,40) = &TITLE_02                            
                                                                                
***********************************************************************         
* STEP06 -- Validate/process archive parameter                        *         
***********************************************************************         
STEP06:   IF (PARM01P.STATUS) = "N" GOTO STEP06Z                                
          IF (PARM01P.SWITCH) = "N" GOTO STEP06Z [ No Archive ]                 
          IF (PARM01P.SWITCH) = "D" GOTO STEP06X [ Archive to disk ]            
          IF (PARM01P.SWITCH) = "T" GOTO STEP06X [ Archive to tape ]            
                                                                                
          GOTO STEP06Z                                                          
                                                                                
STEP06X:  ASSIGN &ARCHIVE_SWITCH = (PARM01P.SWITCH)                             
          ASSIGN &PARM01_NUMERIC = (PARM01P.NUMERIC)                            
          ASSIGN &TAPE_LABEL     = (PARM01P.LITERAL)                            
          ASSIGN &ARCHIVE_FREQ   = &PARM01_NUMERIC(11,1)                        
          IF     &ARCHIVE_FREQ   = "1" GOTO STEP06Z [ Weekly  Archive ]         
          IF     &ARCHIVE_FREQ   = "2" GOTO STEP06Z [ Monthly Archive ]         
          IF     &ARCHIVE_FREQ   = "3" GOTO STEP06Z [ Qrtly   Archive ]         
          ASSIGN &ARCHIVE_FREQ   = "4" [ Yearly Archive is default    ]         
                                                                                
STEP06Z:  [ Continue ]                                                          
                                                                                
***********************************************************************         
* STEP30 -- MG2110, Create reports from MG21001C                      *         
***********************************************************************         
STEP30:   ASSIGN &STEP_ADD         = 30000                                      
          ASSIGN &MG2110_FILE      = (MG21001C.FILE)                            
          ASSIGN &MG2110_LIBRARY   = (MG21001C.LIBRARY)                         
          ASSIGN &MG2110_VOLUME    = (MG21001C.VOLUME)                          
          ASSIGN &MG2110_REPORT_A  = &LINK_REPORT_NAME_1                        
          ASSIGN &MG2110_REPORT_B  = &LINK_REPORT_NAME_2                        
          ASSIGN &MG2110A_RECORDS  = &LINK_RPT_RECORDS_1                        
          ASSIGN &MG2110B_RECORDS  = &LINK_RPT_RECORDS_2                        
          ASSIGN &RUN_TYPE         = "D"                                        
          CALL   MGRPT                                                          
                                                                                
***********************************************************************         
* STEP31 -- MG2111, append MG21001C to MG21111C                       *         
***********************************************************************         
STEP31:   RUN MG2111 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)                 
              CANCEL EXIT is STEP31D                                            
               ENTER ACCEPT     WSFREQ = &ARCHIVE_FREQ                          
               ENTER MA00301    (MA00301)                                       
               ENTER MG21001C   (MG21001C)                                      
               ENTER MG21111C   FILE     = (MG21111C.FILE),                     
                                LIBRARY  = (MG21111C.LIBRARY),                  
                                VOLUME   = (MG21111C.VOLUME),                   
                                RECORDS  = &LINK_RECORDS_2,                     
                                RELEASE  = NO                                   
                                                                                
          IF STEP31  = 0 GOTO STEP32                                            
          IF STEP31  = 1 GOTO STEP31C                                           
                                                                                
          ASSIGN &BADEND_RETURN_CODE = 31000 + STEP31                           
STEP31B:  CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP31                          
          RETURN                                                                
                                                                                
STEP31C:  ASSIGN &ARCHIVE_MG21111C = "Y"                                        
          GOTO   STEP32                                                         
                                                                                
STEP31D:  ASSIGN &BADEND_RETURN_CODE = 31999                                    
          GOTO   STEP31B                                                        
                                                                                
***********************************************************************         
* STEP32 -- Scratch MG21001C, This file must be scratched             *         
***********************************************************************         
STEP32:   ASSIGN &MGRB2155_FILE = (MG21001C.FILE)                               
          ASSIGN &MGRB2155_LIB  = (MG21001C.LIBRARY)                            
          ASSIGN &MGRB2155_VOL  = (MG21001C.VOLUME)                             
          ASSIGN &STEP_ADD      = 32000                                         
          CALL   SCR                                                            
                                                                                
***********************************************************************         
* STEP33 -- Will determine if MG21111C should be archived             *         
***********************************************************************         
STEP33:   IF   &ARCHIVE_MG21111C = "N" GOTO EOJ                                 
          IF   &ARCHIVE_SWITCH   = "N" GOTO EOJ                                 
                                                                                
***********************************************************************         
* STEP34 -- MG2110, Create report from MG21111C, only executed if     *         
*                   MG21111C is to be archived.                       *         
***********************************************************************         
STEP34:   ASSIGN &STEP_ADD         = 34000                                      
          ASSIGN &MG2110_FILE      = (MG21111C.FILE)                            
          ASSIGN &MG2110_LIBRARY   = (MG21111C.LIBRARY)                         
          ASSIGN &MG2110_VOLUME    = (MG21111C.VOLUME)                          
          ASSIGN &MG2110_REPORT_A  = &LINK_REPORT_NAME_3                        
          ASSIGN &MG2110_REPORT_B  = &LINK_REPORT_NAME_4                        
          ASSIGN &MG2110A_RECORDS  = &LINK_RPT_RECORDS_3                        
          ASSIGN &MG2110B_RECORDS  = &LINK_RPT_RECORDS_4                        
          ASSIGN &RUN_TYPE         = "A"                                        
          CALL   MGRPT                                                          
                                                                                
***********************************************************************         
* STEP35 -- Determine how MG21111C is archived                        *         
***********************************************************************         
STEP35:   IF   &ARCHIVE_SWITCH   = "T" GOTO STEP100 [ Tape Archive ]            
          IF   &ARCHIVE_SWITCH   = "D" GOTO STEP200 [ Disk Archive ]            
          GOTO EOJ                                                              
                                                                                
                                                                                
*#####################################################################*         
* SECTION STEP100's ARCHIVE MS10401I to TAPE                          *         
*#####################################################################*         
***********************************************************************         
* STEP100 -- Prompt for Tape to use                                   *         
***********************************************************************         
STEP100:  MESSAGE ERASE = YES ROW 1                                             
               DIM &PROMPT_TITLE_01;                                            
               DIM &PROMPT_TITLE_02;                                            
               DIM &PROMPT_TITLE_03;;;                                          
               DIM    "      ",                                                 
                      "File " !! &MG21111C_FILE(1,*) !!                         
                       " in " !! &MG21111C_LIB(1,*)  !!                         
                       " on " !! &MG21111C_VOL(1,*)  !!                         
                      " is about to be archived";                               
               DIM    "      ",                                                 
                      "to Tape.  If the tape drives are down you ",             
                      "may select Pf-16 to bypass";                             
               DIM    "      ",                                                 
                      "tape processing or Pf-01 to ",                           
                      "archive to Disk."                                        
                                                                                
          MESSAGE ERASE = NO ROW 22                                             
               BRIGHT &MESSAGE;                                                 
               LINE   &SPACE_79;                                                
               DIM  "(ENTER) Process;  (01) Archive to Disk; ",                 
                    "(16) Bypass Tape Processing"                               
                                                                                
          PROMPT PFKEY = &Pf,  ERASE = NO ROW 12                                
               DIM    "          ",                                             
                      "'NL' Tape Volume to be used is:",                        
                      BRIGHT UPPER &TAPE;                                       
               DIM    "          ",                                             
                      "Tape Dev. Number to be used is:",                        
                      BRIGHT NUMERIC &DEVICE;;                                  
               DIM    "          ",                                             
                      BRIGHT "label tape as: " !! &TAPE_LABEL                   
                                                                                
          IF &Pf = 00 GOTO STEP101                                              
          IF &Pf = 01 GOTO STEP100B                                             
          IF &Pf = 16 GOTO STEP100A                                             
                                                                                
          ASSIGN &MESSAGE = "Invalid Pf-key selected"                           
          GOTO   STEP100                                                        
                                                                                
STEP100A: ASSIGN &BADEND_RETURN_CODE = 100999                                   
          CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP100                         
          RETURN                                                                
                                                                                
STEP100B: ASSIGN &MESSAGE            = &SPACE_79                                
          ASSIGN &BADEND_RETURN_CODE = 100900                                   
          CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP100                         
          GOTO   STEP200                                                        
                                                                                
***********************************************************************         
* STEP101 -- Validate the tape volume & device #                      *         
***********************************************************************         
STEP101:  ASSIGN &DEV_NAME = &DEVICE                                            
          CALL   DEVEDIT                                                        
          IF     &DEV_NAME ne "   " GOTO STEP101A                               
          ASSIGN &MESSAGE = "'" !! &DEVICE !! "'" !!                            
                            " is an invalid device number"                      
          ASSIGN &DEVICE    = "   "                                             
          GOTO   STEP100                                                        
                                                                                
STEP101A: ASSIGN &VOLUME_NAME = &TAPE                                           
          CALL   VOLEDIT                                                        
          IF     &VOLUME_NAME ne "      " GOTO STEP102                          
          ASSIGN &MESSAGE = "'" !! &TAPE !! "'" !!                              
                            " is an invalid tape volume name"                   
          ASSIGN &TAPE    = "      "                                            
          GOTO   STEP100                                                        
                                                                                
***********************************************************************         
* STEP102 -- Will mount the Tape Volume                               *         
***********************************************************************         
STEP102:  MOUNT TAPE &TAPE on &DEVICE with NO LABEL                             
                                                                                
          IF STEP102 = 0 GOTO STEP103                                           
                                                                                
          ASSIGN &MESSAGE_R_C = STEP102                                         
                                                                                
          ASSIGN &MESSAGE = "Unable to MOUNT Tape "  !! &TAPE(1,*) !!           
                            ", MOUNT Return Code = " !! &MESSAGE_R_C            
          GOTO STEP100                                                          
                                                                                
***********************************************************************         
* STEP103 -- Backup MG21111C to Tape                                  *         
***********************************************************************         
STEP103:  RUN BACKUP                                                            
              CANCEL EXIT is STEP103B                                           
               ENTER SPEED                                                      
               ENTER INPUT    FILE     = (MG21111C.FILE),                       
                              LIBRARY  = (MG21111C.LIBRARY),                    
                              VOLUME   = (MG21111C.VOLUME),                     
                              FUNCTION = BACKUP, DEVICE = DISK,                 
                              ERRDISP  = N,      NUMBER = 0001                  
               ENTER OUTPUT   FILE     = (MG21111C.FILE),                       
                              LIBRARY  = (MG21111C.LIBRARY),                    
                              VOLUME   = &TAPE,                                 
                              DEVICE   = TAPE,   CLEAR = YES                    
               ENTER OPTIONS                                                    
               ENTER LOGFILES PRINT    = YES                                    
               ENTER EOJ 16                                                     
                                                                                
          IF     STEP103             = 0 GOTO STEP104                           
          ASSIGN &BADEND_RETURN_CODE = 103000 + STEP103                         
STEP103A: CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP100 [get new tape]          
          RETURN                                                                
                                                                                
STEP103B: ASSIGN &BADEND_RETURN_CODE = 103999                                   
          GOTO   STEP103A                                                       
                                                                                
***********************************************************************         
* STEP104 -- Will dismount the Tape Volume                            *         
***********************************************************************         
STEP104:  DISMOUNT TAPE &TAPE                                                   
                                                                                
          IF STEP104 = 0 GOTO STEP105                                           
                                                                                
          ASSIGN &BADEND_RETURN_CODE = 104000 + STEP104                         
          CALL   BADEND                                                         
                                                                                
***********************************************************************         
* STEP105 -- Continue with normal flow of procedure                             
***********************************************************************         
STEP105:  GOTO STEP900  [ To Scratch MG21111C ]                                 
                                                                                
*#####################################################################*         
* STEP 200's, Archive MG21111C to Disk                                *         
*#####################################################################*         
***********************************************************************         
* STEP200 -- Scratch OLD History File                                 *         
***********************************************************************         
STEP200:  ASSIGN &MGRB2155_FILE = (MG21001H.FILE)                               
          ASSIGN &MGRB2155_LIB  = (MG21001H.LIBRARY)                            
          ASSIGN &MGRB2155_VOL  = (MG21001H.VOLUME)                             
          ASSIGN &STEP_ADD      = 200000                                        
          CALL   SCR                                                            
                                                                                
***********************************************************************         
* STEP203 -- Copy MG21111C to Disk                                    *         
***********************************************************************         
STEP203:  RUN COPY                                                              
              CANCEL EXIT is STEP203B                                           
               ENTER INPUT      (MG21111C)                                      
               ENTER OPTIONS                                                    
               ENTER OUTPUT     FILE     = (MG21001H.FILE),                     
                                LIBRARY  = (MG21001H.LIBRARY),                  
                                VOLUME   = (MG21001H.VOLUME),                   
                                RELEASE  = YES                                  
               ENTER EOJ        16                                              
                                                                                
          IF     STEP203             = 0 GOTO STEP204                           
          ASSIGN &BADEND_RETURN_CODE = 203000 + STEP203                         
STEP203A: CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO STEP200                         
          RETURN                                                                
                                                                                
STEP203B: ASSIGN &BADEND_RETURN_CODE = 203999                                   
          GOTO   STEP203A                                                       
                                                                                
***********************************************************************         
* STEP204 -- Continue                                                 *         
***********************************************************************         
STEP204:  GOTO STEP900 [ scratch MG21111C ]                                     
                                                                                
***********************************************************************         
* STEP900 -- Scratch MG21111C                                         *         
***********************************************************************         
STEP900:  ASSIGN &MGRB2155_FILE = (MG21111C.FILE)                               
          ASSIGN &MGRB2155_LIB  = (MG21111C.LIBRARY)                            
          ASSIGN &MGRB2155_VOL  = (MG21111C.VOLUME)                             
          ASSIGN &STEP_ADD      = 900000                                        
          CALL   SCR                                                            
                                                                                
**********************************************************************         
* EOJ -- End of Job                                                   *         
***********************************************************************         
EOJ:      RETURN                                                                
                                                                                
*#####################################################################*         
*                         S U B R O U T I N E S                       *         
*#####################################################################*         
***********************************************************************         
* MGRPT -- Run MG2110 to create reports                               *         
***********************************************************************         
MGRPT:    IF &SPOOL_LIB        = "        " GOTO MGRPT02                        
          IF &SPOOL_VOL        = "      "   GOTO MGRPT02                        
                                                                                
          IF &MG2110_REPORT_A ne "        "                                     
                SCRATCH &MG2110_REPORT_A in &SPOOL_LIB on &SPOOL_VOL            
          IF &MG2110_REPORT_B ne "        "                                     
                SCRATCH &MG2110_REPORT_B in &SPOOL_LIB on &SPOOL_VOL            
                                                                                
MGRPT02:  RUN MG2110 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)                 
              CANCEL EXIT is MGRPT80                                            
               ENTER ACCEPT     WSRPTA   = &MG2110_REPORT_A,                    
                                WSRPTB   = &MG2110_REPORT_B,                    
                                WSJOB    = &LINK_JOB_STREAM,                    
                                WSRUN    = &RUN_TYPE                            
               ENTER MG10151S   (MG10151S)                                      
               ENTER MG21001C   FILE     = &MG2110_FILE,                        
                                LIBRARY  = &MG2110_LIBRARY,                     
                                VOLUME   = &MG2110_VOLUME                       
     MG21101C: ENTER MG21101C   FILE     = ##21101C,                            
                                RECORDS  = &MG2110A_RECORDS,                    
                                RELEASE  = YES                                  
      MG2110A: ENTER MG2110A    FILE     = &MG2110_REPORT_A,                    
                                RECORDS  = &MG2110A_RECORDS,                    
                                FILECLAS = " "                                  
      MG2110B: ENTER MG2110B    FILE     = &MG2110_REPORT_B,                    
                                RECORDS  = &MG2110B_RECORDS,                    
                                FILECLAS = " "                                  
                                                                                
          IF  MGRPT02  = 0   GOTO MGRPT90                                       
                                                                                
          ASSIGN &BADEND_RETURN_CODE = MGRPT02 + &STEP_ADD                      
          CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO MGRPT                           
          GOTO   MGRPT99                                                        
                                                                                
MGRPT80:  ASSIGN &BADEND_RETURN_CODE = 999 + &STEP_ADD                          
          CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO MGRPT                           
          GOTO   MGRPT99                                                        
                                                                                
MGRPT90:  SCRATCH (MG21101C)                                                    
          ASSIGN &MGRB2112_FILE = (MG2110A.FILE)                                
          ASSIGN &MGRB2112_LIB  = (MG2110A.LIBRARY)                             
          ASSIGN &MGRB2112_VOL  = (MG2110A.VOLUME)                              
          CALL   XFR  [ Transfer Report to development ]                        
          ASSIGN &MGRB2112_FILE = (MG2110B.FILE)                                
          ASSIGN &MGRB2112_LIB  = (MG2110B.LIBRARY)                             
          ASSIGN &MGRB2112_VOL  = (MG2110B.VOLUME)                              
          CALL   XFR  [ Transfer Report to development ]                        
                                                                                
MGRPT99:  ASSIGN  &BADEND_RETURN_CODE  = 0                                      
          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   ]                                                              
                                                                                
***********************************************************************         
* DEVEDIT -- Will validate a device # to make sure it contains        *         
*            no invalid characters                                    *         
***********************************************************************         
DEVEDIT: IF &DEV_NAME = "   " GOTO DEVEDIT9                                     
                                                                                
         ASSIGN &DEV_LENGTH = &LENGTH(&DEV_NAME(1,*))                           
                                                                                
***** DEVICE MUST NOT CONTAIN SPECIAL CHARACTERS                                
                                                                                
         IF &VERIFY(&DEV_NAME,&DEV_CHARS) NE 0                                  
           THEN ASSIGN &DEV_NAME = "      "                                     
                                                                                
***** DEVICE MUST NOT CONTAIN EMBEDDED BLANKS                                   
                                                                                
        IF &INDEX(&DEV_NAME," ") NE 0                                           
        IF &INDEX(&DEV_NAME," ") NE &DEV_LENGTH+1                               
           THEN ASSIGN &DEV_NAME = "   "                                        
                                                                                
DEVEDIT9: END                                                                   
                                                                                
***********************************************************************         
* BADEND --  Abnormal end of job, will execute if there is a return   *         
*            code.                                                    *         
***********************************************************************         
BADEND:   RUN MGRB2005 in (FPSULOAD.LIBRARY) on (FPSULOAD.VOLUME)               
                       USING &BADEND_APPLICATION,                               
                             &BADEND_PROCEDURE,                                 
                             &BADEND_RETURN_CODE,                               
                             &BADEND_RERUN_SW,                                  
                             &BADEND_RESTORE_SW                                 
              CANCEL EXIT is BADEND                                             
                                                                                
END                                                                             
                                                                                
***********************************************************************         
* SCR -- Run MGRB2155 to scratch a file                               *         
***********************************************************************         
SCR:      RUN MGRB2155 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)               
              using &MGRB2155_FILE, &MGRB2155_LIB, &MGRB2155_VOL                
              CANCEL EXIT is SCR01                                              
                                                                                
          GOTO SCR99                                                            
                                                                                
SCR01:    ASSIGN &BADEND_RETURN_CODE = 999 + &STEP_ADD                          
          CALL   BADEND                                                         
          IF     &BADEND_RERUN_SW    = "Y" GOTO SCR                             
                                                                                
SCR99:    END                                                                   
                                                                                
***********************************************************************         
* XFR -- Run MGRB2112 to transfer a file                              *         
***********************************************************************         
XFR:      RUN MGRB2112 in (FPSUPROC.LIBRARY) on (FPSUPROC.VOLUME)               
                       using &MGRB2112_FILE, &MGRB2112_LIB,                     
                             &MGRB2112_VOL,  &LINK_PARM_2                       
              CANCEL EXIT is XFR99                                              
              ERROR  EXIT is XFR99                                              
                                                                                
XFR99:    END                                                                   
                                                                                
************** ####### END OF PROCEDURE MGRB2110 ####### *************          
