| $ SET VERIFY
$!*********************Digital Equipment Corporation****************************
$!
$! TPAS_COPY_NOR_MNTHLY.COM Author: K Bhaskara Rao.
$!
$! Date Written: 02-JUN-1994
$! Date Last Modified:
$!
$! Process Remarks: This procedure copies the following files
$! TPAS_NOR_DB_####.UNL and TPAS_NOR_DB_####.RRD
$! from the ACADMY::TPAS_II$OUTBOUND area.
$!
$! ST000 - This step checks for system restart and performs the
$! set logicals step to set process logicals and show all
$! logicals used in this procedure.
$!
$! ST005 - This step captures the latest File Name of
$! TPAS_NOR_DB_####.UNL and TPAS_NOR_DB_###.RRD
$! from ACADMY and also Extracts
$! the Serial Number from the file.
$! Searches for TPAS_NOR_SERIAL.DAT file to capture
$! Last Processed Serial Number of *.DAT file
$! for a comparison
$!
$! ST010 - This step copies the file mentioned to the sites.
$!
$! ST020 - This step mail a notification back to APPIX if good
$! copy
$!
$! Recovery Instructions: THIS STREAM IS RESTARTABLE
$!
$! Dependencies: None
$!------------------------------------------------------------------------------
$!
$! REVISION HISTORY:
$! 5-OCT-1995 Charley Flach Ayr, Scotland
$!
$! Unlike the other copy command streams this one expects a specific serial
$! number, i.e. one greater that last month. However there is no guarantee
$! that this will always be the case as the NOR file may have been
$! processed more than once in a month. In this case the command stream
$! would fail.
$!
$! To prevent this from happening I have change the serial number checking
$! code to match the other copy jobs.
$!
$! This is an unsupported hack! If you reinstall TPAS 3.2 you will lose it!
$!------------------------------------------------------------------------------
$!
$ ST000:
$!------
$ ON ERROR THEN GOTO BD000
$ ERROR_STATUS = "FALSE"
$ IF P1 .NES. ""
$ THEN
$ GOTO 'P1
$ ENDIF
$ IF F$MODE() .EQS. "BATCH"
$ THEN
$ SHOW SYMBOL $RESTART
$ IF $RESTART
$ THEN
$ GOSUB SET_LOGICALS
$ GOTO 'BATCH$RESTART
$ ENDIF
$ ENDIF
$ IF F$MODE() .EQS. "OTHER"
$ THEN
$ SHOW SYMBOL $VSSRESTART
$ IF $VSSRESTART
$ THEN
$ GOSUB SET_LOGICALS
$ GOTO 'BATCH$RESTART
$ ENDIF
$ ENDIF
$!
$ IF F$MODE() .EQS. "BATCH"
$ THEN
$ SET RESTART_VALUE = "ST000"
$ SHOW QUEUE *BATCH
$ ENDIF
$ IF F$MODE() .EQS. "OTHER"
$ THEN
$ SCHEDULE SET RESTART ST000
$ SCHEDULE SHOW JOB/BRIEF
$!
$! May give /USER= qualifier in the above statement.
$!
$ ENDIF
$!
$ SHOW TIME
$ SHOW DEFAULT
$ SHOW DEVICE D
$ PURGE/LOG/KEEP=4 TPAS_COPY_NOR_MNTHLY.LOG
$!
$!can give logical name for the log file/directory in the above statement.
$!
$ GOSUB SET_LOGICALS
$!
$ GOTO GD000
$!
$ GD000:
$!------
$ GOTO ST005
$!
$ BD000:
$!------
$ SAVE_STATUS = $STATUS
$ ERROR_STATUS = "TRUE"
$ SHOW TIME
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY-ST000 **FAILED** STREAM ABORTING"
$ GOTO ENDBD
$!
$ SET_LOGICALS:
$!-------------
$ SHOW TIME
$ SHOW DEFAULT
$!
$!*************************************************************************
$!Sites should set up their logicals here, if the logicals are not define
$! system wide already
$!
$! TPAS$TEMP and TPAS$COM are required
$!*************************************************************************
$!
$!
$! Can use
$! @ddua:[directory.COM]TPAS_LOGICALS.COM
$! OR
$! @TPAS$ROOT:[COM]TPAS_LOGICALS.COM
$! OR
$! ASSIGN/LOG/TRANSLATION=CONCEALED ddua:[directory.] TPAS$ROOT
$! ASSIGN/LOG TPAS$ROOT:[TEMP] TPAS$TEMP
$! ASSIGN/LOG TPAS$ROOT:[COM] TPAS$COM
$!
$!
$ SHOW LOGICAL/PROCESS
$!
$ RETURN
$!
$ ST005:
$!------------------------------------------------------------------------------
$! TPAS_COPY_NOR_MNTHLY - STEP 005 -RESTARTABLE-
$!------------------------------------------------------------------------------
$! This step searches the .UNL file extracts the serial number into
$! a symbol and comapres with the Serial Number available in
$! TPAS_NOR_SERIAL.DAT file
$!------------------------------------------------------------------------------
$!
$ ON ERROR THEN GOTO BD005
$ IF F$MODE() .EQS. "BATCH"
$ THEN
$ SET RESTART_VALUE = "ST005"
$ ENDIF
$ IF F$MODE() .EQS. "OTHER"
$ THEN
$ SCHEDULE SET RESTART ST005
$ ENDIF
$!
$ SHOW TIME
$ SET DEFAULT TPAS$TEMP
$ SHOW DEFAULT
$!
$!
$ FILE_NAME_RRD=F$SEARCH("ACADMY""TPAS_XFER""::TPAS_II$OUTBOUND:TPAS_NOR_DB*.RRD;0")
$ FILE_NAME_UNL=F$SEARCH("ACADMY""TPAS_XFER""::TPAS_II$OUTBOUND:TPAS_NOR_DB*.UNL;0")
$!
$ SHOW SYMBOL FILE_NAME_RRD
$ IF FILE_NAME_RRD .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY-ST005 * NO RRD FILE AVAILABLE"
$ GOTO BD005
$ ENDIF
$!
$ SHOW SYMBOL FILE_NAME_UNL
$ IF FILE_NAME_UNL .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY-ST005 * NO UNL FILE AVAILABLE"
$ GOTO BD005
$ ENDIF
$!
$ NAME=F$PARSE(FILE_NAME_RRD,,,"NAME")
$ EXT=F$PARSE(FILE_NAME_RRD,,,"TYPE")
$ TPAS_SERIAL_NUMBER_RRD = F$EXTRACT(12,4,NAME)
$ SHOW SYMB TPAS_SERIAL_NUMBER_RRD
$!
$ NAME=F$PARSE(FILE_NAME_UNL,,,"NAME")
$ EXT=F$PARSE(FILE_NAME_UNL,,,"TYPE")
$ TPAS_SERIAL_NUMBER_UNL = F$EXTRACT(12,4,NAME)
$ SHOW SYMB TPAS_SERIAL_NUMBER_UNL
$!
$ IF TPAS_SERIAL_NUMBER_UNL .NES. TPAS_SERIAL_NUMBER_RRD
$ THEN
$ WRITE SYS$OUTPUT -
"TPAS_COPY_NOR_MNTHLY-ST005 * UNL and RRD SERIAL # DON'T MATCH"
$ GOTO BD005
$ ENDIF
$! Search File TPAS_NOR_SERIAL.DAT
$!
$ FILE_NAME_DAT=F$SEARCH("TPAS$COM:TPAS_NOR_SERIAL.DAT")
$!
$ SHOW SYMBOL FILE_NAME_DAT
$ IF FILE_NAME_DAT .EQS. ""
$ THEN
$ TPAS_SERIAL_NUMBER_CTRL_DAT = TPAS_SERIAL_NUMBER_UNL
$ ELSE
$ OPEN INPUT_FILE TPAS$COM:TPAS_NOR_SERIAL.DAT
$ READ/END_OF_FILE=BD005 INPUT_FILE TPAS_SERIAL_NUMBER_CTRL_DAT
$ CLOSE INPUT_FILE
$ ENDIF
$!
$ SHOW SYMB TPAS_SERIAL_NUMBER_CTRL_DAT
$ SHOW SYMB TPAS_SERIAL_NUMBER_UNL
$!
$! Comaprison of Both serial Numbers
$!
$ IF TPAS_SERIAL_NUMBER_UNL .LES. TPAS_SERIAL_NUMBER_CTRL_DAT
$ THEN
$ WRITE SYS$OUTPUT -
"TPAS_COPY_NOR_MNTHLY-ST005 * NO NEW RRD/UNL FILE AVAILABLE"
$ GOTO BD005
$ ENDIF
$!
$ GD005:
$!------
$ GOTO ST010
$!
$ BD005:
$!-----
$ SAVE_STATUS = "42"
$ ERROR_STATUS = "TRUE"
$ SHOW TIME
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY-ST005 **FAILED** ABORTING"
$ GOTO ENDBD
$!
$!
$ ST010:
$!------------------------------------------------------------------------------
$! TPAS_COPY_NOR_MNTHLY - STEP 010 -RESTARTABLE-
$!------------------------------------------------------------------------------
$! This step copies the .RRD AND UNL files to the site's
$! TPAS$ROOT area from
$! ACADMY::TPAS_II$OUTBOUND area
$!------------------------------------------------------------------------------
$!
$ ON ERROR THEN GOTO BD010
$ IF F$MODE() .EQS. "BATCH"
$ THEN
$ SET RESTART_VALUE = "ST010"
$ ENDIF
$ IF F$MODE() .EQS. "OTHER"
$ THEN
$ SCHEDULE SET RESTART ST010
$ ENDIF
$!
$ SHOW TIME
$ SET DEFAULT TPAS$TEMP
$ SHOW DEFAULT
$!
$ DELETE/LOG/NOCONFIRM TPAS_NOR_DB_*.RRD;*
$ DELETE/LOG/NOCONFIRM TPAS_NOR_DB_*.UNL;*
$ COPY/LOG ACADMY"TPAS_XFER"::TPAS_II$OUTBOUND:TPAS_NOR_DB_*.UNL; []
$ COPY/LOG ACADMY"TPAS_XFER"::TPAS_II$OUTBOUND:TPAS_NOR_DB_*.RRD; []
$!
$ LIST_FILES:
$!----------
$!
$ DIRECTORY/DATE/SIZE TPAS_NOR_DB_*.UNL
$ DIRECTORY/DATE/SIZE TPAS_NOR_DB_*.RRD
$!
$ GOTO GD010
$!
$ GD010:
$!------
$ GOTO ST020
$!
$ BD010:
$!------
$ SAVE_STATUS = "42"
$ ERROR_STATUS = "TRUE"
$ SHOW TIME
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY-ST010 **FAILED** STREAM ABORTING"
$ GOTO ENDBD
$!
$!-----------------------------------------------------------------------------
$!
$ ST020:
$!------------------------------------------------------------------------------
$! TPAS_COPY_NOR_MNTHLY - STEP 020 -RESTARTABLE-
$!------------------------------------------------------------------------------
$! This step mails a notification to the APPIX Organization that the
$! copy was successful.
$!------------------------------------------------------------------------------
$!
$!
$ ON ERROR THEN GOTO BD020
$ WRITE SYS$OUTPUT "TPAS_SEND_MAIL STARTING ...."
$!++
$! Setup the info that is to be included in the mail message.
$!--
$ ! Send mail to node PNEWMN - 17.454 : (17 * 1024) + 454 = node_address
$ APPIX_NODE = "17862"
$ LOC_NODENAME = F$TRNLNM("SYS$NODE") - "::"
$!
$! Finding out the Actual Filename and Create a Symbol to append in the Mail
$!
$! TPAS_NOR_DB_####.UNL, TPAS_NOR_DB_####.RRD
$!
$ DIRECTORY/NOHEADER/NOTRAIL/BRIEF/COLUMN=1/OUTPUT=TPAS_COPY_NOR_DB_DIR.DAT -
TPAS$TEMP:TPAS_NOR_DB_*.RRD;0,TPAS$TEMP:TPAS_NOR_DB_*.UNL;0
$ TYPE TPAS_COPY_NOR_DB_DIR.DAT;
$ OPEN/READ DIR_FILE TPAS_COPY_NOR_DB_DIR.DAT
$ READ DIR_FILE TPAS_RRD_FILE_NAME
$ READ DIR_FILE TPAS_UNL_FILE_NAME
$ CLOSE DIR_FILE
$ DELETE/LOG/NOCONFIRM TPAS_COPY_NOR_DB_DIR.DAT;*
$ SHOW SYMBOL TPAS_RRD_FILE_NAME
$ SHOW SYMBOL TPAS_UNL_FILE_NAME
$!
$!++
$! Create the mail message/file.
$!--
$ OPEN/WRITE HOME SEND_COPY_HOME.TXT
$ WRITE HOME " Date: ''F$TIME()'"
$ WRITE HOME " TPAS_NOR_DB_####.RRD: ''TPAS_RRD_FILE_NAME'"
$ WRITE HOME " TPAS_NOR_DB_####.UNL: ''TPAS_UNL_FILE_NAME'"
$ WRITE HOME " Has been copied to :"
$ WRITE HOME " Node Name: ''loc_nodename'"
$ CLOSE HOME
$!
$!++
$! Set up the type of mail transportation.
$!--
$ TRUE = 1
$ FALSE = 0
$!
$ MAIL_PREFIX = ""
$ NMAIL_EXISTS = FALSE
$ IF F$SEARCH("SYS$SHARE:NM_MAILSHR.EXE") .EQS. ""
$ THEN
$ GOTO SET_MAIL_ADDRESS
$ ENDIF
$!
$ NMAIL_EXISTS = F$FILE_ATTRIBUTES("SYS$SHARE:NM_MAILSHR.EXE", "KNOWN")
$ IF NMAIL_EXISTS .EQS. TRUE
$ THEN
$ MAIL_PREFIX = "NM%"
$ ENDIF
$!
$SET_MAIL_ADDRESS:
$ SEND_HOME = MAIL_PREFIX + "''APPIX_NODE'::QCA_ADMIN"
$!
$!++
$! Send the mail message.
$!--
$!
$ SAVE_MESSAGE = F$ENVIRONMENT("MESSAGE")
$ SET MESSAGE/NOFACILITY/NOTEXT/NOIDENT/NOSEVERITY
$ MAIL SEND_COPY_HOME.TXT 'SEND_HOME' /SUBJECT="TPAS_NOR_DB*.RRD + UNL Have been copied"
$ SET MESSAGE 'SAVE_MESSAGE'
$ DELETE/NOCONFIRM/LOG SEND_COPY_HOME.TXT;*
$!
$!++++
$! The Serial Number using the symbol TPAS_SERIAL_NUMBER_UNL is updated in
$! TPAS_NOR_SERIAL.DAT file
$!
$ SHOW SYMB TPAS_SERIAL_NUMBER_UNL
$!
$ IF TPAS_SERIAL_NUMBER_UNL .NES. ""
$ THEN
$ OPEN/WRITE OUTPUT_FILE TPAS$COM:TPAS_NOR_SERIAL.DAT
$ WRITE OUTPUT_FILE TPAS_SERIAL_NUMBER_UNL
$ CLOSE OUTPUT_FILE
$ ENDIF
$!
$ PURGE/LOG TPAS$COM:TPAS_NOR_SERIAL.DAT
$ TYPE TPAS$COM:TPAS_NOR_SERIAL.DAT;
$!
$!
$ GD020:
$!-----
$ GOTO ENDGD
$!
$ BD020:
$!------
$ SAVE_STATUS = $STATUS
$ ERROR_STATUS = "TRUE"
$ SHOW TIME
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY-ST020 **FAILED** STREAM ABORTING"
$ GOTO ENDBD
$!
$!
$ ENDBD:
$!------------------------------------------------------------------------------
$ ON ERROR THEN GOTO ALLEND
$ SHOW TIME
$!
$ SUPPORT_ACCOUNT=F$GETJPI("0","USERNAME")
$ MAIL -
/TRANSPORT=NM% -
/SUBJECT="TPAS_COPY_NOR_MNTHLY ***FAILED*** Check Log" -
NL: 'SUPPORT_ACCOUNT
$!
$ GOTO ALLEND
$!
$ ENDGD:
$!------------------------------------------------------------------------------
$!
$ ON ERROR THEN GOTO ENDBD
$ SHOW TIME
$ WRITE SYS$OUTPUT "TPAS_COPY_NOR_MNTHLY ENDING SUCCESSFULLY"
$ GOTO ALLEND
$!
$!
$ ALLEND:
$!------------------------------------------------------------------------------
$!
$ ON ERROR THEN EXIT
$ SHOW TIME
$ IF F$MODE() .EQS. "BATCH"
$ THEN
$ SHOW QUEUE *BATCH
$ ENDIF
$ IF F$MODE() .EQS. "OTHER"
$ THEN
$ SCHEDULE SHOW JOB/BRIEF
$!
$! May give /USER qualifier in the above statement
$!
$ ENDIF
$ SHOW DEVICE D
$!
$ SHOW LOGICAL/PROCESS
$!
$ SHOW SYMBOL ERROR_STATUS
$ SET NOVERIFY
$ IF ERROR_STATUS .EQS. "TRUE"
$ THEN
$ EXIT SAVE_STATUS
$ ENDIF
$ EXIT
|