         PROCEDURE MGRB2130                                                     
                   using &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),              
                         &LINK_DATE                as String (06),              
                         &LINK_TITLE               as String (40)               
                  OPTIONS PROCMSG = NO                                          
                                                                                
***********************************************************************         
* PROCEDURE:  MGRB2130                                                *         
* AUTHOR:     JMC                                                     *         
* TITLE:      Archive of BOSS Job Stream Log File for a specify       *         
*             application.                                            *         
* REMARKS:    This is called by a number of applications.             *         
*                                                                     *         
*             This procedure will first create reports MACRPTA and    *         
*             MACRPTB from BOSSLOG.  It will then append BOSSLOG      *         
*             to the end of BOSSARCV.  At the end of the month file   *         
*             BOSSARCV is archived to Disk or Tape based upon a       *         
*             parameter passed into the program.                      *         
*             If BOSSARCV is to be archived BOSSLOG will execute      *         
*             to generate the monthly report.                         *         
*                                                                     *         
* Note:    1. MGRB2130 does NOT pass return codes back to the calling *         
*             procedure, it calls MGRB2005 internally to display any  *         
*             errors to the operator.                                 *         
*          2. This procedure uses parameter file MG10151S.  Plans     *         
*             are to change to another parameter file in the future.  *         
*                                                                     *         
*=====================================================================*         
*                            LINK PARAMETERS                          *         
*                           =================                         *         
* Link Parameter       Description                                    *         
* -------------------- ---------------------------------------------- *         
* &LINK_REPORT_NAME_1  Name to use for report MACRPTA from BOSSLOG    *         
* &LINK_RPT_RECORDS_1  Records to allocate for Report MACRPTA         *         
* &LINK_REPORT_NAME_2  Name to use for report MACRPTB from BOSSLOG    *         
* &LINK_RPT_RECORDS_2  Records to allocate for Report MACRPTB         *         
* &LINK_REPORT_NAME_3  Name to use for report MACRPTA from BOSSARCV   *         
* &LINK_RPT_RECORDS_3  Records to allocate for Report MACRPTA         *         
* &LINK_REPORT_NAME_4  Name to use for report MACRPTA from BOSSARCV   *         
* &LINK_RPT_RECORDS_4  Records to allocate for Report MACRPTB         *         
* &LINK_CATENTRY_1     Catalog entry for BOSSLOG, Batch Log File      *         
* &LINK_CATENTRY_2     Catalog entry for BOSSARCV, Batch Archive File *         
* &LINK_RECORDS_2      Records to allocate when creating BOSSARCV     *         
* &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)            *         
* &LINK_DATE           Business date to be used on the reports        *         
* &LINK_TITLE          Header title to be used on the reports         *         
*                                                                     *         
*=====================================================================*         
*                            MODIFICATIONS                            *         
* Version  who   Date   Why                                           *         
* -------- --- -------- --------------------------------------------- *         
* 00.01.00 JMC 09/23/92 Added FPSULOAD/FPSUPROC Catalog               *         
* 00.00.00 WFG 03/23/90 Original Version                              *         
*                                                                     *         
***********************************************************************         
                                                                                
          DECLARE &VERSION            as String (08) Initial "00.01.00"         
          DECLARE &PROCEDURE          as String (08) Initial "MGRB2130"         
                                                                                
          DECLARE &PRINT_MODE         as String (01) Initial "H"                
          DECLARE &RUN_TYPE           as String (01) Initial " "                
          DECLARE &PARM01_NUMERIC     as String (12) Initial " "                
          DECLARE &ARCHIVE_BOSSARCV   as String (01) Initial "N"                
          DECLARE &ARCHIVE_FREQ       as String (01) Initial "4"                
          DECLARE &ARCHIVE_SWITCH     as String (01) Initial "N"                
          DECLARE &BOSSARCV_FILE      as String (08) Initial " "                
          DECLARE &BOSSARCV_LIB       as String (08) Initial " "                
          DECLARE &BOSSARCV_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 &BOSSLOG_FILE       as String (08) Initial " "                
          DECLARE &BOSSLOG_LIBRARY    as String (08) Initial " "                
          DECLARE &BOSSLOG_VOLUME     as String (08) Initial " "                
          DECLARE &REPORT_A           as String (08) Initial " "                
          DECLARE &REPORT_B           as String (08) Initial " "                
          DECLARE &REPORTA_RECORDS    as String (07) Initial " "                
          DECLARE &REPORTB_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 &REPORT_DATE        as String (06) Initial " "                
          DECLARE &REPORT_TITLE       as String (40) 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 "MGRB2130"         
          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                          
     BOSSLOG: ENTER LOCATION                                                    
               ENTER CATGET CATNAME = &LINK_CATENTRY_2                          
     BOSSARCV: 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 &BOSSARCV_FILE = (BOSSARCV.FILE)                               
          ASSIGN &BOSSARCV_LIB  = (BOSSARCV.LIBRARY)                            
          ASSIGN &BOSSARCV_VOL  = (BOSSARCV.VOLUME)                             
          ASSIGN &MG21001H_FILE = (BOSSARCV.FILE)                               
          ASSIGN &MG21001H_LIB  = (BOSSARCV.LIBRARY)                            
          ASSIGN &MG21001H_VOL  = (BOSSARCV.VOLUME)                             
                                                                                
***********************************************************************         
* STEP02 -- Will make sure required files exist                       *         
***********************************************************************         
STEP02:                                                                         
                                                                                
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 (BOSSLOG) 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_BOSSARCV   = "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 -- BOSSLOG, Create reports from BOSSLOG                     *          
***********************************************************************         
STEP30:   ASSIGN &STEP_ADD         = 30000                                      
          ASSIGN &BOSSLOG_FILE     = (BOSSLOG.FILE)                             
          ASSIGN &BOSSLOG_LIBRARY  = (BOSSLOG.LIBRARY)                          
          ASSIGN &BOSSLOG_VOLUME   = (BOSSLOG.VOLUME)                           
          ASSIGN &REPORT_A         = &LINK_REPORT_NAME_1                        
          ASSIGN &REPORT_B         = &LINK_REPORT_NAME_2                        
          ASSIGN &REPORTA_RECORDS  = &LINK_RPT_RECORDS_1                        
          ASSIGN &REPORTB_RECORDS  = &LINK_RPT_RECORDS_2                        
          ASSIGN &RUN_TYPE         = "D"                                        
          ASSIGN &REPORT_DATE      = &LINK_DATE                                 
          ASSIGN &REPORT_TITLE     = &LINK_TITLE                                
                                                                                
          CALL   MGRPT                                                          
                                                                                
***********************************************************************         
* STEP31 -- BOSSCO, append BOSSLOG to BOSSARCV                       *          
***********************************************************************         
STEP31:   RUN BOSSCO                                                            
              CANCEL EXIT is STEP31D                                            
               ENTER ACCEPT     WSFREQ = &ARCHIVE_FREQ                          
               ENTER MA00301   (MA00301)                                        
               ENTER BOSSLOG   (BOSSLOG)                                        
               ENTER BOSSARCV   FILE     = (BOSSARCV.FILE),                     
                                LIBRARY  = (BOSSARCV.LIBRARY),                  
                                VOLUME   = (BOSSARCV.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_BOSSARCV = "Y"                                        
          GOTO   STEP32                                                         
                                                                                
STEP31D:  ASSIGN &BADEND_RETURN_CODE = 31999                                    
          GOTO   STEP31B                                                        
                                                                                
***********************************************************************         
* STEP32 -- Scratch BOSSLOG, This file must be scratched             *          
***********************************************************************         
STEP32:   ASSIGN &MGRB2155_FILE = (BOSSLOG.FILE)                                
          ASSIGN &MGRB2155_LIB  = (BOSSLOG.LIBRARY)                             
          ASSIGN &MGRB2155_VOL  = (BOSSLOG.VOLUME)                              
          ASSIGN &STEP_ADD      = 32000                                         
          CALL   SCR                                                            
                                                                                
***********************************************************************         
* STEP33 -- Will determine if BOSSARCV should be archived             *         
***********************************************************************         
STEP33:   IF   &ARCHIVE_BOSSARCV = "N" GOTO EOJ                                 
          IF   &ARCHIVE_SWITCH   = "N" GOTO EOJ                                 
                                                                                
***********************************************************************         
* STEP34 -- BOSSLOG, Create report from BOSSARCV, only executed if    *         
*                   BOSSARCV is to be archived.                       *         
***********************************************************************         
STEP34:   ASSIGN &STEP_ADD         = 34000                                      
          ASSIGN &BOSSLOG_FILE     = (BOSSARCV.FILE)                            
          ASSIGN &BOSSLOG_LIBRARY  = (BOSSARCV.LIBRARY)                         
          ASSIGN &BOSSLOG_VOLUME   = (BOSSARCV.VOLUME)                          
          ASSIGN &REPORT_A         = &LINK_REPORT_NAME_3                        
          ASSIGN &REPORT_B         = &LINK_REPORT_NAME_4                        
          ASSIGN &REPORTA_RECORDS  = &LINK_RPT_RECORDS_3                        
          ASSIGN &REPORTB_RECORDS  = &LINK_RPT_RECORDS_4                        
          ASSIGN &RUN_TYPE         = "A"                                        
          ASSIGN &REPORT_DATE      = "      "                                   
          ASSIGN &REPORT_TITLE     = &LINK_TITLE                                
                                                                                
          CALL   MGRPT                                                          
                                                                                
***********************************************************************         
* STEP35 -- Determine how BOSSARCV 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 " !! &BOSSARCV_FILE(1,*) !!                         
                       " in " !! &BOSSARCV_LIB(1,*)  !!                         
                       " on " !! &BOSSARCV_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 BOSSARCV to Tape                                  *         
***********************************************************************         
STEP103:  RUN BACKUP                                                            
              CANCEL EXIT is STEP103B                                           
               ENTER SPEED                                                      
               ENTER INPUT    FILE     = (BOSSARCV.FILE),                       
                              LIBRARY  = (BOSSARCV.LIBRARY),                    
                              VOLUME   = (BOSSARCV.VOLUME),                     
                              FUNCTION = BACKUP, DEVICE = DISK,                 
                              ERRDISP  = N,      NUMBER = 0001                  
               ENTER OUTPUT   FILE     = (BOSSARCV.FILE),                       
                              LIBRARY  = (BOSSARCV.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 BOSSARCV ]                                 
                                                                                
*#####################################################################*         
* STEP 200's, Archive BOSSARCV 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 BOSSARCV to Disk                                    *         
***********************************************************************         
STEP203:  RUN COPY                                                              
              CANCEL EXIT is STEP203B                                           
               ENTER INPUT      (BOSSARCV)                                      
               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 BOSSARCV ]                                     
                                                                                
***********************************************************************         
* STEP900 -- Scratch BOSSARCV                                         *         
***********************************************************************         
STEP900:  ASSIGN &MGRB2155_FILE = (BOSSARCV.FILE)                               
          ASSIGN &MGRB2155_LIB  = (BOSSARCV.LIBRARY)                            
          ASSIGN &MGRB2155_VOL  = (BOSSARCV.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 BOSSLOG to create reports                              *         
***********************************************************************         
MGRPT:                                                                          
                                                                                
MGRPT01:  RUN BOSSLOG                                                           
              CANCEL EXIT is MGRPT80                                            
               ENTER ACCEPT     WSDATE   = &REPORT_DATE,                        
                                WSTITLE  = &REPORT_TITLE                        
               ENTER BOSSLOG    FILE     = &BOSSLOG_FILE,                       
                                LIBRARY  = &BOSSLOG_LIBRARY,                    
                                VOLUME   = &BOSSLOG_VOLUME                      
     MG21101C: ENTER MG21101C   FILE     = ##21101C,                            
                                RECORDS  = &REPORTA_RECORDS,                    
                                RELEASE  = YES                                  
      MACRPTA: ENTER MACRPTA    FILE     = &REPORT_A,                           
                                RECORDS  = &REPORTA_RECORDS,                    
                                FILECLAS = $                                    
      MACRPTB: ENTER MACRPTB    FILE     = &REPORT_B,                           
                                RECORDS  = &REPORTB_RECORDS,                    
                                FILECLAS = $                                    
                                                                                
          IF  MGRPT01  = 0   GOTO MGRPT90                                       
                                                                                
          ASSIGN &BADEND_RETURN_CODE = MGRPT01 + &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 = (MACRPTA.FILE)                                
          ASSIGN &MGRB2112_LIB  = (MACRPTA.LIBRARY)                             
          ASSIGN &MGRB2112_VOL  = (MACRPTA.VOLUME)                              
          CALL   XFR  [ Transfer Report to development ]                        
          ASSIGN &MGRB2112_FILE = (MACRPTB.FILE)                                
          ASSIGN &MGRB2112_LIB  = (MACRPTB.LIBRARY)                             
          ASSIGN &MGRB2112_VOL  = (MACRPTB.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 (FPSUPROC.LIBRARY) on (FPSUPROC.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 MGRB2130 ####### *************          
