h%T~ SEND_PKG.BCK SEND_PKG.BCK/BACKUP [.SEND...]*.*;0 SEND_PKG.BCK/SAVE/VER/LO SCOPELLITI_P` $ V5.3 _ROVAX::  _ROVAX$DUA0: V5.3 ~ =*[DECUS_KITS.SEND]DOC.DIR;1+,./ 4-o; 0123 KPWO56;7>889~T GHJILN03_BIG_RIGHT.PRARJECOPY_UG.LN03RRJECOPY_UG.TXT=RJECOPY_UG.WPS# SEND_IG.TXT . SEND_SMG.LN039 SEND_SMG.TXT SEND_SMG.WPS# SEND_UG.LN03 SEND_UG.TXT SEND_UG.WPS#)*[DECUS_KITS.SEND.DOC]LN03_BIG_RIGHT.PRA;3+,. / 4 f-0123KPWO 565Yђ7`wI89`"nP GHJ V003.002 LN036101100001250 [!pP0;1;0y\[!p21w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F 0 F18m0d0`wKLLKP1;19}RCOURIRJ02SK00GG\12128644332222 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200 P1;10}RCOURIRJ02SK00GG\(B200P2;10}DBULTN1\(B200 P1;10}RCOURIR202SK00GG\(B200 P1;10}RELITE0L02SK00GG\(B200 P1;10}RELITE0L02SK00GG\(B200 P1;10}RELITE0L02SK00GG\(B200 P1;10}RCOURIR101VK00GG\(B200 P1;10}RCOURIR101VK00GG\(B2000 PRINT_EJECT PORTRAIT[?20 J LANDSCAPE[?21 JNORMAL(B10;22;23m?27l14_POINT_TRIUMVIRATE#1;18}RTRMVRT003WK00GG18m?27h(B18_POINT_TRIUMVIRATE#1;18}RTRMVRT0050K00GG18m?27h(B18_POINT_TRIUMVIRATE_BOLD#1;18}RTRMVRT0050K00PG18m?27h(B24_POINT_TRIUMVIRATE#1;18}RTRMVRT006OK00GG18m?27h(BUS_LEGAL"1;10}RCOURIRJ02SK00GG10;23m(%4USL_COURIER_NORMAL"1;18}RCOURIRJ02SK00GG18;23m(%4USL_COURIER_ITALIC!1;18}RCOURIRJ02SK03GG18;3m(%4USL_ELITE_NORMAL"1;18}RELITE0L02SK00GG18;23m(%4USL_ELITE_ITALIC!1;18}RELITE0L02SK03GG18;3m(%4USL_MODERN_GOTHIC_10"1;18}DMDRGTHL02SK00GG18;23m(%4USL_MODERN_GOTHIC_14"1;18}DMDRGTHG03WK00GG18;23m(%48_POINT_CGTIMES#1;18}RTIMES00028K00GG18;23m?27h10_POINT_CGTIMES#1;18}RTIMES0002SK00GG18;23m?27h10_POINT_CGTIMES_ITALIC#1;18}RTIMES0002SK01GG18;23m?27h10_POINT_CGTIMES_BOLD#1;18}RTIMES0002SK00PG18;23m?27h12_POINT_CGTIMES#1;18}RTIMES0003CK00GG18;23m?27h12_POINT_CGTIMES_BOLD#1;18}RTIMES0003CK00PG18;23m?27h14_POINT_CGTIMES#1;18}RTIMES0003WK00GG18;23m?27h18_POINT_CGTIMES#1;18}RTIMES00050K00GG18;23m?27h18_POINT_CGTIMES_BOLD#1;18}RTIMES00050K00PG18;23m?27h24_POINT_CGTIMES#1;18}RTIMES0006OK00GG18;23m?27h36_POINT_MODERN_II&1;18}RPTCMDRJ0A0K00GG(B18m0;230 G24_POINT_MODERN_II&1;18}RPTCMDRJ06OK00GG(B18m0;150 G18_POINT_MODERN_II&1;18}RPTCMDRJ050K00GG(B18m0;112 G18_POINT_COURIER&1;18}RCOURIRJ050K00GG(B18m0;112 G14_POINT_MONO_SWISS,P1;18}DMNSSWSH03WK00GG\(B?27l0w18_POINT_MONO_SWISS,P1;18}DMNSSWSF050K00GG\(B?27l0w18_POINT_MONO_SWISS_BOLD,P1;18}DMNSSWSF050K00PG\(B?27l0w24_POINT_MONO_SWISS,P1;18}DMNSSWSE06OK00GG\(B?27l0w MONO_SPACE_50 ?27l0;50 G MONO_SPACE_75 ?27l0;75 GMONO_SPACE_100 ?27l0;100 GMONO_SPACE_125 ?27l0;125 GMONO_SPACE_150 ?27l0;150 GMONO_SPACE_175 ?27l0;175 GMONO_SPACE_200 ?27l0;200 GPROPORTIONAL_SPACE?27hJUSTIFICATION_60 1;60s2 FJUSTIFICATION_70 1;70s2 FJUSTIFICATION_80 1;80s2 FJUSTIFICATION_OFF 1;80s0 FBOXO0;50;100;5750;10!|0;50;7600;5750;10!|1;50;100;7500;10!|1;5750;100;7500;10!|BOX1R0;175;450;5400;80!|1;175;450;6885;80!|1;5575;450;6885;80!|0;175;7330;5480;80!|BOX20;175;450;5400;80!|1;175;450;6885;80!|1;5575;450;6885;80!|0;175;7330;5480;80!|0;375;650;5020;20!|1;375;650;6485;20!|0;375;7130;5020;20!|1;5375;650;6485;20!|24PT?27h 19m 240 C 0z18PT?27h 18m 180 C 0z 18PT_BOLD?27h 18m 180 C 0z 1m14PT?27h 18m 140 C 0z6.7_POINT_COURIER!P1;18}RCOURIR101VK00GG\(B10_POINT_COURIER!P1;18}RCOURIRJ02SK00GG\(B10_POINT_ELITE!P1;18}RELITE0L02SK00GG\(BOCR_A!P1;18}ROCRA00J02SK00GG\(BOCR_B!P1;18}ROCRB00J02SK00GG\(B 8_POINT_ROMAN!P1;18}RTIMES00028K00GG\(B10_POINT_ROMAN!P1;18}RTIMES0002SK00GG\(B10_POINT_ROMAN_BOLD!P1;18}RTIMES0002SK00PG\(B10_POINT_ROMAN_ITALIC!P1;18}RTIMES0002SK01GG\(B12_POINT_ROMAN!P1;18}RTIMES0003CK00GG\(B12_POINT_ROMAN_BOLD!P1;18}RTIMES0003CK00PG\(B14_POINT_ROMAN!P1;18}RTIMES0003WK00GG\(B18_POINT_ROMAN!P1;18}RTIMES00050K00GG\(B18_POINT_ROMAN_BOLD!P1;18}RTIMES00050K00PG\(B24_POINT_ROMAN!P1;18}RTIMES0006OK00GG\(B8_POINT_TRIUMVIRATE!P1;18}RTRMVRT0028K00GG\(B10_POINT_TRIUMVIRATE!P1;18}RTRMVRT002SK00GG\(B10_POINT_TRIUMVIRATE_ITALIC!P1;18}RTRMVRT002SK01GG\(B12_POINT_TRIUMVIRATE!P1;18}RTRMVRT003CK00GG\(B14_POINT_TRIUMVIRATE!P1;18}RTRMVRT003WK00GG\(B18_POINT_TRIUMVIRATE!P1;18}RTRMVRT0050K00GG\(B18_POINT_TRIUMVIRATE_BOLD!P1;18}RTRMVRT0050K00PG\(B24_POINT_TRIUMVIRATE!P1;18}RTRMVRT006OK00GG\(B14_POINT_EMBASSY!P1;18}RENGEMB003WK00GG\(B18_POINT_EMBASSY!P1;18}RENGEMB0050K00GG\(B10_POINT_US_LEGAL"(%4P1;18}DMDRGTHL02SK00GG\14_POINT_US_LEGAL"(%4P1;18}DMDRGTHG03WK00GG\14_POINT_MONO_SWISS!P1;18}DMNSSWSH03WK00GG\(B18_POINT_MONO_SWISS!P1;18}DMNSSWSF050K00GG\(B18_POINT_MONO_SWISS_BOLD!P1;18}DMNSSWSF050K00PG\(B24_POINT_MONO_SWISS!P1;18}DMNSSWSE06OK00GG\(B18_POINT_BAR_CODE,P1;18}DBAR39ME0A0K00GG\(B[180;180 B36_POINT_BAR_CODE,P1;18}DBAR39ME0A0K00GG\(B[360;360 BBUILTINP2;18}DBULTN1\(BCBOXw0;50;100;5750;10!|1;50;100;7500;10!|1;5750;100;7500;10!|0;50;7600;2500;10!|0;3325;7600;2475;10!|70d26`CORNING0dHBAR10q!255@!255@!255@!255@!255@HBAR20q!255B!255B!255B!255B!255BHBAR30q!255F!255F!255F!255F!255FHBAR40q!255N!255N!255N!255N!255NHBAR50q!255^!255^!255^!255^!255^HBAR60q!255~!255~!255~!255~!255~&*[DECUS_KITS.SEND.DOC]RJECOPY_UG.LN03;1+,R./ 4 H-0123KPWO56`^Ǎ97-I89`"nP GHJ[!pP2;10}DBULTN1\(B 1;18}RTRMVRT0050K00PG18m?27h(B RJECOPY User's Guide P1;18}RELITE0L02SK00GG\(B November 1989 This document describes how to use the RJECOPY software to copy and convert RJE formatted files to standard format files. Supersession/Update Information: This is a new manual. Operating System and Version: VMS V4.6 and later Software Version: RJECOPY V2.0 1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F RJECOPY-10 F18m0d0`w1;18}RTRMVRT0050K00PG18m?27h(B RJECOPY P1;18}RELITE0L02SK00GG\(B 0q!255@!255@!255@!255@!255@1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT0050K00PG18m?27h(B RJECOPYP1;18}RELITE0L02SK00GG\(B Copies an RJE formatted file to another file which is formatted as a plain text file. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B FORMAT RJECOPY input-file-spec output-file-spec P1;18}RELITE0L02SK00GG\(B 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B PARAMETERS input-file-specP1;18}RELITE0L02SK00GG\(B Specifies the name of an existing file to be copied and converted. Wildcards are not allowed. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B output-file-specP1;18}RELITE0L02SK00GG\(B Specifies the name of the output file into which the converted file is written. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B DESCRIPTIONP1;18}RELITE0L02SK00GG\(B The RJECOPY command is used to convert the record attributes of RJE printer output files. RJE files created by the VMS/SNA RJE system have no record attributes. Each record contains embedded carriage control characters, typically a trailing carriage-return and line-feed character. RJECOPY converts the file's record attributes to "Carriage return carriage return" which is the default for a text file. Overstruck lines are converted from three separate records to one record with embedded carriage returns. For example, the following three records: Title line Title line Title line would be converted to the following record: Title lineTitle lineTitle line 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B QUALIFIERS P1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /NOFORMFEEDP1;18}RELITE0L02SK00GG\(B Causes all formfeed characters to be removed. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F RJECOPY-20 F18m0d0`w 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /NONULLSP1;18}RELITE0L02SK00GG\(B Causes all null characters (ASCII zero) to be converted to blanks. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /STRIPP1;18}RELITE0L02SK00GG\(B Causes all text up to the first formfeed to be deleted. Typically, this will cause the banner page to be deleted. Note that if the banner extends to a second page, part of it will remain at the start of the final output file. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /TRIM=numberP1;18}RELITE0L02SK00GG\(B Specifies the number of lines to trim from the start of the output file. Note that if the /STRIP qualifier is also used, this action happens after the first page is removed. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B EXAMPLESP1;18}RELITE0L02SK00GG\(B 1 $ RJECOPY IYIY1234.STD MONTHLY.REPORT This example copies the file IYIY1234.STD to MONTHLY.REPORT, while converting it to a plain text file. 2 $ RJECOPY/NONULLS/NOFORMFEED/TRIM=2/STRIP IYIYABCD.STD ANALYSIS.DAT In this example, the file IYIYABCD.STD has the first page deleted, the next two lines deleted, all formfeeds removed, and all nulls converted to blanks. P0;1;0y\[!p%*[DECUS_KITS.SEND.DOC]RJECOPY_UG.TXT;1+,=./ 4Q-0123KPWO 56D97 I89`"nP GHJ               RJECOPY    User's Guide                November 1989 I This document describes how to use the RJECOPY software to copy J and convert RJE formatted files to standard format files.  ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later ) Software Version: RJECOPY V2.0   3 RJECOPY      RJECOPY  E Copies an RJE formatted file to another file which is 6 formatted as a plain text file.  8 FORMAT RJECOPY input-file-spec output-file-spec  PARAMETERS input-file-spec G Specifies the name of an existing file to be copied and = converted. Wildcards are not allowed. ! output-file-spec D Specifies the name of the output file into which the 1 converted file is written.   DESCRIPTION A The RJECOPY command is used to convert the record K attributes of RJE printer output files. RJE files H created by the VMS/SNA RJE system have no record K attributes. Each record contains embedded carriage Q control characters, typically a trailing carriage-return / and line-feed character. @ RJECOPY converts the file's record attributes to N "Carriage return carriage return" which is the default ' for a text file. B Overstruck lines are converted from three separate N records to one record with embedded carriage returns. @ For example, the following three records:  Title line Title line! Title line : would be converted to the following record: 5 Title lineTitle lineTitle line   QUALIFIERS  /NOFORMFEED< Causes all formfeed characters to be removed.  /NONULLSG Causes all null characters (ASCII zero) to be converted ! to blanks.  /STRIPH Causes all text up to the first formfeed to be deleted. Q Typically, this will cause the banner page to be deleted. Q Note that if the banner extends to a second page, part of L it will remain at the start of the final output file.  /TRIM=numberG Specifies the number of lines to trim from the start of N the output file. Note that if the /STRIP qualifier is N also used, this action happens after the first page is  removed.   EXAMPLES  1- $ RJECOPY IYIY1234.STD MONTHLY.REPORT < This example copies the file IYIY1234.STD to P MONTHLY.REPORT, while converting it to a plain text file.  2K $ RJECOPY/NONULLS/NOFORMFEED/TRIM=2/STRIP IYIYABCD.STD ANALYSIS.DAT I In this example, the file IYIYABCD.STD has the first page J deleted, the next two lines deleted, all formfeeds B removed, and all nulls converted to blanks. %*[DECUS_KITS.SEND.DOC]RJECOPY_UG.WPS;1+,#./ 4Q-0123KPWO 5607^񘥓89`"nP GHJ               RJECOPY    User's Guide                November 1989 I This document describes how to use the RJECOPY software to copy J and convert RJE formatted files to standard format files.  ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later ) Software Version: RJECOPY V2.0   3 RJECOPY      RJECOPY  E Copies an RJE formatted file to another file which is 6 formatted as a plain text file.  8 FORMAT RJECOPY input-file-spec output-file-spec  PARAMETERS input-file-spec G Specifies the name of an existing file to be copied and = converted. Wildcards are not allowed. ! output-file-spec D Specifies the name of the output file into which the 1 converted file is written.   DESCRIPTION A The RJECOPY command is used to convert the record K attributes of RJE printer output files. RJE files H created by the VMS/SNA RJE system have no record K attributes. Each record contains embedded carriage Q control characters, typically a trailing carriage-return / and line-feed character. @ RJECOPY converts the file's record attributes to N "Carriage return carriage return" which is the default ' for a text file. B Overstruck lines are converted from three separate N records to one record with embedded carriage returns. @ For example, the following three records:  Title line Title line! Title line : would be converted to the following record: 5 Title lineTitle lineTitle line   QUALIFIERS  /NOFORMFEED< Causes all formfeed characters to be removed.  /NONULLSG Causes all null characters (ASCII zero) to be converted ! to blanks.  /STRIPH Causes all text up to the first formfeed to be deleted. Q Typically, this will cause the banner page to be deleted. Q Note that if the banner extends to a second page, part of L it will remain at the start of the final output file.  /TRIM=numberG Specifies the number of lines to trim from the start of N the output file. Note that if the /STRIP qualifier is N also used, this action happens after the first page is  removed.   EXAMPLES  1- $ RJECOPY IYIY1234.STD MONTHLY.REPORT < This example copies the file IYIY1234.STD to P MONTHLY.REPORT, while converting it to a plain text file.  2K $ RJECOPY/NONULLS/NOFORMFEED/TRIM=2/STRIP IYIYABCD.STD ANALYSIS.DAT I In this example, the file IYIYABCD.STD has the first page J deleted, the next two lines deleted, all formfeeds B removed, and all nulls converted to blanks. "*[DECUS_KITS.SEND.DOC]SEND_IG.TXT;2+, ../ 4Q-0123KPWO56Gb73Gb89`"nP GHJ                RJE Routeback  (SEND)   Installation Guide                November 1989 B This document describes how to install the RJE Routeback Q software (SEND) developed at Corning. This document applies to O SEND V2.0 and all maintenance updates throughout that version.  ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later & Software Version: SEND V2.0        8 1 Preparing to install the RJE Routeback Software   2 INSTALLATION  G Perform the following steps to install the routeback system. J Note that since the installation updates the system help P library, it is recommended that the software be installed when ; no other users are logged into the system.  A Login to the system manager's account. Copy the saveset* SEND020.A to SYS$MANAGER:7 Use VMSINSTAL to install the SEND kit: = $ @SYS$UPDATE:VMSINSTAL SEND020 SYS$MANAGER:     3 POST-INSTALLATION TASKS > Create any additional routeback accounts as required. B See the SEND System Manager's Guide for account creation = guidelines, or use the supplied command file- CREATE_ROUTEBACK_ACCOUNT.COM  Cluster considerations. I If installing on a cluster, make sure to reINSTALL DCLTABLES on ) all other cluster nodes.  % System startup file changes. 7 Add the following to your system startup file: $ $ @SYS$MANAGER:STARTUP$SEND % Changes to RJE startup file. I Make the appropriate changes to the RJE startup command file to L assign the print channels to the routeback account(s). e.g. 2 ASSIGN MYVAX"RMT12_PR1"::/NOSPOOL PR1 G Note that the /NOSPOOL qualifier is required to prevent every 0 RJE output from printing TWICE.  E Installation is now complete. If problems arise, check the L NETSERVER.LOG files in the default device/directory of the $ routeback accounts.$*[DECUS_KITS.SEND.DOC]SEND_SMG.LN03;1+,9.2/ 422-0123KPWO356u87 KI89`"nP GHJ[!pP2;10}DBULTN1\(B 1;18}RTRMVRT0050K00PG18m?27h(B SEND/RJE Routeback System Manager's Guide P1;18}RELITE0L02SK00GG\(B November 1989 This document describes how to manage and maintain the RJE Routeback software (SEND) developed at Corning. Supersession/Update Information: This is a new manual. Operating System and Version: VMS V4.6 and later Software Version: SEND V2.0 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 1 RJE Routeback System OverviewP1;18}RELITE0L02SK00GG\(B The SEND/RJE routeback system allows RJE PRINT output from a VMS/SNA RJE Workstation to be routed by any of the following means: - Output may be directed to a user specified file specification. (SEND/OUTPUT=FILE=filespec) - Output may be directed to a user specified printer queue. (SEND/OUTPUT=SPOOL="print qualifiers") - Output may be MAILed to one or more users. In this instance, after mailing, the files are deleted for security reasons. Note that the record format of the output file is converted from NONE (each record has embedded carriage-controls) to standard text format. (SEND/OUTPUT=MAIL="address(es)") - Output may cause a batch job to be submitted to SYS$BATCH. In this case, the RJE output file specification will be passed to the batch job as parameter P1. (SEND/OUTPUT=BATCH=filespec) - If no routeback entry exists, the output file is printed to a default system printer queue. Another queue may be selected by editting the site-specific parameter file. Note that PUNCH output cannot be reliably routed - the banner line which is used for some of the routeback information is meaningless. Routeback information is maintained in a system-wide RJE routeback queue named: SYS$MANAGER:SNARJE$ROUTEBACK.DAT Routeback entries contain - the jobname and room-code that identify the RJE output - the username associated with the entry - the type of routeback desired: SPOOL, FILE, MAIL, BATCH - a notification flag - a flag indicating the entry is a temporary entry - the date and time the entry was created Non-privileged users can create queue entries specific to their own account. The username and room-code will always be set to the default values (user's username and user's initials). Suitably privileged users (those holding the OPER privilege) can create entries for any user as well as specify a non-default roomcode 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-10 F18m0d0`w Routeback is effected by matching the jobname and the room-code. Suitably privileged users can also create a routeback entry for just a JOBNAME by entering an asterisk (*) for the room. Note that, in this case, ALL jobs matching the jobname which do not have a specific room entry in the routeback queue will be routed via the contents of this entry. Routeback can also occur for special Human Resource Management reports that are generated from the CICS environment. See the section on HRM routing for further information. This routing happens prior to any other routing. Routeback is enabled for a given remote and printer channel by assigning the printer channel to a special routeback account whose login command file performs the routeback processing. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 FP+k~ SEND_PKG.BCK9$[DECUS_KITS.SEND.DOC]SEND_SMG.LN03;12TP SMG-20 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 2 Sequence of Routeback ProcessingP1;18}RELITE0L02SK00GG\(B RJE output is routed via DECnet through the designated account in the following scenario: When RJE output is ready on a print channel on the IBM system, the SNA Gateway creates a DECnet link to the VAX node using the information in the SNARJE workstation assignments. This creates a network process under the account assigned to the print channel (by SNARJE.EXE). As part of process creation, the login command file SYS$MANAGER:ROUTE_PRINT.COM is executed. The following tasks are performed: )<7 FAL is run to receive the RJE output file. Both FAL logging and output are used to capture the exact file specification received. )<7 The following information is determined: Item  Source  Jobname Name of RJE output file Room Contained in banner Formname Filetype of RJE output file CICS-ID Contained in banner )<7 If the first six characters of the jobname are HPADSC and two sets of three asterisks are at columns 54 and 67, then the job is an HRM job and is appropriately routed. See HRM Routing for further information. )<7 If the routeback queue contains an entry for the exact ROOM and JOBNAME, the appropriate routeback specified is done. )<7 If the routeback queue contains an entry for the exact ROOM and matches the first seven characters of an eight character JOBNAME, the appropriate routeback specified is done. )<7 If the routeback queue contains an entry for ROOM=* and the JOBNAME, the appropriate routeback is done. )<7 If the routeback queue contains an entry for the ROOM=* and matches the first seven characters of an eight character JOBNAME, the appropriate routeback specified is done. )<7 If no routeback entry was matched, the output is printed to the default print queue using the default qualifiers. See chapter on Site Customizations for information on changing the default print queue and qualifiers. The /NOFLAG qualifier is also used. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-30 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 3 Setting up RoutebackP1;18}RELITE0L02SK00GG\(B The system manager must create at least one VMS account which will be used as the target of the RJE output. This account must be defined with the following parameters: Account name: RMTrr_PRn where rr is the remote number and n is the printer number UIC: Manager's choice (not a system UIC) Default device: Manager's choice Default directory: [RMTrr.PR] where rr is the remote number LGICMD SYS$MANAGER:ROUTE_PRINT.COM Access NETWORK only! PRCLM=2 Required for MAIL to function properly. BYTLM=20000 Minimum required to avoid MAIL routeback failure. The following additional privileges are also required: CMKRNL Allows batch jobs to be submitted for another user. OPER Allows notification messages to be broadcast . SYSPRV Allows access to the routeback database and logfile. A sample account would be created by the following commands: UAF> ADD RMT12_PR1 - /UIC=[100,100] - /DEVICE=DISK$RJE/DIRECT=[RMT12.PR1] - /LGICMD=SYS$MANAGER:ROUTE_PRINT.COM - /NOLOCAL/NOREMOTE/NOBATCH/NODIALUP - /PRCLM=2 - /BYTLM=20000 - /PRIVILEGE=(NETMBX,TMPMBX,CMKRNL,OPER,SYSPRV) - /DEFPRIVILEGE=(NETMBX,TMPMBX,CMKRNL,OPER,SYSPRV) - /NOPASSWORD The account is normally created with a null password. However, if for additional security a password is defined, it must also be specified in the workstation assignments. e.g. SNARJE> ASSIGN nodename"RMT12_PR1 password":: PR1 /NOSPOOL The default device and directory will be the location where RJE output will be initially placed. Hence the recommendation of [RMTrr.PRn]. The device should not be the system device (SYS$SYSDEVICE) to avoid the risk of consuming all free space on the system disk. The system manager may choose to create a separate account/directory for each printer channel. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-40 F18m0d0`w For example, assume that the remote is RMT12 and has three printers defined. The manager could create the following accounts: Account  Directory  Usage/reason  RMT12_PR1 [RMT12.PR1] for print channel PR1 RMT12_PR2 [RMT12.PR2] for print channel PR2 RMT12_PR3 [RMT12.PR3] for print channle PR3 The following commands would be issued under SNARJE to enable routeback for the above accounts/printers: $ RUN SYS$SYSTEM:SNARJE USE RMT12 ASSIGN nodename"RMT12_PR1"::/NOSPOOL PR1 ASSIGN nodename"RMT12_PR2"::/NOSPOOL PR2 ASSIGN nodename"RMT12_PR3"::/NOSPOOL PR3 EXIT Each account could have a customized version of ROUTE_PRINT.COM to enable different actions for each printer channel. Note that the /NOSPOOL qualifier is used to prevent printing of all output received on the output channel. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-50 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 4 Routeback of HRM Reports P1;18}RELITE0L02SK00GG\(B The routeback system also supports routeback of Human Resource Management (HRM) reports from the IBM CICS system. The special routeback file HRM_ROUTING:HRM_PRINTERS.DAT is used for this purpose. A sample of this file is left in the [.CGW_SEND_KIT] subdirectory. Note that HRM routeback depends upon proper detection of HRM RJE print jobs based on the print banner. Currently,the banner contains the string "*** CICS-ID ***". Any change in this banner will cause the routeback to fail. Note that due to the sensitive nature of HRM reports, any routeback failure results in the file being deleted. Always check file NETSERVER.LOG for the cause of the routeback failure. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-60 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 5 SecurityP1;18}RELITE0L02SK00GG\(B The routeback procedure uses the image GETUIC.EXE to determine the UIC, default device, and default directory of the username associated with the routeback entry. The routeback procedure sets its UIC to the user's and drops the SYSPRV privilege before performing the routeback. Hence, routeback will fail if the user does not have proper access to the directory or files being used. Since use of the /USERNAME or /ROOM qualifiers can compromise security, use of these qualifiers is restricted to users holding the OPER privilege (with the exception of the SEND/INITIALS command which will process any username). In addition, the routeback of output to a file is restricted to usernames which do NOT have a system UIC (group must be greater than sysgen parameter MAXSYSGROUP). The routeback accounts should only have NETWORK access enabled. The DCL command file ROUTE_PRINT.COM, which performs the routeback, appropriately drops and raises privileges when needed. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-70 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 6 Site CustomizationsP1;18}RELITE0L02SK00GG\(B The ROUTE_PRINT.COM command file uses a site-specific file that enables the following site-specific parameters to be set. The file is referenced by logical name SNARJE$ROUTEBACK_SITE. If the logical name is not defined, the default filename is SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COM. Note that all DCL symbols MUST be global symbols (i.e. use "=="). The default print queue can be changed by altering the definition of the DCL symbol DEFAULT_PRINT_QUEUE in the command file. The default batch queue can be changed by editting the definition of the DCL symbol DEFAULT_BATCH_QUEUE in the ROUTE_PRINT.COM command file. Site-specific qualifers may be specified for PRINT and BATCH submissions by editting the definition of the variables SITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS. The default form used in printing is specified by the DCL symbol DEFAULT_PRINT_FORM. This can be set any site-specific value. The symbols DEFAULT_PRINT_QUEUE, DEFAULT_BATCH_QUEUE, DEFAULT_PRINT_FORM, SITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS are applied to the SUBMIT or PRINT command prior to the user-specified parameters. This allows the users to over-ride the default actions. As a further enhancement each routeback account can have its own specific version of the ROUTE_PRINT.COM command file. This will enable each printer channel to have its own, specific, default printer and batch queues. The routeback command file determines the formname of the job and inserts it into the symbol FORMNAME. The routeback software currently does not use this symbol for any actions, but it is included so that site-specific code may utilize it. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-80 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 7 Routeback failure problem determinationP1;18}RELITE0L02SK00GG\(B Routeback failure can be caused by: - A missing routeback entry. - An incorrect routeback entry by a user such as entering an invalid file specification or an incorrent mail address. - Removal of the username associated with a routeback entry (this includes usernames specified for MAIL routeback). - A user specifying a routeback file location to which the user does not have write access. - An invalid qualifier specified for SPOOL or BATCH routeback. - A change in the format of the RJE banner. The software will locate the ROOM code if it has moved, but cannot route output if the ROOM field is missing. - A suitably authorized user (OPER privilege) creating an entry for a username whose UIC is a system UIC. The primary method of determining the reason for a routeback failure is inspection of the NETSERVER.LOG file created in the routeback account's default directory. Failures are indicated by any unusual error messages. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-90 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 8 RJE Routeback LogfileP1;18}RELITE0L02SK00GG\(B A logfile is maintained for each routeback account. Each routeback attempt causes an entry to be placed in this logfile. The logfile file name is the username of the routeback account and the file type is RJELOG. Individual sites may choose to rename the logfile on a daily or weekly basis. If the logfile does not exist, it is automatically created. Each entry consists of the following: Column Contents.... 1-16 Date/time stamp in form YYYY-MM-DD HH:MM. 18-25 The JCL jobname of the RJE output. 26-29 Contents of the ROOM field in the banner line. 30-37 The form-type associated with the RJE output. 38-42 Defines the action performed (PRINT, SPOOL, FILE, MAIL, BATCH). 43-80 The information used for routeback of the output. Contents varies based upon the action performed: Action Contents/meaning of field ------ --------------------------------------------------- PRINT Print queue used (no routeback records existed for this job, so it printed by default). SPOOL Username, followed by a vertical line, followed by the user-specified print qualifiers. FILE Username, followed by a vertical line, followed by the user-specified output file. MAIL Username, followed by a vertical line, followed by the mail address(es) specified by user. BATCH Username, followed by a vertical line, followed by the user-specified file to be submitted as a batch job. Note that only first 38 characters will appear. A sample entry of each type: 1989-06-28 16:35 STDLABEL1234STD PRINTSYS$PRINT 1989-06-28 17:33 KENSRPT REP STD SPOOLREPORTS|/QUEUE=MPRO02_NW 1989-06-29 13:02 MONTHDATJJD STD FILE DOE_JJ|JOHNS_MONTHLY.RPT 1989-06-29 14:11 LIST PS STD MAIL DOE_JJ|SMITH_AB,JONES_CD 1989-06-30 20:24 HPAB01 1000STD BATCH SMITH_AB|FORMAT_REPORT.COM Note that jobname/room are the fields used to determine the routeback location. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-100 F18m0d0`w When customizing ROUTE_PRINT.COM, you can insert messages into the log file by calling the subroutine LOG_EVENT with the following parameters: Max Param Length Contents.................................... P1 8 Job-name P2 8 Form-name P3 4 Room P4 5 Type of routeback done P5 38 Output spec 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-110 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 9 RestrictionsP1;18}RELITE0L02SK00GG\(B Routeback account BYTLM setting. The BYTLM of all routeback accounts should be set to a minimum of 20000 to avoid a failure due to insufficient BYTLM when attempting to route output via VMS mail. Use of the /REMOTE qualifier. The use of the /REMOTE qualifier when specifying BATCH as the output destination is not supported and will cause routeback failure. Changes in RJE banner page. Changes made in the banner produced by the IBM RJE system may cause routeback failure. The command file looks for the word ROOM to locate the room identifier. If the word ROOM is removed from the banner, then routeback failures can occur. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-120 F18m0d0`w 0q!255@!255@!255@!255@!255@1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B 10 chapterP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SMG-130 F18m0d0`w P0;1;0y\[!p#*[DECUS_KITS.SEND.DOC]SEND_SMG.TXT;1+,.*/ 4Z*)-0123KPWO*56B87 T3I89`"nP GHJ*                SEND/RJE Routeback System Manager's Guide                  November 1989 D This document describes how to manage and maintain the RJE @ Routeback software (SEND) developed at Corning.    ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later & Software Version: SEND V2.0        & 1 RJE Routeback System Overview F The SEND/RJE routeback system allows RJE PRINT output from a N VMS/SNA RJE Workstation to be routed by any of the following  means:  ; - Output may be directed to a user specified file = specification. (SEND/OUTPUT=FILE=filespec) E - Output may be directed to a user specified printer queue. 9 (SEND/OUTPUT=SPOOL="print qualifiers") I - Output may be MAILed to one or more users. In this instance, O after mailing, the files are deleted for security reasons. O Note that the record format of the output file is converted M from NONE (each record has embedded carriage-controls) to I standard text format. (SEND/OUTPUT=MAIL="address(es)") G - Output may cause a batch job to be submitted to SYS$BATCH. K In this case, the RJE output file specification will be < passed to the batch job as parameter P1. / (SEND/OUTPUT=BATCH=filespec) G - If no routeback entry exists, the output file is printed to I a default system printer queue. Another queue may be I selected by editting the site-specific parameter file. G Note that PUNCH output cannot be reliably routed - the banner M line which is used for some of the routeback information is  meaningless. B Routeback information is maintained in a system-wide RJE ' routeback queue named:- SYS$MANAGER:SNARJE$ROUTEBACK.DAT " Routeback entries contain A - the jobname and room-code that identify the RJE output1 - the username associated with the entry) - the type of routeback desired:% SPOOL, FILE, MAIL, BATCH - a notification flag; - a flag indicating the entry is a temporary entry2 - the date and time the entry was created I Non-privileged users can create queue entries specific to their P own account. The username and room-code will always be set to J the default values (user's username and user's initials). F Suitably privileged users (those holding the OPER privilege) F can create entries for any user as well as specify a % non-default roomcode ? Routeback is effected by matching the jobname and the I room-code. Suitably privileged users can also create a P routeback entry for just a JOBNAME by entering an asterisk (*) O for the room. Note that, in this case, ALL jobs matching the H jobname which do not have a specific room entry in the O routeback queue will be routed via the contents of this entry. H Routeback can also occur for special Human Resource Management P reports that are generated from the CICS environment. See the O section on HRM routing for further information. This routing 4 happens prior to any other routing. H Routeback is enabled for a given remote and printer channel by N assigning the printer channel to a special routeback account L whose login command file performs the routeback processing.      ) 2 Sequence of Routeback Processing  H RJE output is routed via DECnet through the designated account + in the following scenario: H When RJE output is ready on a print channel on the IBM system, Q the SNA Gateway creates a DECnet link to the VAX node using the J information in the SNARJE workstation assignments. This M creates a network process under the account assigned to the N print channel (by SNARJE.EXE). As part of process creation, Q the login command file SYS$MANAGER:ROUTE_PRINT.COM is executed.  , The following tasks are performed:  H FAL is run to receive the RJE output file. Both FAL logging O and output are used to capture the exact file specification  received. 3 The following information is determined: 4 Item Source + Jobname Name of RJE output file' Room Contained in banner/ Formname Filetype of RJE output file' CICS-ID Contained in banner I If the first six characters of the jobname are HPADSC and two N sets of three asterisks are at columns 54 and 67, then the K job is an HRM job and is appropriately routed. See HRM 3 Routing for further information. G If the routeback queue contains an entry for the exact ROOM L and JOBNAME, the appropriate routeback specified is done. G If the routeback queue contains an entry for the exact ROOM P and matches the first seven characters of an eight character H JOBNAME, the appropriate routeback specified is done. G If the routeback queue contains an entry for ROOM=* and the > JOBNAME, the appropriate routeback is done. G If the routeback queue contains an entry for the ROOM=* and L matches the first seven characters of an eight character H JOBNAME, the appropriate routeback specified is done. G If no routeback entry was matched, the output is printed to N the default print queue using the default qualifiers. See N chapter on Site Customizations for information on changing H the default print queue and qualifiers. The /NOFLAG * qualifier is also used.       3 Setting up Routeback G The system manager must create at least one VMS account which M will be used as the target of the RJE output. This account ? must be defined with the following parameters: ? Account name: RMTrr_PRn where rr is the remote number+ and n is the printer number6 UIC: Manager's choice (not a system UIC)) Default device: Manager's choiceD Default directory: [RMTrr.PR] where rr is the remote number0 LGICMD SYS$MANAGER:ROUTE_PRINT.COM" Access NETWORK only!< PRCLM=2 Required for MAIL to function properly.? BYTLM=20000 Minimum required to avoid MAIL routeback  failure. ? The following additional privileges are also required: F CMKRNL Allows batch jobs to be submitted for another user.@ OPER Allows notification messages to be broadcast . O SYSPRV Allows access to the routeback database and logfile. E A sample account would be created by the following commands:  UAF> ADD RMT12_PR1 - /UIC=[100,100] -2 /DEVICE=DISK$RJE/DIRECT=[RMT12.PR1] -2 /LGICMD=SYS$MANAGER:ROUTE_PRINT.COM -1 /NOLOCAL/NOREMOTE/NOBATCH/NODIALUP - /PRCLM=2 - /BYTLM=20000 -< /PRIVILEGE=(NETMBX,TMPMBX,CMKRNL,OPER,SYSPRV) -? /DEFPRIVILEGE=(NETMBX,TMPMBX,CMKRNL,OPER,SYSPRV) - /NOPASSWORD I The account is normally created with a null password. However, P if for additional security a password is defined, it must also C be specified in the workstation assignments. e.g. C SNARJE> ASSIGN nodename"RMT12_PR1 password":: PR1 /NOSPOOL I The default device and directory will be the location where RJE O output will be initially placed. Hence the recommendation of  [RMTrr.PRn]. G The device should not be the system device (SYS$SYSDEVICE) to O avoid the risk of consuming all free space on the system disk. < The system manager may choose to create a separate < account/directory for each printer channel. D For example, assume that the remote is RMT12 and has three J printers defined. The manager could create the following  accounts:  4 Account Directory Usage/reason 4 RMT12_PR1 [RMT12.PR1] for print channel PR14 RMT12_PR2 [RMT12.PR2] for print channel PR24 RMT12_PR3 [RMT12.PR3] for print channle PR3 G The following commands would be issued under SNARJE to enable ; routeback for the above accounts/printers: $ RUN SYS$SYSTEM:SNARJE USE RMT121 ASSIGN nodename"RMT12_PR1"::/NOSPOOL PR11 ASSIGN nodename"RMT12_PR2"::/NOSPOOL PR21 ASSIGN nodename"RMT12_PR3"::/NOSPOOL PR3 EXIT I Each account could have a customized version of ROUTE_PRINT.COM F to enable different actions for each printer channel. I Note that the /NOSPOOL qualifier is used to prevent printing of ; all output received on the output channel.      ! 4 Routeback of HRM Reports H U~ SEND_PKG.BCK#[DECUS_KITS.SEND.DOC]SEND_SMG.TXT;1Z*( The routeback system also supports routeback of Human Resource Q Management (HRM) reports from the IBM CICS system. The special N routeback file HRM_ROUTING:HRM_PRINTERS.DAT is used for this P purpose. A sample of this file is left in the [.CGW_SEND_KIT]  subdirectory. F Note that HRM routeback depends upon proper detection of HRM Q RJE print jobs based on the print banner. Currently,the banner M contains the string "*** CICS-ID ***". Any change in this P banner will cause the routeback to fail. Note that due to the P sensitive nature of HRM reports, any routeback failure results Q in the file being deleted. Always check file NETSERVER.LOG for 4 the cause of the routeback failure.       5 Security H The routeback procedure uses the image GETUIC.EXE to determine P the UIC, default device, and default directory of the username O associated with the routeback entry. The routeback procedure K sets its UIC to the user's and drops the SYSPRV privilege Q before performing the routeback. Hence, routeback will fail if P the user does not have proper access to the directory or files  being used. G Since use of the /USERNAME or /ROOM qualifiers can compromise J security, use of these qualifiers is restricted to users G holding the OPER privilege (with the exception of the L SEND/INITIALS command which will process any username). In N addition, the routeback of output to a file is restricted to Q usernames which do NOT have a system UIC (group must be greater 4 than sysgen parameter MAXSYSGROUP). I The routeback accounts should only have NETWORK access enabled. J The DCL command file ROUTE_PRINT.COM, which performs the K routeback, appropriately drops and raises privileges when  needed.        6 Site Customizations I The ROUTE_PRINT.COM command file uses a site-specific file that P enables the following site-specific parameters to be set. The O file is referenced by logical name SNARJE$ROUTEBACK_SITE. If J the logical name is not defined, the default filename is K SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COM. Note that all DCL @ symbols MUST be global symbols (i.e. use "=="). @ The default print queue can be changed by altering the Q definition of the DCL symbol DEFAULT_PRINT_QUEUE in the command  file.  @ The default batch queue can be changed by editting the I definition of the DCL symbol DEFAULT_BATCH_QUEUE in the . ROUTE_PRINT.COM command file. F Site-specific qualifers may be specified for PRINT and BATCH I submissions by editting the definition of the variables A SITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS. C The default form used in printing is specified by the DCL O symbol DEFAULT_PRINT_FORM. This can be set any site-specific  value. ? The symbols DEFAULT_PRINT_QUEUE, DEFAULT_BATCH_QUEUE, ? DEFAULT_PRINT_FORM, SITE_PRINT_QUALIFIERS and J SITE_BATCH_QUALIFIERS are applied to the SUBMIT or PRINT N command prior to the user-specified parameters. This allows < the users to over-ride the default actions. F As a further enhancement each routeback account can have its Q own specific version of the ROUTE_PRINT.COM command file. This M will enable each printer channel to have its own, specific, 3 default printer and batch queues.  G The routeback command file determines the formname of the job I and inserts it into the symbol FORMNAME. The routeback N software currently does not use this symbol for any actions, N but it is included so that site-specific code may utilize it.       0 7 Routeback failure problem determination , Routeback failure can be caused by: % - A missing routeback entry. F - An incorrect routeback entry by a user such as entering an I invalid file specification or an incorrent mail address. E - Removal of the username associated with a routeback entry H (this includes usernames specified for MAIL routeback). I - A user specifying a routeback file location to which the user , does not have write access. G - An invalid qualifier specified for SPOOL or BATCH routeback. H - A change in the format of the RJE banner. The software will O locate the ROOM code if it has moved, but cannot route output . if the ROOM field is missing. I - A suitably authorized user (OPER privilege) creating an entry : for a username whose UIC is a system UIC. F The primary method of determining the reason for a routeback P failure is inspection of the NETSERVER.LOG file created in the P routeback account's default directory. Failures are indicated / by any unusual error messages.        8 RJE Routeback Logfile C A logfile is maintained for each routeback account. Each lR routeback attempt causes an entry to be placed in this logfile. P The logfile file name is the username of the routeback account N and the file type is RJELOG. Individual sites may choose to P rename the logfile on a daily or weekly basis. If the logfile J does not exist, it is automatically created. Each entry + consists of the following:i  Column Contents....: 1-16 Date/time stamp in form YYYY-MM-DD HH:MM.4 18-25 The JCL jobname of the RJE output.@ 26-29 Contents of the ROOM field in the banner line.? 30-37 The form-type associated with the RJE output. Z 38-42 Defines the action performed (PRINT, SPOOL, FILE,  MAIL, BATCH).O 43-80 The information used for routeback of the output. yA Contents varies based upon the action performed:  , Action Contents/meaning of fieldF ------ ---------------------------------------------------O PRINT Print queue used (no routeback records existed for u5 this job, so it printed by default).O SPOOL Username, followed by a vertical line, followed by 5 the user-specified print qualifiers.1N FILE Username, followed by a vertical line, followed by 0 the user-specified output file.N MAIL Username, followed by a vertical line, followed by 8 the mail address(es) specified by user.O BATCH Username, followed by a vertical line, followed by uN the user-specified file to be submitted as a batch  job.  8 Note that only first 38 characters will appear. % A sample entry of each type:  Y 1989-06-28 16:35 STDLABEL1234STD PRINTSYS$PRINT u aH 1989-06-28 17:33 KENSRPT REP STD SPOOLREPORTS|/QUEUE=MPRO02_NWI 1989-06-29 13:02 MONTHDATJJD STD FILE DOE_JJ|JOHNS_MONTHLY.RPTpI 1989-06-29 14:11 LIST PS STD MAIL DOE_JJ|SMITH_AB,JONES_CD-K 1989-06-30 20:24 HPAB01 1000STD BATCH SMITH_AB|FORMAT_REPORT.COMn E Note that jobname/room are the fields used to determine the p$ routeback location. H When customizing ROUTE_PRINT.COM, you can insert messages into K the log file by calling the subroutine LOG_EVENT with the a& following parameters:  MaxC Param Length Contents....................................o P1 8 Job-name P2 8 Form-namet P3 4 Room* P4 5 Type of routeback done P5 38 Output specr -      9 Restrictions  ) Routeback account BYTLM setting.n H The BYTLM of all routeback accounts should be set to a minimum L of 20000 to avoid a failure due to insufficient BYTLM when 9 attempting to route output via VMS mail.u  & Use of the /REMOTE qualifier. G The use of the /REMOTE qualifier when specifying BATCH as the rN output destination is not supported and will cause routeback  failure.   $ Changes in RJE banner page. G Changes made in the banner produced by the IBM RJE system may O cause routeback failure. The command file looks for the word nJ ROOM to locate the room identifier. If the word ROOM is L removed from the banner, then routeback failures can occur.       10 chapter #*[DECUS_KITS.SEND.DOC]SEND_SMG.WPS;1+,#.*/ 4Z*)-0123KPWO+56`怘7 񘥓89`"nP GHJR               SEND/RJE Routeback System Manager's Guide                  November 1989 D This document describes how to manage and maintain the RJE @ Routeback software (SEND) developed at Corning.    ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later & Software Version: SEND V2.0        & 1 RJE Routeback System Overview F The SEND/RJE routeback system allows RJE PRINT output from a N VMS/SNA RJE Workstation to be routed by any of the following  means:  ; - Output may be directed to a user specified file = specification. (SEND/OUTPUT=FILE=filespec) E - Output may be directed to a user specified printer queue. 9 (SEND/OUTPUT=SPOOL="print qualifiers") I - Output may be MAILed to one or more users. In this instance, O after mailing, the files are deleted for security reasons. O Note that the record format of the output file is converted M from NONE (each record has embedded carriage-controls) to I standard text format. (SEND/OUTPUT=MAIL="address(es)") G - Output may cause a batch job to be submitted to SYS$BATCH. K In this case, the RJE output file specification will be < passed to the batch job as parameter P1. / (SEND/OUTPUT=BATCH=filespec) G - If no routeback entry exists, the output file is printed to I a default system printer queue. Another queue may be I selected by editting the site-specific parameter file. G Note that PUNCH output cannot be reliably routed - the banner M line which is used for some of the routeback information is  meaningless. B Routeback information is maintained in a system-wide RJE ' routeback queue named:- SYS$MANAGER:SNARJE$ROUTEBACK.DAT " Routeback entries contain A - the jobname and room-code that identify the RJE output1 - the username associated with the entry) - the type of routeback desired:% SPOOL, FILE, MAIL, BATCH - a notification flag; - a flag indicating the entry is a temporary entry2 - the date and time the entry was created I Non-privileged users can create queue entries specific to their P own account. The username and room-code will always be set to J the default values (user's username and user's initials). F Suitably privileged users (those holding the OPER privilege) F can create entries for any user as well as specify a % non-default roomcode ? Routeback is effected by matching the jobname and the I room-code. Suitably privileged users can also create a P routeback entry for just a JOBNAME by entering an asterisk (*) O for the room. Note that, in this case, ALL jobs matching the H jobname which do not have a specific room entry in the O routeback queue will be routed via the contents of this entry. H Routeback can also occur for special Human Resource Management P reports that are generated from the CICS environment. See the O section on HRM routing for further information. This routing 4 happens prior to any other routing. H Routeback is enabled for a given remote and printer channel by N assigning the printer channel to a special routeback account L whose login command file performs the routeback processing.      ) 2 Sequence of Routeback Processing  H RJE output is routed via DECnet through the designated account + in the following scenario: H When RJE output is ready on a print channel on the IBM system, Q the SNA Gateway creates a DECnet link to the VAX node using the J information in the SNARJE workstation assignments. This M creates a network process under the account assigned to the N print channel (by SNARJE.EXE). As part of process creation, Q the login command file SYS$MANAGER:ROUTE_PRINT.COM is executed.  , The following tasks are performed:  H FAL is run to receive the RJE output file. Both FAL logging O and output are used to capture the exact file specification  received. 3 The following information is determined: 4 Item Source + Jobname Name of RJE output file' Room Contained in banner/ Formname Filetype of RJE output file' CICS-ID Contained in banner I If the first six characters of the jobname are HPADSC and two N sets of three asterisks are at columns 54 and 67, then the K job is an HRM job and is appropriately routed. See HRM 3 Routing for further information. G If the routeback queue contains an entry for the exact ROOM L and JOBNAME, the appropriate routeback specified is done. G If the routeback queue contains an entry for the exact ROOM P and matches the first seven characters of an eight character H JOBNAME, the appropriate routeback specified is done. G If the routeback queue contains an entry for ROOM=* and the > JOBNAME, the appropriate routeback is done. G If the routeback queue contains an entry for the ROOM=* and L matches the first seven characters of an eight character H JOBNAME, the appropriate routeback specified is done. G If no routeback entry was matched, the output is printed to N the default print queue using the default qualifiers. See N chapter on Site Customizations for information on changing H the default print queue and qualifiers. The /NOFLAG * qualifier is also used.       3 Setting up Routeback G The system manager must create at least one VMS account which M will be used as the target of the RJE output. This account ? must be defined with the following parameters: ? Account name: RMTrr_PRn where rr is the remote number+ and n is the printer number6 UIC: Manager's choice (not a system UIC)) Default device: Manager's choiceD Default directory: [RMTrr.PR] where rr is the remote number0 LGICMD SYS$MANAGER:ROUTE_PRINT.COM" Access NETWORK only!< PRCLM=2 Required for MAIL to function properly.? BYTLM=20000 Minimum required to avoid MAIL routeback  failure. ? The following additional privileges are also required: F CMKRNL Allows batch jobs to be submitted for another user.@ OPER Allows notification messages to be broadcast . O SYSPRV Allows access to the routeback database and logfile. E A sample account would be created by the following commands:  UAF> ADD RMT12_PR1 - /UIC=[100,100] -2 /DEVICE=DISK$RJE/DIRECT=[RMT12.PR1] -2 /LGICMD=SYS$MANAGER:ROUTE_PRINT.COM -1 /NOLOCAL/NOREMOTE/NOBATCH/NODIALUP - /PRCLM=2 - /BYTLM=20000 -< /PRIVILEGE=(NETMBX,TMPMBX,CMKRNL,OPER,SYSPRV) -? /DEFPRIVILEGE=(NETMBX,TMPMBX,CMKRNL,OPER,SYSPRV) - /NOPASSWORD I The account is normally created with a null password. However, P if for additional security a password is defined, it must also C be specified in the workstation assignments. e.g. C SNARJE> ASSIGN nodename"RMT12_PR1 password":: PR1 /NOSPOOL I The default device and directory will be the location where RJE O output will be initially placed. Hence the recommendation of  [RMTrr.PRn]. G The device should not be the system device (SYS$SYSDEVICE) to O avoid the risk of consuming all free space on the system disk. < The system manager may choose to create a separate < account/directory for each printer channel. D For example, assume that the remote is RMT12 and has three J printers defined. The manager could create the following  accounts:  4 Account Directory Usage/reason 4 RMT12_PR1 [RMT12.PR1] for print channel PR14 RMT12_PR2 [RMT12.PR2] for print channel PR24 RMT12_PR3 [RMT12.PR3] for print channle PR3 G The following commands would be issued under SNARJE to enable ; routeback for the above accounts/printers: $ RUN SYS$SYSTEM:SNARJE USE RMT121 ASSIGN nodename"RMT12_PR1"::/NOSPOOL PR11 ASSIGN nodename"RMT12_PR2"::/NOSPOOL PR21 ASSIGN nodename"RMT12_PR3"::/NOSPOOL PR3 EXIT I Each account could have a customized version of ROUTE_PRINT.COM F to enable different actions for each printer channel. I Note that the /NOSPOOL qualifier is used to prevent printing of ; all output received on the output channel.      ! 4 Routeback of HRM Reports H The routeback system also supports routeback of Human Resource Q Management (HRM) reports from the IBM CICS system. The special N routeback file HRM_ROUTING:HRM_PRINTERS.DAT is used for this P purpose. A sample of this file is left in the [.CGW_SEND_KIT]  subdirectory. F Note that HRM routeback depends upon proper detection of HRM Q RJE print jobs based on the print banner. Currently,the banner M contains the string "*** CICS-ID ***". Any change in this P banner will cause the routeback to fail. Note that due to the P sensitive nature of HRM reports, any routeback failure results Q in the file being deleted. Always check file NETSERVER.LOG for 4 the cause of the routeback failure.       5 Security H The routeback procedure uses the image GETUIC.EXE to determine P the UIC, default device, and default directory of the username O associated with the routeback entry. The routeback procedure K sets its UIC to the user's and drops the SYSPRV privilege Q before performing the routeback. Hence, routeback will fail if P the user does not have proper access to the directory or files  being used. G Since use of the /USERNAME or /ROOM qualifiers can compromise J security, use of these qualifiers is restricted to users G holding the OPER privilege (with the exception of the L SEND/INITIALS command which will process any username). In N addition, the routeback of output to a file is restricted to Q usernames which do NOT have a system UIC (group must be greater 4 than sysgen parameter MAXSYSGROUP). I The routeback accounts should only have NETWORK access enabled. J The DCL command file ROUTE_PRINT.COM, which performs the K routeback, appropriately drops and raises privileges when  needed.        6 Site Customizations I The ROUTE_PRINT.COM command file uses a site-specific file that P enables the following site-specific parameters to be set. The O file is referenced by logical name SNARJE$ROUTEBACK_SITE. If J the logical name is not defined, the default filename is K SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COM. Note that all DCL @ symbols MUST be global symbols (i.e. use "=="). @ The default print queue can be changed by altering the Q definition of the DCL symbol DEFAULT_PRINT_QUEUE in the command  file.  @ The default batch queue can be changed by editting the I definition of the DCL symbol DEFAULT_BATCH_QUEUE in the . ROUTE_PRINT.COM command file. F Site-specific qualifers may be specified for PRINT and BATCH I submissions by editting the definition of the variables A SITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS. C The default form used in printing is specified by the DCL O symbol DEFAULT_PRINT_FORM. This can be set any site-specific  value. ? The symbols DEFAULT_PRINT_QUEUE, DEFAULT_BATCH_QUEUE, ? DEFAULT_PRINT_FORM, SITE_PRINT_QUALIFIERS and J SITE_BATCH_QUALIFIERS are applied to the SUBMIT or PRINT N command prior to the user-specified parameters. This allows < the users to over-ride the default actions. F As a further enhancement each routeback account can have its Q own specific version of the ROUTE_PRINT.COM command file. This M will enable each printer channel to have its own, specific, 3 default printer and batch queues.  G The routeback command file determines the formname of the job I and inserts it into the symbol FORMNAME. The routeback N software currently does not use this symbol for any actions, N but it is included so that site-specific code may utilize it.       0 7 Routeback failure problem determination , Routeback failure can be caused by: % - A missing routeback entry. F - An incorrect routeback entry by a user such as entering an I invalid file specification or an incorrent mail address. E - Removal of the username associated with a routeback entry H (this includes usernames specified for MAIL routeback). I - A user specifying a routeback file location to which the user , does not have write access. G - An invalid qualifier specified for SPOOL or BATCH routeback. H - A change in the format of the RJE banner. The software will O locate the ROOM code if it has moved, but cannot route output . if the ROOM field is missing. I - A suitably authorized user (OPER privilege) creating an entry : for a username whose UIC is a system UIC. F The primary method of determining the reason for a routeback P failure is inspection of the NETSERVER.LOG file created in the P routeback account's default directory. Failures are indicated / by any unusual error messages.        8 RJE Routeback Logfile C A logfile is maintained for each routeback account. Each lR routeback attempt causes an entry to be placed in this logfile. P The logfile file name is the username of the routeback account N and the file type is RJELOG. Individual sites may choose to P rename the logfile on a daily or weekly basis. If the logfile J does not exist, it is automatically created. Each entry + consists of the following:i  Column Contents....: 1-16 Date/time stamp in form YYYY-MM-DD HH:MM.4 18-25 The JCL jobname of the RJE output.@ 26-29 Contents of the ROOM field in the banner line.? 30-37 The form-type associated with the RJE output. Z 38-42 Defines the action performed (PRINT, SPOOL, FILE,  MAIL, BATCH).O 43-80 The information used for routeback of the output. yA Contents varies based upon the action performed:  , Action Contents/meaning of fieldF ------ ---------------------------------------------------O PRINT Print queue used (no routeback records existed for u5 this job, so it printed by default).O SPOOL Username, followed by a vertical line, followed by 5 the user-specified print qualifiers.1N FILE Username, followed by a vertical line, followed by 0 the user-specified output file.N MAIL Username, followed by a vertical line, followed by 8 the mail address(es) specified by user.O BATCH Username, followed by a vertical line, followed by uN the user-specified file to be submitted as a batch  job.  8 Note that only first 38 characters will appear. % A sample entry of each type:  Y 1989-06-28 16:35 STDLABEL1234STD PRINTSYS$PRINT u aH 1989-06-28 17:33 KENSRPT REP STD SPOOLREPORTS|/QUEUE=MPRO02_NWI 1989-06-29 13:02 MONTHDATJJD STD FILE DOE_JJ|JOHNS_MONTHLY.RPTpI 1989-06-29 14:11 LIST PS STD MAIL DOE_JJ|SMITH_AB,JONES_CD-K 1989-06-30 20:24 HPAB01 1000STD BATCH SMITH_AB|FORMAT_REPORT.COMn E Note that jobname/room are the fields used to determine the p$ routeback location. H When customizing ROUTE_PRINT.COM, you can insert messages into K the log file by calling the subroutine LOG_EVENT with the a& following parameters:  MaxC Param Length Contents....................................o P1 8 Job-name P2 8 Form-namet P3 4 Room* P4 5 Type of routeback done P5 38 Output specr -      9 Restrictions  ) Routeback account BYTLM setting.n H The BYTLM of all routeback accounts should be set to a minimum L of 20000 to avoid a failure due to insufficient BYTLM when 9 attempting to route output via VMS mail.u  & Use of the /REMOTE qualifier. G The use of the /REMOTE qualifier when specifying BATCH as the rN output destination is not supported and will cause routeback  failure.   $ Changes in RJE banner page. G Changes made in the banner produced by the IBM RJE system may O cause routeback failure. The command file looks for the word nJ ROOM to locate the room identifier. If the word ROOM is L removed from the banner, then routeback failures can occur.       10 chapter #*[DECUS_KITS.SEND.DOC]SEND_UG.LN03;1+,.R/ 4RQ-0123KPWOR56j97ๅI89`"nP GHJɊ~ SEND_PKG.BCK#[DECUS_KITS.SEND.DOC]SEND_UG.LN03;1R|[!pP2;10}DBULTN1\(B 1;18}RTRMVRT0050K00PG18m?27h(B SEND User's Guide P1;18}RELITE0L02SK00GG\(B November 1989 This document describes how to use the SEND software to submit IBM JCL Batch jobs for execution and control routeback of RJE output. Supersession/Update Information: This is a new manual. Operating System and Version: VMS V4.6 and later Software Version: SEND V2.0 1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-10 F18m0d0`w1;18}RTRMVRT0050K00PG18m?27h(B SEND P1;18}RELITE0L02SK00GG\(B 0q!255@!255@!255@!255@!255@1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT0050K00PG18m?27h(B SENDP1;18}RELITE0L02SK00GG\(B Submits IBM JCL files to the corporate IBM system for execution. If the /OUTPUT qualifier is specified, it will also create entries in the system RJE routeback queue. These entries specify routeback information for printer output received from the IBM system. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B FORMAT SEND file-spec[,...] P1;18}RELITE0L02SK00GG\(B 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B PARAMETER file-spec[,...]P1;18}RELITE0L02SK00GG\(B Specifies the name of an existing JCL file to be submitted to the corporate IBM system for execution. Use a plus sign (+) or a comma (,) to indicate multiple file specifications. Wildcards are not allowed. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B DESCRIPTIONP1;18}RELITE0L02SK00GG\(B The SEND command submits a file (or files) containing IBM JCL commands and data to the VMS/SNA Remote Job Entry (RJE) system for execution. As such, it functions in an identical manner to SUBMIT/SNA. However, its primary purpose is to allow the submitter to specify how the resulting RJE output file(s) should be handled. To properly route RJE output, the JOB card of the JCL job must specify a room identifier that corresponds to the submitter's username. In a typical VMS environment using LASTNAME_FM as the username, the room code would be the user's initials. See the SEND/INITIALS command to determine what is expected to be the room code for any general username. When routeback is specified by use of the /OUTPUT qualifier, the room code must be correct or the job will not be submitted. If no routeback is specified, the room code is not checked and so can be omitted or used for other purposes. In this case, SEND file-spec is analogous to SUBMIT/SNA file-spec. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-20 F18m0d0`w SPECIFYING ROUTEBACK RJE output can be routed to one of the following locations: )<7 A directory or file. The username of the submitter must have write access to this location. )<7 Any print queue. Any qualifiers used by the PRINT command may be specified. )<7 One or more mail addresses. )<7 A VMS batch job. The name of the routeback file is passed as the first parameter to the batch job. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B QUALIFIERS P1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /AFTER=timeP1;18}RELITE0L02SK00GG\(B Requests that the job be held until after a specific time. If the specified time has already passed, the job is queued for immediate processing. You may specify an absolute time, delta time, or a combination of the two. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /DELETEP1;18}RELITE0L02SK00GG\(B Specifies that the JCL file(s) should be deleted after successful submission to the IBM system. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /LOGP1;18}RELITE0L02SK00GG\(B Specifies that the entry of routeback information in the system routeback queue be logged to the terminal. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /NOTIFYP1;18}RELITE0L02SK00GG\(B Specifies that notification messages should be sent to the username associated with the routeback entry. A notification is broadcast when submission of the JCL to the IBM system is completed. A notification is also broadcast when routeback occurs for each RJE output file. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /OUTPUT=output-type=output-specificationP1;18}RELITE0L02SK00GG\(B Specifies that routeback should occur for all RJE print output for this job. The routeback method and destination is required. Note that routeback is based upon a match of the jobname and the room code in the JOB card: 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-30 F18m0d0`w // jobname JOB (accting,room..... ^^^^^^^ ^^^^ Note that once routeback is specified (by use of the /OUTPUT qualifier), the effect is permanent unless the /TEMPORARY qualifier is specified. Use the SEND/REMOVE command to remove old entries. Use the SEND/RT command to view the current routeback queue for your username. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1;18}RTRMVRT003WK00GG18m?27h(B output-typeP1;18}RELITE0L02SK00GG\(B FILE=file-spec Specifies that the output should be copied to the file given by the file-spec. Note that the username associated with the routeback entry must have write-access to the specified directory for this routeback to function properly. SPOOL="print-qualifiers" Specifies that RJE output should be printed with the print qualifiers specified. In particular /QUEUE=queue-name can be used to direct output to a user-specified queue. The BATCH="file-spec[batch-qualifiers]" Specifies that the file specified should be submitted for batch execution. Parameter P1 will be defined for the batch job as the filename of the RJE output. If any qualifiers are included, the file-spec should be enclosed in quotes ("). Note that multiple RJE output files will cause multiple submittals to occur. Note also that the batch job is submitted under the username associated with the routeback entry. Use of the /REMOTE qualifier is not supported. MAIL="address[,...]" Specifies that RJE output should be mailed (via VMSmail) to the address(es) specified. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /QUEUE=numberP1;18}RELITE0L02SK00GG\(B Specifies that the JCL file(s) should be submitted via reader queue SNARJE$READER. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /TEMPORARYP1;18}RELITE0L02SK00GG\(B Specifies that the routeback entry should be deleted after the first successful routeback of RJE output. 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-40 F18m0d0`w 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B EXAMPLESP1;18}RELITE0L02SK00GG\(B In the following examples, it is assumed that the user entering the SEND commands is logged into username JONES_RK. 1 $ SEND SUMMARY.JCL This example submits the JCl file SUMMARY.JCL to the IBM system for execution. No routeback is specified, so any resulting output will be printed on the default RJE printer. See your system manager for the name of the default printer. 2 $ SEND SUMMARY.JCL/OUTPUT=MAIL=BOSS/NOTIFY In this example, the JCL file SUMMARY.JCL is submitted to the IBM system for execution. Any resulting printer output will be mailed to username BOSS. Also, notification messages will be broadcast to JONES_RK User JONES_RK will be notified when transmission to the IBM system is completed and when each output file is mailed to BOSS. Note that the JOB card must contain RKJ as the room code for the job to be successfully submitted. 3 $ SEND PRELIM.JCL+MONTH.DATA+REPORT.JCL/OUTPUT=FILE=MONTH.RPT/TEMPORARY This example submits a batch job made up of file PRELIM.JCL followed by MONTH.DATA followed by REPORT.JCL to the IBM system for execution. After the output is routed to file MONTH.RPT in JONES_RK's default directory, the routeback entry is deleted. 4 $ SEND T.JCL/OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2" This command causes two copies of the RJE output to be printed at queue MAILROOM using form LANDSCAPE. Note that the print qualifiers MUST be enclosed in quotes. 5 $ SEND T.JCL/OUTPUT=BATCH=FURTHER-ANALYSIS.COM When RJE output is received, the command file FURTHER-ANALYSIS.COM will be submitted to SYS$BATCH. Parameter P1 will contain the actual filename of the RJE output file. This is equivalent to the DCL command: $ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename")- FURTHER-ANALYSIS.COM 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-50 F18m0d0`w 6 This example illustrates the use of the BATCH output specifier. The JCL file is displayed below: $ TYPE T.JCL // IIDEMO JOB (IYIY1234,RKJ) )<7  )<7  < IBM JCL job > )<7  )<7  // The following command is used to submit the JCL to the IBM system for processing and specifies that the command file MULTI-PRINT.COM should be submitted for execution on the VMS batch queue SYS$BATCH. $ SEND T.JCL/OUTPUT=BATCH=MULTI-PRINT.COM When RJE output is received, the command file MULTI-PRINT.COM will be submitted to SYS$BATCH. Parameter P1 will contain the actual filename of the RJE output file. This is equivalent to the DCL command: $ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename")- MULTI-PRINT.COM The file MULTI-PRINT.COM looks like the following: $ TYPE MULTI-PRINT.COM $! Print RJE output at several printers $! $ RJE_FILE = P1 ! Get filename of RJE output $! $! Print the output on three-part paper $! $ PRINT/QUEUE=MYPRINTER/FORM=PART3 'RJE_FILE' $! $! Print a copy on my printer for record keeping $! $ PRINT/QUEUE=LASER/COPIES=2/NOFLAG 'RJE_FILE' $! $! Send report to my boss (after converting to plain text) $! $ RJECOPY/STRIP 'RJE_FILE' CLEAN.FILE $ MAIL CLEAN.FILE LARRY /SUBJECT="Monthly summary finished" $! $ EXIT 1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-60 F18m0d0`w1;18}RTRMVRT0050K00PG18m?27h(B SEND/ENTER P1;18}RELITE0L02SK00GG\(B 0q!255@!255@!255@!255@!255@1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT0050K00PG18m?27h(B SEND/ENTERP1;18}RELITE0L02SK00GG\(B Creates an entry in the RJE routeback queue for a spe- cific jobname without submitting a job for execution on the IBM system. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B FORMAT SEND/ENTER jobname [qualifiers...] P1;18}RELITE0L02SK00GG\(B 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B PARAMETER jobnamerP1;18}RELITE0L02SK00GG\(B Specifies the jobname whose routeback entry is being defined to the routeback queue. This is the name of the job as known to the IBM system. Hence, it is limited to eight alphanumeric characters. A single character wildcard (%) may be used for the eighth character. This support is included for those users printing from the IBM system through the RJE system and who can only control the first seven characters of the jobname. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B DESCRIPTIONP1;18}RELITE0L02SK00GG\(B The SEND/ENTER command is used to add entries to the routeback queue without the necessity of submitting a job for execution. This is usually done on a one-time basis, especially for jobs that are executed on the IBM system on behalf of a VMS user. Routeback is still accomplished by a match of the job's jobname and room code with an entry in the routeback queue. A VMS user holding the OPER privilege can specify any username or room-code. This is most useful when the VMS user cannot control the jobname or room-code of the IBM job. Note that for security reasons, no routeback will occur for a username whose associated UIC is a system UIC. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B QUALIFIERS P1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /CONFIRMP1;18}RELITE0L02SK00GG\(B Controls whether a request is issued before the current entry is entered into the routeback queue. The following responses are valid: 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-70 F18m0d0`w YES NO 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /LOGP1;18}RELITE0L02SK00GG\(B Specifies that the entry of routeback information in the system routeback queue be logged to the terminal. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /NOTIFYP1;18}RELITE0L02SK00GG\(B Specifies that notification messages should be sent to the username associated with the routeback entry. A notification is broadcast when submission of the JCL to the IBM system is completed. A notification is also broadcast when routeback occurs for each RJE output file. 1;18}RTRMVRT003WK00GG18m?27h(B P1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /OUTPUT=output-type=output-specificationP1;18}RELITE0L02SK00GG\(B Specifies that routeback should occur for all RJE print output for this job. The routeback method and destination is required. Note that routeback is based upon a match of the jobname and the room code in the JOB card: // jobname JOB (accting,room..... ^^^^^^^ ^^^^ Note that once routeback is specified (by use of the /OUTPUT qualifier), the effect is permanent unless the /TEMPORARY qualifier is specified. Use the SEND/REMOVE command to remove old entries. Use the SEND/RT command to view the current routeback queue for your username. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B output-typeP1;18}RELITE0L02SK00GG\(B FILE=file-spec Specifies that the output should be copied to the file given by the file-spec. Note that the username associated with the routeback entry must have write-access to the specified directory for this routeback to function properly. SPOOL="print-qualifiers" Specifies that RJE output should be printed with the print qualifiers specified. In particular /QUEUE=queue-name can be used to direct output to a user-specified queue. The BATCH="file-spec[batch-qualifiers]" Specifies that the file specified should be submitted for batch execution. Parameter P1 will be defined for the batch job as the filename of the RJE output. If any qualifiers are included, the file-spec should be enclosed in quotes ("). 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-80 F18m0d0`w Note that multiple RJE output files will cause multiple submittals to occur. Note also that the batch job is submitted under the username associated with the routeback entry. Use of the /REMOTE qualifier is not supported. MAIL="address[,...]" Specifies that RJE output should be mailed (via VMSmail) to the address(es) specified. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /ROOM=room-codeP1;18}RELITE0L02SK00GG\(B Specifies the room to be associated with this routeback entry. The room code is one to four alphanumeric characters. It also can be an asterisk (*), in which case routeback will be controlled by the jobname alone. If not specified, the room-code defaults to the initials of the username (see SEND/INITIALS). You must hold the OPER privilege to use the /ROOM qualifier. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /USERNAME=vms-usernameP1;18}RELITE0L02SK00GG\(B Specifies a different username to be associated with the routeback entry. You must hold the OPER privilege to use the /USERNAME qualifier. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B EXAMPLESP1;18}RELITE0L02SK00GG\(B In the following examples, the username issuing the commands is assumed to be JONES_RK. 1 $ SEND/ENTER MONTHRPT/OUTPUT=SPOOL="/QUEUE=LQP" This example creates a routeback entry for jobname MONTHRPT and room RKJ. Any RJE output whose jobname is MONTHRPT and room is RKJ will be printed at queue LQP. 2 $ SEND/ENTER/ROOM=* MONTHRPT/OUTPUT=MAIL=JONES_RK In this example, any RJE output whose jobname is MONTHRPT will be mailed to username JONES_RK. Note that JONES_RK must hold the OPER privilege to specify /ROOM=* 3 $ SEND/ENTER/LOG/ROOM=* JONESRK%/OUTPUT=FILE=MYOUTPUT.LIS 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-90 F18m0d0`w This example will route RJE output to a file named MYOUTPUT.LIS from any job whose jobname is eight characters long and whose first seven characters are JONESRK. 1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-100 F18m0d0`w1;18}RTRMVRT0050K00PG18m?27h(B SEND/INITIALS P1;18}RELITE0L02SK00GG\(B 0q!255@!255@!255@!255@!255@1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT0050K00PG18m?27h(B SEND/INITIALSP1;18}RELITE0L02SK00GG\(B Displays the initials corresponding to the room code for a username. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B FORMAT SEND/INITIALS [qualifier] P1;18}RELITE0L02SK00GG\(B 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1;18}RTRMVRT003WK00GG18m?27h(B DESCRIPTIONP1;18}RELITE0L02SK00GG\(B The SEND/INITIALS command is used to display the initials corresponding to the current user's username. These initials must match the room-code specified on the JOB card of JCL that is being submitted for execution on the IBM system. The initials also must match the room-code that is part of the banner of RJE output for routeback to be successful. If the username contains an underscore (_), the initials will be made up of the first two characters after the underscore, followed by the first character of the username. If only one character follows the underscore, the initials will be made up of the first character following the underscore, followed by the first character of the username. If the username contains no underscore, then the first three characters of the username will be used. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B QUALIFIERS P1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /USERNAME=usernameP1;18}RELITE0L02SK00GG\(B Specifies an alternate username whose initials will be displayed. p0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B EXAMPLESP1;18}RELITE0L02SK00GG\(B In the following examples, the username issuing the commands is assumed to be JONES_RK. 1 $ SEND/INITIALS %SEND-I-ROOMCODE, initials (room code) for username JONES_RK = RKJ 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-110 F18m0d0`w 2 $ SEND/INITIALS/USERNAME=SMITH_J %SEND-I-ROOMCODE, initials (room code) for username SMITH_J = JS 3 $ SEND/INITIALS/USERNAME=HENDERSON %SEND-I-ROOMCODE, initials (room code) for username HENDERSON = HEN 1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-120 F18m0d0`w1;18}RTRMVRT0050K00PG18m?27h(B SEND/REMOVE P1;18}RELITE0L02SK00GG\(B 0q!255@!255@!255@!255@!255@f1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT0050K00PG18m?27h(B SEND/REMOVEP1;18}RELITE0L02SK00GG\(B Removes entries from the RJE routeback queue. Requires OPER privilege to remove entry for other username or non-default room-code. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B FORMAT SEND/REMOVE jobname [qualifiers...] P1;18}RELITE0L02SK00GG\(B 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B PARAMETER jobnameP1;18}RELITE0L02SK00GG\(B Specifies the jobname whose routeback entry is being removed from the routeback queue. This is the name of the job as known to the IBc:~ SEND_PKG.BCK#[DECUS_KITS.SEND.DOC]SEND_UG.LN03;1R!&?M system. Hence, it is limited to eight alphanumeric characters 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B DESCRIPTIONP1;18}RELITE0L02SK00GG\(B The SEND/REMOVE command is used to remove an entry from the RJE routeback queue. A VMS user holding the OPER privilege can specify any username or room-code. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(Br1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B QUALIFIERS /CONFIRMP1;18}RELITE0L02SK00GG\(B Controls whether a request is issued before the entry is deleted from the routeback queue. The following responses are valid: YES NO 1;18}RTRMVRT003WK00GG18m?27h(B P1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /LOGP1;18}RELITE0L02SK00GG\(B Specifies that the removal of the routeback entry from the RJE routeback queue be logged to the terminal. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /ROOM=room-codeP1;18}RELITE0L02SK00GG\(B Specifies the room-code associated with the routeback entry to be deleted. The room-code is one to four alphanumeric characters. It can also be an asterisk (*). If not specified, the room-code defaults to the initials of the username (see SEND/INITIALS). You must hold the OPER privilege to use the /ROOM qualifier. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B P1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-130 F18m0d0`w 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /USERNAMEP1;18}RELITE0L02SK00GG\(B Specifies a different username than the user's current username. You must hold the OPER privilege to use the /USERNAME qualifier. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B EXAMPLESP1;18}RELITE0L02SK00GG\(B In the following examples, the username issuing the commands is assumed to be JONES_RK. 1 $ SEND/REMOVE MONTHRPT This removes the routeback entry whose jobname is MONTHRPT and room-code is RKJ. 2 $ SEND/REMOVE/CONFIRM/LOG MONTHRPT Username = JONES_RK (RKJ ) Jobname = MONTHRPT (Notification = N) Output = MONTHLY.RPT Answer YES to delete this entry? YES %SEND-I-ENTRYREMOVED, following entry removed Username = JONES_RK (RKJ ) Jobname = MONTHRPT (Notification = N) Output = MONTHLY.RPT This example shows both the /CONFIRM qualifier (displays the entry before removal), and the /LOG qualifier (displays the entry after removal). 1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-140 F18m0d0`w1;18}RTRMVRT0050K00PG18m?27h(B SEND/RT P1;18}RELITE0L02SK00GG\(B 0q!255@!255@!255@!255@!255@1;18}RTRMVRT0050K00PG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT0050K00PG18m?27h(B SEND/RTP1;18}RELITE0L02SK00GG\(B Displays information about current RJE routeback entries. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B FORMAT SEND/RT [jobname] [qualifiers] P1;18}RELITE0L02SK00GG\(B 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B PARAMETER jobnameP1;18}RELITE0L02SK00GG\(B Specifies the IBM jobname whose routeback entry should be displayed. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B DESCRIPTIONoP1;18}RELITE0L02SK00GG\(B The SEND/RT command displays routeback entries associated with the specified jobname. If the jobname is omitted, all entries for the given username are displayed. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(B1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B QUALIFIERS /ALLP1;18}RELITE0L02SK00GG\(B Displays all entries in the routeback queue. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /FULLP1;18}RELITE0L02SK00GG\(B Displays a full listing of each specified entry. By default, the default directory and creation date are not displayed. NOTE: The default directory is no longer used. In a future release, the default directory will be removed from the routeback entry. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /LIST=file-specP1;18}RELITE0L02SK00GG\(B By default, the output of the SEND/RT command is sent to the current SYS$OUTPUT device (usually your terminal). To send the listing to a file, use the /LIST qualifier followed by a file specification. 1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B /USERNAME=usernameP1;18}RELITE0L02SK00GG\(B By default, the entries of the current username are displayed. To see the entries of another username, use the /USERNAME qualifier followed by a username. 0q!255N!255N!255N!255N!255N1;18}RTRMVRT003WK00GG18m?27h(BP1;18}RELITE0L02SK00GG\(B1;18}RTRMVRT003WK00GG18m?27h(B EXAMPLESP1;18}RELITE0L02SK00GG\(B 1 $ SEND/RT MONTHRPT Listing of RJE routeback queue 1w120d1;19}RTRMVRT003WK00GG19m?27h(B?2 F SEND-150 F18m0d0`w User = JONES_RK (RKJ ) Jobname = MONTHRPT Room = RKJ Notification = N Output will be mailed to following address(es): JONES_RK,BOSS In this example, the routeback listing for IBM jobname MONTHRPT is displayed to the user's terminal: 2 $ SEND/RT Listing of RJE routeback queue User = JONES_RK (RKJ ) Jobname = MONTHRPT Room = RKJ Notification = N Output will be mailed to following address(es): JONES_RK,BOSS Jobname = PRDRPT Room = RKJ Notification = N Output will be mailed to following address(es): JONES_RK,BOSS In this example the jobname is omitted. Hence, all entries for user JONES_RK are displayed. 3 $ SEND/RT/FULL MONTHRPT Listing of RJE routeback queue User = JONES_RK (RKJ ) Jobname = MONTHRPT Room = RKJ Notification = N Output will be mailed to following address(es): JONES_RK,BOSS Default Directory = DISK$USERS:[JONES_RK] Creation date = 19-DEC-1988 16:06:05.71 This example uses the /FULL qualifier to see all fields of the routeback entry. ] Note that the default directory is NOT used. P0;1;0y\[!pq"*[DECUS_KITS.SEND.DOC]SEND_UG.TXT;1+,.:/ 4R::l-0123KPWO;56ZĹ97dI89`"nP GHJT               SEND    User's Guide                November 1989 H This document describes how to use the SEND software to submit O IBM JCL Batch jobs for execution and control routeback of RJE  output.  ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later & Software Version: SEND V2.0   6 SEND      SEND  E Submits IBM JCL files to the corporate IBM system for M execution. If the /OUTPUT qualifier is specified, it L will also create entries in the system RJE routeback O queue. These entries specify routeback information for C printer output received from the IBM system.  % FORMAT SEND file-spec[,...]   PARAMETER file-spec[,...] @ Specifies the name of an existing JCL file to be Q submitted to the corporate IBM system for execution. Use P a plus sign (+) or a comma (,) to indicate multiple file B specifications. Wildcards are not allowed.    DESCRIPTIONI The SEND command submits a file (or files) containing IBM M JCL commands and data to the VMS/SNA Remote Job Entry P (RJE) system for execution. As such, it functions in an M identical manner to SUBMIT/SNA. However, its primary L purpose is to allow the submitter to specify how the F resulting RJE output file(s) should be handled. I To properly route RJE output, the JOB card of the JCL job N must specify a room identifier that corresponds to the Q submitter's username. In a typical VMS environment using O LASTNAME_FM as the username, the room code would be the J user's initials. See the SEND/INITIALS command to N determine what is expected to be the room code for any ( general username. A When routeback is specified by use of the /OUTPUT P qualifier, the room code must be correct or the job will ( not be submitted. B If no routeback is specified, the room code is not R checked and so can be omitted or used for other purposes. D In this case, SEND file-spec is analogous to , SUBMIT/SNA file-spec. # SPECIFYING ROUTEBACK @ RJE output can be routed to one of the following ! locations: F A directory or file. The username of the submitter B must have write access to this location. E Any print queue. Any qualifiers used by the PRINT 3 command may be specified. - One or more mail addresses. F A VMS batch job. The name of the routeback file is I passed as the first parameter to the batch job.   QUALIFIERS  /AFTER=time E Requests that the job be held until after a specific P time. If the specified time has already passed, the job : is queued for immediate processing. B You may specify an absolute time, delta time, or a . combination of the two.  /DELETE F Specifies that the JCL file(s) should be deleted after ? successful submission to the IBM system.  /LOG H Specifies that the entry of routeback information in the H system routeback queue be logged to the terminal.  /NOTIFY F Specifies that notification messages should be sent to L the username associated with the routeback entry. A O notification is broadcast when submission of the JCL to L the IBM system is completed. A notification is also P broadcast when routeback occurs for each RJE output file.  9 /OUTPUT=output-type=output-specification G Specifies that routeback should occur for all RJE print F output for this job. The routeback method and N destination is required. Note that routeback is based P upon a match of the jobname and the room code in the JOB  card: 0 // jobname JOB (accting,room.....+ ^^^^^^^ ^^^^D Note that once routeback is specified (by use of the N /OUTPUT qualifier), the effect is permanent unless the O /TEMPORARY qualifier is specified. Use the SEND/REMOVE O command to remove old entries. Use the SEND/RT command M to view the current routeback queue for your username.  output-type  FILE=file-spec F Specifies that the output should be copied to the file G given by the file-spec. Note that the username E associated with the routeback entry must have H write-access to the specified directory for this 6 routeback to function properly. ' SPOOL="print-qualifiers" D Specifies that RJE output should be printed with the B print qualifiers specified. In particular K /QUEUE=queue-name can be used to direct output to a 2 user-specified queue. The  2 BATCH="file-spec[batch-qualifiers]" I Specifies that the file specified should be submitted for N batch execution. Parameter P1 will be defined for the L batch job as the filename of the RJE output. If any Q qualifiers are included, the file-spec should be enclosed % in quotes ("). G Note that multiple RJE output files will cause multiple M submittals to occur. Note also that the batch job is H submitted under the username associated with the ' routeback entry. = Use of the /REMOTE qualifier is not supported. # MAIL="address[,...]" H Specifies that RJE output should be mailed (via VMSmail) 4 to the address(es) specified.  /QUEUE=number F Specifies that the JCL file(s) should be submitted via : reader queue SNARJE$READER.  /TEMPORARY D Specifies that the routeback entry should be deleted J after the first successful routeback of RJE output.   EXAMPLES F In the following examples, it is assumed that the user J entering the SEND commands is logged into username JONES_RK.  1 $ SEND SUMMARY.JCL H This example submits the JCl file SUMMARY.JCL to the IBM P system for execution. No routeback is specified, so any K resulting output will be printed on the default RJE M printer. See your system manager for the name of the ' default printer.  22 $ SEND SUMMARY.JCL/OUTPUT=MAIL=BOSS/NOTIFY I In this example, the JCL file SUMMARY.JCL is submitted to L the IBM system for execution. Any resulting printer F output will be mailed to username BOSS. Also, K notification messages will be broadcast to JONES_RK O User JONES_RK will be notified when transmission to the L IBM system is completed and when each output file is P mailed to BOSS. Note that the JOB card must contain RKJ G as the room code for the job to be successfully ! submitted.  3O $ SEND PRELIM.JCL+MONTH.DATA+REPORT.JCL/OUTPUT=FILE=MONTH.RPT/TEMPORARY @ This example submits a batch job made up of file P PRELIM.JCL followed by MONTH.DATA followed by REPORT.JCL M to the IBM system for execution. After the output is Q routed to file MONTH.RPT in JONES_RK's default directory, 6 the routeback entry is deleted.  4K $ SEND T.JCL/OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2" F This command causes two copies of the RJE output to be M printed at queue MAILROOM using form LANDSCAPE. Note L that the print qualifiers MUST be enclosed in quotes.  56 $ SEND T.JCL/OUTPUT=BATCH=FURTHER-ANALYSIS.COM = When RJE output is received, the command file M FURTHER-ANALYSIS.COM will be submitted to SYS$BATCH. P Parameter P1 will contain the actual filename of the RJE K output file. This is equivalent to the DCL command: C $ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename")-( FURTHER-ANALYSIS.COM  6D This example illustrates the use of the BATCH output C specifier. The JCL file is displayed below:  $ TYPE T.JCL$ // IIDEMO JOB (IYIY1234,RKJ)   < IBM JCL job >  // F The following command is used to submit the JCL to the P IBM system for processing and specifies that the command Q file MULTI-PRINT.COM should be submitted for execution on 5 the VMS batch queue SYS$BATCH. 1 $ SEND T.JCL/OUTPUT=BATCH=MULTI-PRINT.COM = When RJE output is received, the command file H MULTI-PRINT.COM will be submitted to SYS$BATCH. P Parameter P1 will contain the actual filename of the RJE K output file. This is equivalent to the DCL command: C $ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename")-# MULTI-PRINT.COM A The file MULTI-PRINT.COM looks like the following:  $ TYPE MULTI-PRINT.COM3 $! Print RJE output at several printers $!9 $ RJE_FILE = P1 ! Get filename of RJE output $!3 $! Print the output on three-part paper $!: $ PRINT/QUEUE=MYPRINTER/FORM=PART3 'RJE_FILE' $!< $! Print a copy on my printer for record keeping $!; $ PRINT/QUEUE=LASER/COPIES=2/NOFLAG 'RJE_FILE' $!F $! Send report to my boss (after converting to plain text) $!2 $ RJECOPY/STRIP 'RJE_FILE' CLEAN.FILEH $ MAIL CLEAN.FILE LARRY /SUBJECT="Monthly summary finished" $! $ EXIT 5 SEND/ENTER       SEND/ENTER  E Creates an entry in the RJE routeback queue for a spe-O cific jobname without submitting a job for execution on & the IBM system.  2 FORMAT SEND/ENTER jobname [qualifiers...]   PARAMETER jobname D Specifies the jobname whose routeback entry is being P defined to the routeback queue. This is the name of the P job as known to the IBM system. Hence, it is limited to 5 eight alphanumeric characters. C A single character wildcard (%) may be used for the M eighth character. This support is included for those Q users printing from the IBM system through the RJE system N and who can only control the first seven characters of # the jobname.   DESCRIPTIOND The SEND/ENTER command is used to add entries to the Q routeback queue without the necessity of submitting a job Q for execution. This is usually done on a one-time basis, O especially for jobs that are executed on the IBM system / on behalf of a VMS user. G Routeback is still accomplished by a match of the job's L jobname and room code with an entry in the routeback  queue. F A VMS user holding the OPER privilege can specify any P username or room-code. This is most useful when the VMS O user cannot control the jobname or room-code of the IBM O job. Note that for security reasons, no routeback will M occur for a username whose associated UIC is a system  UIC.   QUALIFIERS  /CONFIRM G Controls whether a request is issued before the current Q entry is entered into the routeback queue. The following + responses are valid:  YES NO  /LOG H Specifies that the entry of routeback information in the H system routeback queue be logged to the terminal.  /NOTIFY F Specifies that notification messages should be sent to L the username associated with the routeback entry. A O notification is broadcast when submission of the JCL to L the IBM system is completed. A notification is also P broadcast when routeback occurs for each RJE output file.  9 /OUTPUT=output-type=output-specification G Specifies that routeback should occur for all RJE print F output for this job. The routeback method and N destination is required. Note that routeback is based P upon a match of the jobname and the room code in the JOB  card: 0 // jobname JOB (accting,room.....+ ^^^^^^^ ^^^^D Note that once routeback is specified (by use of the N /OUTPUT qualifier), the effect is permanent unless the O /TEMPORARY qualifier is specified. Use the SEND/REMOVE O command to remove old entries. Use the SEND/RT command M to view the current routeback queue for your username.   output-type  FILE=file-spec  F Specifies that the output should be copied to the file G given by the file-spec. Note that the username tE associated with the routeback entry must have rH write-access to the specified directory for this 6 routeback to function properly. ' SPOOL="print-qualifiers"  D Specifies that RJE output should be printed with the B print qualifiers specified. In particular K /QUEUE=queue-name can be used to direct output to a 2 user-specified queue. The  2 BATCH="file-spec[batch-qualifiers]" I Specifies that the file specified should be submitted for iN batch execution. Parameter P1 will be defined for the L batch job as the filename of the RJE output. If any Q qualifiers are included, the file-spec should be enclosed t% in quotes ("). G Note that multiple RJE output files will cause multiple M submittals to occur. Note also that the batch job is lH submitted under the username associated with the ' routeback entry. = Use of the /REMOTE qualifier is not supported.M # MAIL="address[,...]"a H Specifies that RJE output should be mailed (via VMSmail) 4 to the address(es) specified. /ROOM=room-codeG Specifies the room to be associated with this routeback iI entry. The room code is one to four alphanumeric sM characters. It also can be an asterisk (*), in which JQ case routeback will be controlled by the jobname alone. t H If not specified, the room-code defaults to the initials ; of the username (see SEND/INITIALS).  A You must hold the OPER privilege to use the /ROOM S! qualifier.  ' /USERNAME=vms-username H Specifies a different username to be associated with the ' routeback entry.  E You must hold the OPER privilege to use the /USERNAME o! qualifier.    EXAMPLES C In the following examples, the username issuing the : commands is assumed to be JONES_RK.  1 7 $ SEND/ENTER MONTHRPT/OUTPUT=SPOOL="/QUEUE=LQP"a B This example creates a routeback entry for jobname O MONTHRPT and room RKJ. Any RJE output whose jobname is oM MONTHRPT and room is RKJ will be printed at queue LQP.   2r9 $ SEND/ENTER/ROOM=* MONTHRPT/OUTPUT=MAIL=JONES_RK  I In this example, any RJE output whose jobname is MONTHRPT P will be mailed to username JONES_RK. Note that JONES_RK F must hold the OPER privilege to specify /ROOM=*   3 A $ SEND/ENTER/LOG/ROOM=* JONESRK%/OUTPUT=FILE=MYOUTPUT.LIS  B This example will route RJE output to a file named H MYOUTPUT.LIS from any job whose jobname is eight L characters long and whose first seven characters are  JONESRK.t 8 SEND/INITIALS       SEND/INITIALS   H Displays the initials corresponding to the room code for " a username.  ) FORMAT SEND/INITIALS [qualifier]    DESCRIPTIONe I The SEND/INITIALS command is used to display the initials L corresponding to the current user's username. These N initials must match the room-code specified on the JOB P card of JCL that is being submitted for execution on the O IBM system. The initials also must match the room-code Q that is part of the banner of RJE output for routeback to % be successful.M H If the username contains an underscore (_), the initials M will be made up of the first two characters after the J underscVU~ SEND_PKG.BCK"[DECUS_KITS.SEND.DOC]SEND_UG.TXT;1R:9 +ore, followed by the first character of the username. A If only one character follows the underscore, the mQ initials will be made up of the first character following N the underscore, followed by the first character of the username. F If the username contains no underscore, then the first E three characters of the username will be used.s   QUALIFIERS # /USERNAME=usernamec F Specifies an alternate username whose initials will be ! displayed.    EXAMPLES C In the following examples, the username issuing the e: commands is assumed to be JONES_RK.  1- $ SEND/INITIALS M %SEND-I-ROOMCODE, initials (room code) for username JONES_RK = RKJc  2 ( $ SEND/INITIALS/USERNAME=SMITH_JL %SEND-I-ROOMCODE, initials (room code) for username SMITH_J = JS  3s* $ SEND/INITIALS/USERNAME=HENDERSONM %SEND-I-ROOMCODE, initials (room code) for username HENDERSON = HENc n5 SEND/REMOVEe       SEND/REMOVE  < Removes entries from the RJE routeback queue. A Requires OPER privilege to remove entry for other u9 username or non-default room-code.   3 FORMAT SEND/REMOVE jobname [qualifiers...]   PARAMETER jobnameeD Specifies the jobname whose routeback entry is being N removed from the routeback queue. This is the name of Q the job as known to the IBM system. Hence, it is limited l7 to eight alphanumeric characters    DESCRIPTION G The SEND/REMOVE command is used to remove an entry from / the RJE routeback queue.o E A VMS user holding the OPER privilege can specify any s- username or room-code.e  QUALIFIERS /CONFIRMTH Controls whether a request is issued before the entry is H deleted from the routeback queue. The following + responses are valid:r  YES NO   /LOG F Specifies that the removal of the routeback entry from I the RJE routeback queue be logged to the terminal.  /ROOM=room-codeE Specifies the room-code associated with the routeback J entry to be deleted. The room-code is one to four P alphanumeric characters. It can also be an asterisk (*). H If not specified, the room-code defaults to the initials ; of the username (see SEND/INITIALS). A You must hold the OPER privilege to use the /ROOM ! qualifier.   /USERNAMEF Specifies a different username than the user's current username. E You must hold the OPER privilege to use the /USERNAME e! qualifier.    EXAMPLES C In the following examples, the username issuing the : commands is assumed to be JONES_RK.  1  $ SEND/REMOVE MONTHRPT A This removes the routeback entry whose jobname is l5 MONTHRPT and room-code is RKJ.t  2s+ $ SEND/REMOVE/CONFIRM/LOG MONTHRPT  % Username = JONES_RK (RKJ )t. Jobname = MONTHRPT (Notification = N) Output = MONTHLY.RPT , Answer YES to delete this entry? YES5 %SEND-I-ENTRYREMOVED, following entry removed % Username = JONES_RK (RKJ ) . Jobname = MONTHRPT (Notification = N) Output = MONTHLY.RPT H This example shows both the /CONFIRM qualifier (displays I the entry before removal), and the /LOG qualifier : (displays the entry after removal). 7 SEND/RTf      SEND/RT  H Displays information about current RJE routeback entries.  . FORMAT SEND/RT [jobname] [qualifiers]   PARAMETER jobnameCI Specifies the IBM jobname whose routeback entry should be e! displayed.    DESCRIPTIONiI The SEND/RT command displays routeback entries associated sO with the specified jobname. If the jobname is omitted, =H all entries for the given username are displayed.   QUALIFIERS /ALLI; Displays all entries in the routeback queue.   /FULLD Displays a full listing of each specified entry. By P default, the default directory and creation date are not ! displayed.  E NOTE: The default directory is no longer used. In a xM future release, the default directory will be removed r0 from the routeback entry. /LIST=file-specH By default, the output of the SEND/RT command is sent to O the current SYS$OUTPUT device (usually your terminal). cN To send the listing to a file, use the /LIST qualifier 8 followed by a file specification. # /USERNAME=usernametC By default, the entries of the current username are SO displayed. To see the entries of another username, use F the /USERNAME qualifier followed by a username.   EXAMPLES   1. $ SEND/RT MONTHRPT& Listing of RJE routeback queue " User = JONES_RK (RKJ ): Jobname = MONTHRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSS  F In this example, the routeback listing for IBM jobname D MONTHRPT is displayed to the user's terminal:  2  $ SEND/RT& Listing of RJE routeback queue " User = JONES_RK (RKJ ): Jobname = MONTHRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSS  8 Jobname = PRDRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSS  C In this example the jobname is omitted. Hence, all ? entries for user JONES_RK are displayed.L  3U $ SEND/RT/FULL MONTHRPT& Listing of RJE routeback queue " User = JONES_RK (RKJ ): Jobname = MONTHRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSSe 4 Default Directory = DISK$USERS:[JONES_RK]2 Creation date = 19-DEC-1988 16:06:05.71 G This example uses the /FULL qualifier to see all fields fP of the routeback entry. Note that the default directory # is NOT used.i "*[DECUS_KITS.SEND.DOC]SEND_UG.WPS;1+,#.:/ 4R::l-0123KPWO;567߻񘥓89`"nP GHJZ               SEND    User's Guide                November 1989 H This document describes how to use the SEND software to submit O IBM JCL Batch jobs for execution and control routeback of RJE  output.  ? Supersession/Update Information: This is a new manual. : Operating System and Version: VMS V4.6 and later & Software Version: SEND V2.0   6 SEND      SEND  E Submits IBM JCL files to the corporate IBM system for M execution. If the /OUTPUT qualifier is specified, it L will also create entries in the system RJE routeback O queue. These entries specify routeback information for C printer output received from the IBM system.  % FORMAT SEND file-spec[,...]   PARAMETER file-spec[,...] @ Specifies the name of an existing JCL file to be Q submitted to the corporate IBM system for execution. Use P a plus sign (+) or a comma (,) to indicate multiple file B specifications. Wildcards are not allowed.    DESCRIPTIONI The SEND command submits a file (or files) containing IBM M JCL commands and data to the VMS/SNA Remote Job Entry P (RJE) system for execution. As such, it functions in an M identical manner to SUBMIT/SNA. However, its primary L purpose is to allow the submitter to specify how the F resulting RJE output file(s) should be handled. I To properly route RJE output, the JOB card of the JCL job N must specify a room identifier that corresponds to the Q submitter's username. In a typical VMS environment using O LASTNAME_FM as the username, the room code would be the J user's initials. See the SEND/INITIALS command to N determine what is expected to be the room code for any ( general username. A When routeback is specified by use of the /OUTPUT P qualifier, the room code must be correct or the job will ( not be submitted. B If no routeback is specified, the room code is not R checked and so can be omitted or used for other purposes. D In this case, SEND file-spec is analogous to , SUBMIT/SNA file-spec. # SPECIFYING ROUTEBACK @ RJE output can be routed to one of the following ! locations: F A directory or file. The username of the submitter B must have write access to this location. E Any print queue. Any qualifiers used by the PRINT 3 command may be specified. - One or more mail addresses. F A VMS batch job. The name of the routeback file is I passed as the first parameter to the batch job.   QUALIFIERS  /AFTER=time E Requests that the job be held until after a specific P time. If the specified time has already passed, the job : is queued for immediate processing. B You may specify an absolute time, delta time, or a . combination of the two.  /DELETE F Specifies that the JCL file(s) should be deleted after ? successful submission to the IBM system.  /LOG H Specifies that the entry of routeback information in the H system routeback queue be logged to the terminal.  /NOTIFY F Specifies that notification messages should be sent to L the username associated with the routeback entry. A O notification is broadcast when submission of the JCL to L the IBM system is completed. A notification is also P broadcast when routeback occurs for each RJE output file.  9 /OUTPUT=output-type=output-specification G Specifies that routeback should occur for all RJE print F output for this job. The routeback method and N destination is required. Note that routeback is based P upon a match of the jobname and the room code in the JOB  card: 0 // jobname JOB (accting,room.....+ ^^^^^^^ ^^^^D Note that once routeback is specified (by use of the N /OUTPUT qualifier), the effect is permanent unless the O /TEMPORARY qualifier is specified. Use the SEND/REMOVE O command to remove old entries. Use the SEND/RT command M to view the current routeback queue for your username.  output-type  FILE=file-spec F Specifies that the output should be copied to the file G given by the file-spec. Note that the username E associated with the routeback entry must have H write-access to the specified directory for this 6 routeback to function properly. ' SPOOL="print-qualifiers" D Specifies that RJE output should be printed with the B print qualifiers specified. In particular K /QUEUE=queue-name can be used to direct output to a 2 user-specified queue. The  2 BATCH="file-spec[batch-qualifiers]" I Specifies that the file specified should be submitted for N batch execution. Parameter P1 will be defined for the L batch job as the filename of the RJE output. If any Q qualifiers are included, the file-spec should be enclosed % in quotes ("). G Note that multiple RJE output files will cause multiple M submittals to occur. Note also that the batch job is H submitted under the username associated with the ' routeback entry. = Use of the /REMOTE qualifier is not supported. # MAIL="address[,...]" H Specifies that RJE output should be mailed (via VMSmail) 4 to the address(es) specified.  /QUEUE=number F Specifies that the JCL file(s) should be submitted via : reader queue SNARJE$READER.  /TEMPORARY D Specifies that the routeback entry should be deleted J after the first successful routeback of RJE output.   EXAMPLES F In the following examples, it is assumed that the user J entering the SEND commands is logged into username JONES_RK.  1 $ SEND SUMMARY.JCL H This example submits the JCl file SUMMARY.JCL to the IBM P system for execution. No routeback is specified, so any K resulting output will be printed on the default RJE M printer. See your system manager for the name of the ' default printer.  22 $ SEND SUMMARY.JCL/OUTPUT=MAIL=BOSS/NOTIFY I In this example, the JCL file SUMMARY.JCL is submitted to L the IBM system for execution. Any resulting printer F output will be mailed to username BOSS. Also, K notification messages will be broadcast to JONES_RK O User JONES_RK will be notified when transmission to the L IBM system is completed and when each output file is P mailed to BOSS. Note that the JOB card must contain RKJ G as the room code for the job to be successfully ! submitted.  3O $ SEND PRELIM.JCL+MONTH.DATA+REPORT.JCL/OUTPUT=FILE=MONTH.RPT/TEMPORARY @ This example submits a batch job made up of file P PRELIM.JCL followed by MONTH.DATA followed by REPORT.JCL M to the IBM system for execution. After the output is Q routed to file MONTH.RPT in JONES_RK's default directory, 6 the routeback entry is deleted.  4K $ SEND T.JCL/OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2" F This command causes two copies of the RJE output to be M printed at queue MAILROOM using form LANDSCAPE. Note L that the print qualifiers MUST be enclosed in quotes.  56 $ SEND T.JCL/OUTPUT=BATCH=FURTHER-ANALYSIS.COM = When RJE output is received, the command file M FURTHER-ANALYSIS.COM will be submitted to SYS$BATCH. P Parameter P1 will contain the actual filename of the RJE K output file. This is equivalent to the DCL command: C $ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename")-( FURTHER-ANALYSIS.COM  6D This example illustrates the use of the BATCH output C specifier. The JCL file is displayed below:  $ TYPE T.JCL$ // IIDEMO JOB (IYIY1234,RKJ)   < IBM JCL job >  // F The following command is used to submit the JCL to the P IBM system for processing and specifies that the command Q file MULTI-PRINT.COM should be submitted for execution on 5 the VMS batch queue SYS$BATCH. 1 $ SEND T.JCL/OUTPUT=BATCH=MULTI-PRINT.COM = When RJE output is received, the command file H MULTI-PRINT.COM will be submitted to SYS$BATCH. P Parameter P1 will contain the actual filename of the RJE K output file. This is equivalent to the DCL command: C $ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename")-# MULTI-PRINT.COM A The file MULTI-PRINT.COM looks like the following:  $ TYPE MULTI-PRINT.COM3 $! Print RJE output at several printers $!9 $ RJE_FILE = P1 ! Get filename of RJE output $!3 $! Print the output on three-part paper $!: $ PRINT/QUEUE=MYPRINTER/FORM=PART3 'RJE_FILE' $!< $! Print a copy on my printer for record keeping $!; $ PRINT/QUEUE=LASER/COPIES=2/NOFLAG 'RJE_FILE' $!F $! Send report to my boss (after converting to plain text) $!2 $ RJECOPY/STRIP 'RJE_FILE' CLEAN.FILEH $ MAIL CLEAN.FILE LARRY /SUBJECT="Monthly summary finished" $! $ EXIT 5 SEND/ENTER       SEND/ENTER  E Creates an entry in the RJE routeback queue for a spe-O cific jobname without submitting a job for execution on & the IBM system.  2 FORMAT SEND/ENTER jobname [qualifiers...]   PARAMETER jobname D Specifies the jobname whose routeback entry is being P defined to the routeback queue. This is the name of the P job as known to the IBM system. Hence, it is limited to 5 eight alphanumeric characters. C A single character wildcard (%) may be used for the M eighth character. This support is included for those Q users printing from the IBM system through the RJE system N and who can only control the first seven characters of # the jobname.   DESCRIPTIOND The SEND/ENTER command is used to add entries to the Q routeback queue without the necessity of submitting a job Q for execution. This is usually done on a one-time basis, O especially for jobs that are executed on the IBM system / on behalf of a VMS user. G Routeback is still accomplished by a match of the job's L jobname and room code with an entry in the routeback  queue. F A VMS user holding the OPER privilege can specify any P username or room-code. This is most useful when the VMS O user cannot control the jobname or room-code of the IBM O job. Note that for security reasons, no routeback will M occur for a username whose associated UIC is a system  UIC.   QUALIFIERS  /CONFIRM G Controls whether a request is issued before the current Q entry is entered into the routeback queue. The following + responses are valid:  YES NO  /LOG H Specifies that the entry of routeback information in the H system routeback queue be logged to the terminal.  /NOTIFY F Specifies that notification messages should be sent to L the username associated with the routeback entry. A O notification is broadcast when submission of the JCL to L the IBM system is completed. A notification is also P broadcast when routeback occurs for each RJE output file.  9 /OUTPUT=output-type=output-specification G Specifies that routeback should occur for all RJE print F output for this job. The routeback method and N destination is required. Note that routeback is based P upon a match of the jobname and the room code in the JOB  card: 0 // jobname JOB (accting,room.....+ ^^^^^^^ ^^^^D Note that once routeback is specified (by use of the N /OUTPUT qualifier), the effect is permanent unless the O /TEMPORARY qualifier is specified. Use the SEND/REMOVE O command to remove old entries. Use the SEND/RT command M to view the current routeback queue for your username.   output-type  FILE=file-spec  F Specifies that the output should be copied to the file G given by the file-spec. Note that the username tE associated with the routeback entry must have rH write-access to the specified directory for this 6 routeback to function properly. ' SPOOL="print-qualifiers"  D Specifies that RJE output should be printed with the B print qualifiers specified. In particular K /QUEUE=queue-name can be used to direct output to a 2 user-specified queue. The  2 BATCH="file-spec[batch-qualifiers]" I Specifies that the file specified should be submitted for iN batch execution. Parameter P1 will be defined for the L batch job as the filename of the RJE output. If any Q qualifiers are included, the file-spec should be enclosed t% in quotes ("). G Note that multiple RJE output files will cause multiple M submittals to occur. Note also that the batch job is lH submitted under the username associated with the ' routeback entry. = Use of the /REMOTE qualifier is not supported.M # MAIL="address[,...]"a H Specifies that RJE output should be mailed (via VMSmail) 4 to the address(es) specified. /ROOM=room-codeG Specifies the room to be associated with this routeback iI entry. The room code is one to four alphanumeric sM characters. It also can be an asterisk (*), in which JQ case routeback will be controlled by the jobname alone. t H If not specified, the room-code defaults to the initials ; of the username (see SEND/INITIALS).  A You must hold the OPER privilege to use the /ROOM S! qualifier.  ' /USERNAME=vms-username H Specifies a different username to be associated with the ' routeback entry.  E You must hold the OPER privilege to use the /USERNAME o! qualifier.    EXAMPLES C In the following examples, the username issuing the : commands is assumed to be JONES_RK.  1 7 $ SEND/ENTER MONTHRPT/OUTPUT=SPOOL="/QUEUE=LQP"a B This example creates a routeback entry for jobname O MONTHRPT and room RKJ. Any RJE output whose jobname is oM MONTHRPT and room is RKJ will be printed at queue LQP.   2r9 $ SEND/ENTER/ROOM=* MONTHRPT/OUTPUT=MAIL=JONES_RK  I In this example, any RJE output whose jobname is MONTHRPT P will be mailed to username JONES_RK. Note that JONES_RK F must hold the OPER privilege to specify /ROOM=*   3 A $ SEND/ENTER/LOG/ROOM=* JONESRK%/OUTPUT=FILE=MYOUTPUT.LIS  B This example will route RJE output to a file named H MYOUTPUT.LIS from any job whose jobname is eight L characters long and whose first seven characters are  JONESRK.t 8 SEND/INITIALS       SEND/INITIALS   H Displays the initials corresponding to the room code for " a username.  ) FORMAT SEND/INITIALS [qualifier]    DESCRIPTIONe I The SEND/INITIALS command is used to display the initials L corresponding to the current user's username. These N initials must match the room-code specified on the JOB P card of JCL that is being submitted for execution on the O IBM system. The initials also must match the room-code Q that is part of the banner of RJE output for routeback to % be successful.M H If the username contains an underscore (_), the initials M will be made up of the first two characters after the J underscore, followed by the first character of the username. A If only one character follows the underscore, the mQ initials will be made up of the first character following N the underscore, followed by the first character of the username. F If the username contains no underscore, then the first E three characters of the username will be used.s   QUALIFIERS # /USERNAME=usernamec F Specifies an alternate username whose initials will be ! displayed.    EXAMPLES C In the following examples, the username issuing the e: commands is assumed to be JONES_RK.  1- $ SEND/INITIALS M %SEND-I-ROOMCODE, initials (room code) for username JONES_RK = RKJc  2 ( $ SEND/INITIALS/USERNAME=SMITH_JL %SEND-I-ROOMCODE, initials (room code) for username SMITH_J = JS  3s* $ SEND/INITIALS/USERNAME=HENDERSONM %SEND-I-ROOMCODE, initials (room code) for username HENDERSON = HENc n5 SEND/REMOVEe       SEND/REMOVE  < Removes entries from the RJE routeback queue. A Requires OPER privilege to removeQX~ SEND_PKG.BCK#"[DECUS_KITS.SEND.DOC]SEND_UG.WPS;1R:N5. entry for other u9 username or non-default room-code.   3 FORMAT SEND/REMOVE jobname [qualifiers...]   PARAMETER jobnameeD Specifies the jobname whose routeback entry is being N removed from the routeback queue. This is the name of Q the job as known to the IBM system. Hence, it is limited l7 to eight alphanumeric characters    DESCRIPTION G The SEND/REMOVE command is used to remove an entry from / the RJE routeback queue.o E A VMS user holding the OPER privilege can specify any s- username or room-code.e  QUALIFIERS /CONFIRMTH Controls whether a request is issued before the entry is H deleted from the routeback queue. The following + responses are valid:r  YES NO   /LOG F Specifies that the removal of the routeback entry from I the RJE routeback queue be logged to the terminal.  /ROOM=room-codeE Specifies the room-code associated with the routeback J entry to be deleted. The room-code is one to four P alphanumeric characters. It can also be an asterisk (*). H If not specified, the room-code defaults to the initials ; of the username (see SEND/INITIALS). A You must hold the OPER privilege to use the /ROOM ! qualifier.   /USERNAMEF Specifies a different username than the user's current username. E You must hold the OPER privilege to use the /USERNAME e! qualifier.    EXAMPLES C In the following examples, the username issuing the : commands is assumed to be JONES_RK.  1  $ SEND/REMOVE MONTHRPT A This removes the routeback entry whose jobname is l5 MONTHRPT and room-code is RKJ.t  2s+ $ SEND/REMOVE/CONFIRM/LOG MONTHRPT  % Username = JONES_RK (RKJ )t. Jobname = MONTHRPT (Notification = N) Output = MONTHLY.RPT , Answer YES to delete this entry? YES5 %SEND-I-ENTRYREMOVED, following entry removed % Username = JONES_RK (RKJ ) . Jobname = MONTHRPT (Notification = N) Output = MONTHLY.RPT H This example shows both the /CONFIRM qualifier (displays I the entry before removal), and the /LOG qualifier : (displays the entry after removal). 7 SEND/RTf      SEND/RT  H Displays information about current RJE routeback entries.  . FORMAT SEND/RT [jobname] [qualifiers]   PARAMETER jobnameCI Specifies the IBM jobname whose routeback entry should be e! displayed.    DESCRIPTIONiI The SEND/RT command displays routeback entries associated sO with the specified jobname. If the jobname is omitted, =H all entries for the given username are displayed.   QUALIFIERS /ALLI; Displays all entries in the routeback queue.   /FULLD Displays a full listing of each specified entry. By P default, the default directory and creation date are not ! displayed.  E NOTE: The default directory is no longer used. In a xM future release, the default directory will be removed r0 from the routeback entry. /LIST=file-specH By default, the output of the SEND/RT command is sent to O the current SYS$OUTPUT device (usually your terminal). cN To send the listing to a file, use the /LIST qualifier 8 followed by a file specification. # /USERNAME=usernametC By default, the entries of the current username are SO displayed. To see the entries of another username, use F the /USERNAME qualifier followed by a username.   EXAMPLES   1. $ SEND/RT MONTHRPT& Listing of RJE routeback queue " User = JONES_RK (RKJ ): Jobname = MONTHRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSS  F In this example, the routeback listing for IBM jobname D MONTHRPT is displayed to the user's terminal:  2  $ SEND/RT& Listing of RJE routeback queue " User = JONES_RK (RKJ ): Jobname = MONTHRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSS  8 Jobname = PRDRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSS  C In this example the jobname is omitted. Hence, all ? entries for user JONES_RK are displayed.L  3U $ SEND/RT/FULL MONTHRPT& Listing of RJE routeback queue " User = JONES_RK (RKJ ): Jobname = MONTHRPT Room = RKJ Notification = N: Output will be mailed to following address(es): JONES_RK,BOSSe 4 Default Directory = DISK$USERS:[JONES_RK]2 Creation date = 19-DEC-1988 16:06:05.71 G This example uses the /FULL qualifier to see all fields fP of the routeback entry. Note that the default directory # is NOT used.i *[DECUS_KITS.SEND]KIT.DIR;1+,# ./ 4-o; 0123 KPWO56<৔7 89~T GHJI DEMODEMO.STD) GETUIC.OBJGET_INITIALS.OBJ2 INSTALL_SEND.COM$PRINT_RELEASE_NOTES.COMB RJECOPY.CLDa RJECOPY.HLP . RJECOPY.OBJRJE_LOG_FILE.FDLW fROUTE_PRINT.COM SSEND.CLD zSEND.HLP SEND.OBJ"SEND020.RELEASE_NOTES!SEND_ENTER.OBJ[SEND_INITIALS.OBJ SEND_IVP.COM1-SEND_REMOVE.OBJ SEND_RT.OBJ_&SNARJE$ROUTEBACK_SITE.COM] SNARJE_ROUTEBACK.FDLuSTARTUP$SEND.COM#*[DECUS_KITS.SEND.KIT]DEMODEMO.STD;1+,)./ 4-# 0123KPWO56 u:;74]89`"nP GHJ*A START JOB 1234 DEMODEMO 1 001 001 REMOTE12 DEMONSTRATION FILE ROOM ABCD 1.00.00 PM 01 APR 89 R12.PR1 SYSA START A*s This is a test file. If it appears in the proper directory, then the RJE Routeback system is functioning properly!*[DECUS_KITS.SEND.KIT]GETUIC.OBJ;1+,./ 4l-# 0123KPWO56 =;7]89`"nP GHJ6 GETUIC$MAIN0119-Jan-1990 11:5219-Jan-1990 11:52VAX FORTRAN V5.1-10 GETUIC$MAIN4PUsername> !%UUSERS_UICUSERS_DEVUSERS_DIR GETUIC$MAINP4   LIB$GET_FOREIGN@  SYS$FAO@   LIB$SET_SYMBOL@( < LIB$SET_SYMBOL@D #X# LIB$SET_SYMBOL@`PP`\Pk``P `bP `dP`hPޫ`lP@`nP`pP`tPޫ `xP`(LIB$GET_FOREIGNTD4 SYS$GETUAI SS$_NORMALQPQ , , @Pl\SYS$FAOx|ˀLIB$SET_SYMBOL˔˘˜LIB$SET_SYMBOL ˰˴˸LIB$SET_SYMBOLFOR$EXIT o\oXX\gBAS$SEGgBAS$SEG_ STR$CONCATg_BAS$SEGݏ__BAS$EDIT<_XX\\XX BAS$STRING_k STR$CONCATP BAS$END_R8P  '*[DECUS_KITS.SEND.KIT]INSTALL_SEND.COM;1+,./ 4O-# 0123KPWO56կ1Β7 ^89`"nP GHJ0.$! Installation of RJE Routeback System - V2.0$!A$! Default is assumed to be SYS$SYSROOT:[SYSMGR.corning_SEND_KIT]$!>$! First, make sure we have enough free GBLSECTIONS & GBLPAGES4$! before proceeding. (DCLTABLES will be replaced).$! $ set noon$ install := $install/command$ uaf := $authorize'$ if f$trnlnm("sysuaf") .eqs. "" then -% define sysuaf sys$system:sysuaf.dat+$ if f$trnlnm("rightslist") .eqs. "" then -- define rightslist sys$system:rightslist.dat)$ if f$trnlnm("netproxy") .eqs. "" then -) define netproxy sys$system:netproxy.dat'$ if f$trnlnm("netuaf") .eqs. "" then -% define netuaf sys$system:netuaf.datG$ write sys$output "''f$time()' - Starting RJE Routeback installation."$!2$ if f$type(send) .eqs. "" then goto no_prior_send$ write sys$output ""6$ write sys$output " *** WARNING ***"O$ write sys$output "The DCL symbol ""SEND"" is already defined as ""''send'""."M$ write sys$output "This procedure installs a command called SEND which will"M$ write sys$output "conflict with the previous definition. The installation"N$ write sys$output "will proceed, but the DCL symbol ""SEND"" will have to be"M$ write sys$output "removed before the RJE routeback system will be useable."$ write sys$output "")$ inquire junk "Press RETURN to continue"$ delete/symbol/global send$!$no_prior_send:$ gosub check_gbl4$ if gblsections_free .lt. 5 then goto need_sections0$ if gblpages_free .lt. 400 then goto need_pages$!,$ @print_release_notes send020.release_notes$!$ write sys$output ""J$ write sys$output "You will now be asked to specify a routeback account."I$ write sys$output "If the account does not exist, you will be asked for"K$ write sys$output "additional information in order to create the account."$! $bad_acct:$ write sys$output ""8$ inquire acct "Routeback account name (e.g. RMT12_PR1)"%$ if acct .eqs. "" then goto bad_acct2$ set message/nofacility/noident/noseverity/notext$ delete sysuaf.lis;*$ uaf list 'acct'/brief%$ search/output=nl: sysuaf.lis 'acct'$ acct_exists = $status*$ set message/facility/ident/severity/text*$ if acct_exists then goto use_old_account $bad_uic:$ write sys$output ""$ inquire uic "UIC"#$ if uic .eqs. "" then goto bad_uic%$ uic = "[" + (uic - "[" - "]") + "]" $bad_device:$ write sys$output ""!$ inquire device "Default device")$ if device .eqs. "" then goto bad_device$ device = device - ":" + ":"$bad_directory:$ write sys$output ""'$ inquire directory "Default directory"/$ if directory .eqs. "" then goto bad_directory1$ directory = "[" + (directory - "[" - "]") + "]" $verify_acct:$ write sys$output ""7$ write sys$output "Verifying account to be created..."$ write sys$output ""5$ write sys$output " Account ''acct' with UIC ''uic'"<$ write sys$output " Device/directory ''device'''directory'"$ write sys$output ""%$ inquire gocode "Verify (Yes or No)"*$ if gocode .eqs. "" then goto verify_acct$$ if .not. gocode then goto bad_acct$ uaf add 'acct' - /uic='uic' - /bytlm=20000$ uaf modify 'acct' - /device='device' - /directory='directory'$ uaf modify 'acct' -' /lgicmd=sys$manager:route_print.com -. /nolocal/noremote/nobatch/nodialup/network - /prclm=26$ create/directory/log/owner='uic' 'device''directory'$ goto setup_any_acct$!$use_old_account:$ open/read f1 sysuaf.lis'$get_old_uic_loop:!$ read/error=no_old_uic f1 record=$ if f$locate("''acct'",record) .eqs. f$length(record) then - goto get_old_uic_loop<$ uic = "[" + f$element(1,"[",f$element(0,"]",record)) + "]" $ close f1$ goto setup_any_acct $no_old_uic:K$ write sys$output "FATAL INSTALLATION ERROR - Cannot locate account's UIC"$ exit$!$setup_any_acct:$ uaf modify 'acct' -1 /privilege=(netmbx,tmpmbx,cmkrnl,oper,sysprv) -4 /defprivilege=(netmbx,tmpmbx,cmkrnl,oper,sysprv) - /nopassword($ write sys$output "Linking SEND.EXE..."%$ link/notrace_back send,get_initials+$ write sys$output "Linking SEND_RT.EXE..."($ link/notrace_back send_rt,get_initials.$ write sys$output "Linking SEND_ENTER.EXE..."+$ link/notrace_back send_enter,get_initials/$ write sys$output "Linking SEND_REMOVE.EXE...",$ link/notrace_back send_remove,get_initials1$ write sys$output "Linking SEND_INITIALS.EXE...".$ link/notrace_back send_initials,get_initials+$ write sys$output "Linking RJECOPY.EXE..."$ link/notrace_back rjecopy*$ write sys$output "Linking GETUIC.EXE..."$ link/notrace_back getuic $ purge/nolog8$ write sys$output "Copying images to final location..."9$ copy/protection=(world:re) send.exe sys$common:[sysexe]<$ copy/protection=(world:re) send_rt.exe sys$common:[sysexe]?$ copy/protection=(world:re) send_enter.exe sys$common:[sysexe]@$ copy/protection=(world:re) send_remove.exe sys$common:[sysexe]B$ copy/protection=(world:re) send_initials.exe sys$common:[sysexe]<$ copy/protection=(world:re) rjecopy.exe sys$common:[sysexe]8$ copy/protection=(world) getuic.exe sys$common:[sysexe]>$ copy/protection=(world) startup$send.com sys$common:[sysmgr]=$ copy/protection=(world) route_print.com sys$common:[sysmgr]G$ copy/protection=(world) snarje$routeback_site.com sys$common:[sysmgr]A$ copy/protection=(world:re) rje_log_file.fdl sys$common:[sysmgr]$!D$! De-install old versions before purge. Otherwise, INSTALL REPLACE5$! fails due to original file no longer being around.$!<$ if f$file_attributes("sys$system:send.exe","known") then -$ install remove sys$system:send.exeB$ if f$file_attributes("sys$system:send_enter.exe","known") then -* install remove sys$system:send_enter.exeC$ if f$file_attributes("sys$system:send_remove.exe","known") then -+ install remove sys$system:send_remove.exe?$ if f$file_attributes("sys$system:send_rt.exe","known") then -' install remove sys$system:send_rt.exe$!)$ purge/nolog sys$common:[sysexe]send.exe,$ purge/nolog sys$common:[sysexe]send_rt.exe/$ purge/nolog sys$common:[sysexe]send_enter.exe0$ purge/nolog sys$common:[sysexe]send_remove.exe2$ purge/nolog sys$common:[sysexe]send_initials.exe,$ purge/nolog sys$common:[sysexe]rjecopy.exe+$ purge/nolog sys$common:[sysexe]getuic.exe$!H$ if f$search("sys$common:[sysmgr]snarje_routeback.dat") .nes. "" then - goto no_new_rb_fileE$ create/fdl=snarje_routeback sys$common:[sysmgr]snarje_routeback.dat@$ set protection=(world) sys$common:[sysmgr]snarje_routeback.dat$!$no_new_rb_file:$!I$! Add SEND and RJECOPY commands to DCLtables. Use the two step approachG$! to avoid the possibility of the VAX crashing just as we are creatingA$! a new copy of DCLTABLES. This leaves a zero-length file which.$! prevents the VAX from booting. It happens!K$! We also make sure to put the new table back in the exact same directory.$!8$ write sys$output "Defining DCL commands SEND, RJECOPY"4$ curr_table = f$search("sys$library:dcltables.exe")2$ curr_location = f$parse(curr_table,,,"device") -% + f$parse(curr_table,,,"directory")$ set command -# /table='curr_location'dcltables -( /output='curr_location'dcltables_new - send,rjecopyC$ rename sys$library:dcltables_new.exe 'curr_location'dcltables.exe8$ set protection=(world:re) 'curr_location'dcltables.exe $ installreplace sys$library:dcltablesexit$!)$! Add new command to system help library$!I$ write sys$output "Installing SEND and RJECOPY modules into system HELP",$ library/help/replace sys$help:helplib send$ if $status then goto help_ok$ write sys$output ""I$ write sys$output "The system help library is currently being accessed."H$ write sys$output "You will have to insert the SEND help text manually"B$ write sys$output "at a later time. Use the following commands:"$ write sys$output ""I$ write sys$output " $ SET DEFAULT SYS$SYSROOT:[SYSMGR.CORNING_SEND_KIT]"B$ write sys$output " $ LIBRARY/HELP/REPLACE SYS$HELP:HELPLIB SEND"$ write sys$output "" $help_ok:$ @sys$manager:startup$send.com$!8$ write sys$output "Moving release notes to SYS$HELP...".$ copy send*.release_notes sys$common:[syshlp]*$ purge/nolog sys$help:send*.release_notes$!#$ write sys$output "Running IVP..."$ @send_ivp 'acct' 'uic'+$ if .not. send_ivp_ok then goto ivp_failed$!$ type sys$inputJIf this is a cluster installation, make sure to reinstall DCLTABLES on allother members of the cluster. 2Add following to your system startup command file: $ @SYS$MANAGER:STARTUP$SEND.COMFYou may now create additional route-back account(s) as detailed in theinstallation guide. JIf this is an upgrade, you must also re-apply any site-specific changes toESYS$MANAGER:ROUTE_PRINT.COM and SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COMEthat you may have previously made. The old copies of these files are(contained in the previous file versions.K$ write sys$output "''f$time()' - Installation of RJE Routeback completed."$ write sys$output ""$ set def sys$manager$ exit $ivp_failed:$ write sys$output ""H$ write sys$output "''f$time()' - Installation of RJE Routeback failed."$ set def sys$manager$ exit$! B$! Display problems w/ insufficient free global sections or pages.$need_sections:$ type sys$inputGThis installation installs two new DCL commands ( SEND and RJECOPY ) byNrebuilding and reINSTALLing DCLTABLES. This will require at least 1 additionalKglobal section. You have less than 5 free global sections. To be safe, youKwill have to increase the number of global sections (parameter GBLSECTIONS)*before the installation can be performed. /$ if gblpages_free .ge. 400 then goto we_failed $need_pages:$ type sys$inputGThis installation installs two new DCL commands ( SEND and RJECOPY ) byJrebuilding and reINSTALLing DCLTABLES. This will require approximately 350Nadditional global pages. You have less than 400 free global pages. To be safe,Iyou will have to increase the number of global pages (parameter GBLPAGES)*before the installation can be performed. $we_failed:2$ write sys$output "SEND installation has failed."$ exit$! $! GBLSUMMARY.COM$!6$! Displays current status of GBLSECTIONS and GBLPAGES$! $check_gbl:$ say := write sys$output$ install := $install/command$ pid = f$getjpi("","PID")$$ temp_file = "sys$login:''pid'.tmp";$ if f$search(temp_file) .nes. "" then delete 'temp_file';*'$ gblsections = f$getsyi("gblsections")!$ gblpages = f$getsyi("gblpages")$ gosub gbl_summary$ gosub gbl_display$ return$! $! Subroutine GBL_SUMMARY$!$! Global Structure Summary$!2$! Following variables are defined when this ends:3$! gblsections, gblsections_used, gblsections_free*$! gblpages, gblpages_used, gblpages_free$! $gbl_summary:$$ define/user sys$output 'temp_file'$ install list /glo/summ$ open/read f1 'temp_file'#$ read f1 record ! skip header line$ read f1 recordI$ record = f$edit(f$extract(2,255,record),"trim") ! trim leading $ t1 = f$locate(" ",record);$ gblsections_used = f$integer(f$extract(0,t1,record)) !***7$ record = f$extract(f$locate(",",record)+1,255,record)$ t1 = f$locate("/",record)8$ gblpages_used = f$integer(f$extract(0,t1,record)) !***%$ record = f$extract(t1+1,255,record)J$ gblpages_free = f$integer(f$extract(0,f$locate(" ",record),record)) !***8$ gblsections_free = gblsections - gblsections_used !*** $ close f1$ delete 'temp_file';*$ return$! $!$! Subroutine GBL_DISPLAY$!$! Global Structure Display$!$! $gbl_display:$ type sys$input' Global Sections Global Pages* Total Used Free Total Used Free* ----- ----- ----- ----- ----- -----.$ say f$fao("!6UL!6UL!6UL !6UL!6UL!6UL",-1 gblsections,gblsections_used,gblsections_free,-' gblpages,gblpages_used,gblpages_free)$ return.*[DECUS_KITS.SEND.KIT]PRINT_RELEASE_NOTES.COM;1+,B./ 46-# 0123KPWO56c׆7?^89`"nP GHJ$ set symbol/scope=noglobal$loop:$ type sys$input0Please read the release notes before proceeding.Options for release notes: 1. Print to a queue 2. Print to terminal 3. Print to port printer# 4. Copy to SYS$HELP (always done)$ inquire dest " Destination",$ if dest .eqs. "1" then goto print_to_queue/$ if dest .eqs. "2" then goto print_to_terminal+$ if dest .eqs. "3" then goto print_to_port)$ if dest .eqs. "4" then goto wait_for_go $ goto loop$!$print_to_queue:6$ inquire q "Queue to print release notes [SYS$PRINT]"$$ if q .eqs. "" then q = "SYS$PRINT"$ print/queue='q' 'p1'$ goto wait_for_go$!$print_to_terminal:$ type/page 'p1'$ goto wait_for_go$!$print_to_port:$ esc[0,7] = 27$ ff[0,7] = 12$ set term/form$ write sys$output "''esc'[5i"$ copy 'p1' sys$output#$ write sys$output "''ff'''esc'[4i"$ set term/noform$ goto wait_for_go$! $wait_for_go:$ write sys$output "")$ inquire junk "Press RETURN to continue"$ exit"*[DECUS_KITS.SEND.KIT]RJECOPY.CLD;1+,a./ 4/-# 0123KPWO56g37^89`"nP GHJdefine verb rjeconvert/! image sys$sysroot:[sysmgr.rje.rjecopy]rjecopy image rjecopy parameter p1, label=input, prompt="Input file", value(required,type=$file) parameter p2, label=output, prompt="Output file", value(required,type=$file) qualifier strip, nonnegatable qualifier trim, value(required,type=$number) qualifier nonulls, nonnegatable qualifier noformfeed, nonnegatable disallow (trim and not strip)"*[DECUS_KITS.SEND.KIT]RJECOPY.HLP;1+, ../ 4I-# 0123KPWO56 z.;7@^89`"nP GHJ 1 RJECOPYERJECOPY is used to convert the format of RJE files to plain text. RJEErecords contain explicit carriage control characters. Typically eachCrecord of RJE output contains a trailing . RJECOPY removesHthese trailing control characters. Overstrike lines which appear in RJEoutput as three records: BOLD BOLD BOLD>are converted to a single record with embedded carriage return characters: BOLDBOLDBOLD3RJECOPY can optionally perform the following tasks:D- eliminate all, or most, of the RJE banners at the start and end of RJE output. $- eliminate all formfeed characters.- convert all nulls to blanks.,- supress a given number of leading records.Format: RJECOPY input-file output-file 2 Parametersinput-file-spec[,...]ISpecifies the name of an RJE output file to be converted into plain text.output-file-spec?Specifies the name of the output file into which the input file will be copied after processing. 2 Examples$ RJECOPY ABCD.STD ABCD.TXT@Converts RJE output file ABCD.STD into plain text file ABCD.TXT.-$ RJECOPY/STRIP/NONULLS DAILY.9111 TODAYS.RPTDConverts RJE output file DAILY.9111 inot plain text file TODAYS.RPT.DThe first banner page and all trailing banner pages will be removed.2In addition all nulls will be converted to blanks.2 Command_qualifiers /NOFORMFEED9 Causes all formfeeds to be removed from the output file./NONULLS? Causes all nulls in the input file to be replaced with blanks./STRIPF Causes banner text up to the first formfeed, and trailing banner pageG to be removed from the output file. Since the banner has no explicit F marker at its end, only the first page can be safely eliminated. In / some cases the /TRIM qualifier may be helpful./TRIM /TRIM=nC Specifies the number of lines to trim from the start of the output? file. This triming is done after processing caused by /STRIP. "*[DECUS_KITS.SEND.KIT]RJECOPY.OBJ;1+,. / 4 -# 0123KPWO 56O ;7&^89`"nP GHJ 9 RJECOPY$MAINV2.019-JAN-1990 11:52 VAX BASIC V3.3+ RJECOPY$MAIN RJECOPY$MAINQ$PDATAi $CODE$ARRAYp$DESCYYXX  RJECOPY$MAIN OTS$LINKAGE BAS$LINKAGEBAS$POS BAS$INIT_R8 BAS$END_R8 STR$CONCATBAS$LEFTBAS$SEG BAS$VAL_LBAS$ERRBAS$ERLBAS$ERT BAS$RESUME BAS$PRINT BAS$IO_END BAS$OUT_L_V_S BAS$OUT_L_V_BBAS$OUT_T_DX_SBAS$OUT_T_DX_BBAS$OPEN BAS$CLOSEBAS$GET BAS$PUT_COUNT BAS$RECOUNT STR$COPY_R_R8 CLI$GET_VALUE CLI$PRESENTP`\X```RJECOPY Please report this information to the system manager.Output file was Input file was Error was: Unknown error detected at lineCan't open output file 'Reason: 'Can't open input file 'Length =Unknown terminator - Please report following to system support. END JOB* NOFORMFEEDNONULLSSTRIPTRIMOUTPUTINPUT R %*BLQV[~ @8J:S Pk?" 5ePϞRPPQ BAS$INIT_R8˞Џ;ҫ;?2QR~P STR$COPY_R_R8 CLI$PRESENTP\ʏ\\!2QR~P STR$COPY_R_R8 CLI$GET_VALUE2QR~P STR$COPY_R_R8 CLI$PRESENTP\ʯ\\!2QR~P STR$COPY_R_R8 CLI$GET_VALUE2QR~P STR$COPY_R_R8 CLI$PRESENTP\ʏ\\/#2QR~P STR$COPY_R_R8 CLI$GET_VALUE# BAS$VAL_LPC2Q}R~P STR$COPY_R_R8 CLI$PRESENTP\ʯ\\Ы;GЫ?G2QvR~P STR$COPY_R_R8 CLI$PRESENTP\ʏ\\Ы;KЫ?K2 QlR~P STR$COPY_R_R8 CLI$PRESENTP\ʯ\\Ы;OЫ?Oݏ+^,n+nݏ ݏ7~,^BAS$OPEN7^Ы?S<ݯ+^,n+nݏ ݯ~,^BAS$OPEN7^Ы;Sݏ+^,n+nݏݏ7~,^BAS$OPEN7^2QlR~+P STR$COPY_R_R8իGSBAS$GET BAS$RECOUNTP\\BAS$LEFTBAS$POSP\\ BAS$GETBAS$GET BAS$RECOUNTPWBAS$SEG- j\\ҫGPP\ BAS$SEG- aXXXXX\\2QlR~+P STR$COPY_R_R81YիK\W\\x~ SEND_PKG.BCK# "[DECUS_KITS.SEND.KIT]RJECOPY.OBJ;1 _Џ[_[< [\LXX [\H0L䞯_[׫[իS%ݫWBAS$LEFTݫW BAS$PUT_COUNT1W\ \\LLXQX%1W\\cЏ[c[= [\LLXQX0 [\H0L鞯c[׫[ݫWBAS$LEFT++ STR$CONCAT1BW\ \\LLWQW%XXW\ \\LLVQV"WWWWWXX1W\\gЏ[g[: [\LLXQX0 [\H0Lg[׫[իCEW\\BAS$LEFT+ STR$CONCAT<+XX\W\\\ BAS$PUT_COUNT׫C2QlR~+P STR$COPY_R_R812W\ \\LLWQW%XXW\ \\LLVQV$WWWWWXX1W\\kЏ[k[= [\LLXQX0 [\H0Lk[׫[իC\\<+WWXXXXѫWWWWXXXX\\EW\\BAS$LEFT+ STR$CONCAT<+XX\W\\\ BAS$PUT_COUNT׫CҫO\\,k  BAS$PUT_COUNT2QlR~+P STR$COPY_R_R81 BAS$PRINTBAS$OUT_T_DX_B BAS$IO_END BAS$PRINT BAS$OUT_T_DX_SݫW BAS$OUT_L_V_B BAS$IO_ENDW\\oЏ[o[> BAS$PRINT [\L~ BAS$OUT_L_V_S BAS$IO_END鞯o[׫[ BAS$PRINT BAS$IO_END1<+XX\\ ,+/ <+XX\\ BAS$PUT_COUNT BAS$CLOSE BAS$CLOSE1BAS$ERRP\\   BAS$RESUMEBAS$ERRP\\3BAS$ERTBAS$ERLP\\L Ϛ BAS$RESUMEBAS$ERLP\\Qf BAS$PRINT(BAS$OUT_T_DX_SBAS$OUT_T_DX_S0BAS$OUT_T_DX_B BAS$IO_END BAS$PRINT8BAS$OUT_T_DX_S3BAS$OUT_T_DX_B BAS$IO_ENDU BAS$RESUMEBAS$ERLP\\Vo BAS$PRINT@BAS$OUT_T_DX_SBAS$OUT_T_DX_S0BAS$OUT_T_DX_B BAS$IO_END BAS$PRINT8BAS$OUT_T_DX_S3BAS$OUT_T_DX_B BAS$IO_END BAS$CLOSE BAS$RESUME BAS$PRINTHBAS$OUT_T_DX_SBAS$ERLP\\ BAS$OUT_L_V_B BAS$IO_END BAS$PRINTPBAS$OUT_T_DX_S3BAS$OUT_T_DX_B BAS$IO_END BAS$PRINTXBAS$OUT_T_DX_SBAS$OUT_T_DX_B BAS$IO_END BAS$PRINT`BAS$OUT_T_DX_SBAS$OUT_T_DX_B BAS$IO_END BAS$PRINThBAS$OUT_T_DX_B BAS$IO_END BAS$RESUMEP BAS$END_R8P٢ i '*[DECUS_KITS.SEND.KIT]RJE_LOG_FILE.FDL;1+,W f./ 4B-# 0123KPWO56DžBo7=/^89`"nP GHJ=IDENT "14-OCT-1988 00:31:51 VAX/VMS ANALYZE/RMS_FILE Utility"SYSTEM SOURCE VAX/VMSFILE ALLOCATION 1000 BEST_TRY_CONTIGUOUS yes CLUSTER_SIZE 3 CONTIGUOUS no EXTENSION 100 GLOBAL_BUFFER_COUNT 0; NAME "SYS$SYSROOT:[SYSMGR]RJE.RJELOG;1"# ORGANIZATION sequential OWNER [1,4]B PROTECTION (system:RWED, owner:RWED, group:, world:)RECORD BLOCK_SPAN yes( CARRIAGE_CONTROL carriage_return! FORMAT variable SIZE 255&*[DECUS_KITS.SEND.KIT]ROUTE_PRINT.COM;1+, S./ 4P2-# 0123KPWO56`27@e8^89`"nP GHJ.?$! ROUTE_PRINT.COM - V2.2 - Added multiple file processing loop$!+$! RJE PRINT output routeback control file.$! $route_print:D$ if "''f$mode()'" .nes. "NETWORK" then logout ! must be NETWORK job $ set noon7$ set verify ! Needed for debugging routeback failures$$ savedir = f$environment("default")$ saveuic = f$getjpi("","UIC")$!"$! Go get site-specific parameters$!5$ site_parameters = f$trnlnm("SNARJE$ROUTEBACK_SITE")$$ if site_parameters .eqs. "" then -; site_parameters = "sys$manager:snarje$routeback_site.com"D$ if f$search(site_parameters) .nes. "" then goto process_site_param$!F$! Following are default parameters - only used if no site file exists$!$$ default_print_queue == "SYS$PRINT"$$ default_batch_queue == "SYS$BATCH"!$ default_print_form == "DEFAULT"$ site_print_qualifiers == ""$ site_batch_qualifiers == ""$ goto start_process$!$process_site_param:$ @'site_parameters'$!$start_process:$ purge netserver.log/keep=10$ uic := $getuic/$ workfile = "snarje_''f$getjpi("","PID")'.tmp"*$ define fal$log 1 ! display filename$ define fal$output 'workfile'1$ run sys$system:fal.exe ! run FAL to get file$ open fal1 'workfile'$!F$! Begin scanning FAL output log. Note that log can contain more than<$! one event, so we return here after processing each event.$!$scan_fal_log:$!$! Always set initial state$!$ set uic 'saveuic'$ set default 'savedir'D$ set process/privilege=(nocmkrnl,nosysprv,nooper) ! turn off privs.$ close/nolog f1$ close/nolog f2$! $file_loop1: $ read/error=no_more fal1 record@$ if f$locate("Create file",record) .eq. f$length(record) then - goto file_loop1 $file_loop2: $ read/error=no_more fal1 recordE$ if f$locate("Resultant file: ",record) .eq. f$length(record) then - goto file_loop2&$ rcvd_file = f$extract(16,255,record)$! G$! Now we've got the file ( rcvd_file ), look for routeback information$!)$! First, find the username in the banner$!$ open/read f2 'rcvd_file'$!$! Get the banner line$!$ read f2 banner$!E$! If we don't have JOB in columns 10-->12, then get the next record.D$! This takes care of problems caused by blank first lines and other$! first line mess-ups.$!:$ if f$extract(9,3,banner) .nes. "JOB" then read f2 banner$!;$! Now get the information.... (unless corporate moved it.)$!#$! jobname = f$extract(18,8,banner)'$ jobname = f$parse(rcvd_file,,,"name")($ formname = f$parse(rcvd_file,,,"type")7$ room = f$extract( f$locate("ROOM",banner)+5,4,banner)$!$! Convert any nulls to spaces$!0$ if f$cvui(0,8,room) .eq. 0 then room[0,8] = 320$ if f$cvui(8,8,room) .eq. 0 then room[8,8] = 322$ if f$cvui(16,8,room) .eq. 0 then room[16,8] = 322$ if f$cvui(24,8,room) .eq. 0 then room[24,8] = 32$!&$ hrm_jobname = f$extract(18,6,banner)%$ hrm_title1 = f$extract(53,3,banner)%$ hrm_title2 = f$extract(66,3,banner)A$ hrm_location = f$edit(f$extract(57,8,banner),"upcase,collapse")$! $ close f2$!D$! Check to see if this is a special HRM job. First 6 characters ofD$! jobname are HPADSC and job title is delimited by three asterisks.D$! If so, we take the routing info from HRM_ROUTING:HRM_PRINTERS.DATH$! (info is in following form: 8 character location code, rest of line$$! is qualifiers for PRINT command).$!=$ set process/privilege=(cmkrnl,sysprv,oper) ! turn on privs.!$ if hrm_jobname .eqs. "HPADSC" - .and. hrm_title1 .eqs. "***" -$ .and. hrm_title2 .eqs. "***" then - goto hrm_processing$!"$! Now look for a routeback record$!A$ open/read/write/share=write f1 sys$manager:snarje_routeback.dat$!9$! First try to route using exact match on room & jobname$! $routine_job:&$ k = f$fao("!4AS!8AS", room, jobname)$ write sys$output "Key=}''k'{"$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=attempt2$ goto routeback_file$!$$! Next (if jobname is 8 characters)?$! try routeback based on room & first 7 characters of jobname$! $attempt2:C$ if f$length(f$edit(jobname,"collapse")) .lt. 8 then goto attempt36$ k = f$fao("!4AS!7AS%", room, f$extract(0,7,jobname))$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=attempt3$ goto routeback_file$!9$! Next attempt routeback based on exact match on jobname$! $attempt3:%$ k = f$fao("!4AS!8AS", "*", jobname)$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=last_resort$ goto routeback_file$!$$! Next (if jobname is 8 characters)8$! try routeback based on first 7 characters of jobname $last_resort:C$ if f$length(f$edit(jobname,"collapse")) .lt. 8 then goto no_entry5$ k = f$fao("!4AS!7AS%", "*", f$extract(0,7,jobname))$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=no_entry$routeback_file:$!0$! We now have a routeback record - decompose it$!7$ username = f$edit(f$extract(12,12,record),"collapse")5$ defdir = f$edit(f$extract(24,79,record),"collapse")9$ userfile = f$edit(f$extract(103,128,record),"collapse")"$ notify = f$extract(239,1,record):$ if f$extract(0,1,userfile) .eqs. "/" then goto spool_job9$ if f$extract(0,1,userfile) .eqs. "#" then goto mail_job:$ if f$extract(0,1,userfile) .eqs. "@" then goto batch_job$!!$! Now do the routeback to a file$!3$ if username .eqs. "*" then goto wildcard_username$ users_uic = ""$ uic 'username'*$ if users_uic .eqs. "" then goto no_entry%$ defdir = "''users_dev'''users_dir'"C$ set protection=w:re 'rcvd_file' ! Make sure we can read the file$ set uic 'users_uic'$wildcard_username:$ call log_event "''jobname'" - "''room'" - "''form'" - "FILE" -K "''username'|''f$parse(userfile,,,"name")'''f$parse(userfile,,,"type")'"8$ set process/privilege=(nosysprv) ! Now drop privileges$ set default 'defdir'C$ copy 'rcvd_file' 'userfile'; ! Note: semicolon causes new version$ copy_status = $status$ set uic 'saveuic'-$ if .not. copy_status then goto fail_to_copy$ set process/privilege=sysprv$ set default 'savedir'$ delete 'rcvd_file'-$ if notify .and. (username .nes. "*") then -@ reply/user='username'/bell "RJE output arrived in ''userfile'"$!C$! Remove comment from next line to cause all entries to be deleted$! after being used once.$!:$! read/index=1/key="''jobname'"/match=eq/delete f1 record$! $ close f1$ goto scan_fal_log$!;$! Come here if no entry in routeback queue.. just print it$! $no_entry: $ close f1$ call log_event "''jobname'" - "''room'" - "''form'" - "PRINT" - "''default_queue'"$ print 'rcvd_file' - /noflag - /queue='default_print_queue' - /form='default_print_form' - 'site_print_qualifiers'$ goto scan_fal_log$!4$! Special hard-coded processing for the HRM system.$!$hrm_processing:=$ open/read/error=no_hrm_file f1 hrm_routing:hrm_printers.dat $hrm_loop:#$ read/error=no_hrm_entry f1 record:$ record = f$edit(record,"upcase,trim,compress,uncomment")'$ if record .eqs. "" then goto hrm_loopB$ if f$element(0," ",record) .nes. hrm_location then goto hrm_loop=$ print_qualifiers = f$element(1," ",record) ! get qualifiers $ close f1$ call log_event "''jobname'" - "HRM" - "" - "" -( "''hrm_location'|''print_qualifiers'"-$ print/delete 'print_qualifiers' 'rcvd_file'$ goto hrm_done$!.$! No hrm file - warn them and delete the file$! $no_hrm_file:$ call log_event "''jobname'" - "HRM" - "" - "ERROR" - "HRM printer file not found"$ reply/term=opa0:/bell -> "Could not find HRM printer file. HRM file will be deleted"$ delete 'rcvd_file'$ goto hrm_done$!=$! No HRM entry for this user - warn them and delete the file$!$no_hrm_entry: $ close f1$ call log_event "''jobname'" - "HRM" - "" - "ERROR" -" "No record for ''hrm_location'"$ reply/term=opa0:/bell -P"Could not find HRM printer entry for ''hrm_location'. HRM file will be deleted"$ delete 'rcvd_file'$ goto hrm_done$! $hrm_done:$ goto scan_fal_log$!$fail_to_copy:$ if username .nes. "*" then - reply/user='username'/bell -1 "Route back failure - look for output in OPER"$ goto scan_fal_log$!H$! Route output to a printer. Rest of defdir contains /que=.../form=...$! $spool_job:C$ set protection=w:re 'rcvd_file' ! Make sure we can read the file$ call log_event "''jobname'" - "''room'" - "''form'" - "SPOOL" - "''username'|''userfile'"$ print_qualifiers = userfile$ if username .eqs. "*" then -& print /queue='default_print_queue' - /noflag - /form='default_print_form' - 'site_print_qualifiers' - 'print_qualifiers' - 'rcvd_file'$ if username .nes. "*" then - print /user='username' - /noflag -! /queue='default_print_queue' - /form='default_print_form' - 'site_print_qualifiers' - 'print_qualifiers' - 'rcvd_file'+$ if notify .and. username .nes. "*" then - reply/user='username'/bell -2 "RJE output printed using ''print_qualifiers'"$ goto scan_fal_log$!$! Start a batch job$! $batch_job:&$ userfile = f$extract(1,255,userfile)$ call log_event "''jobname'" - "''room'" - "''form'" - "BATCH" - "''username'|''userfile'"C$ if username .eqs. "*" then goto scan_fal_log ! Can't do much else$ users_uic = ""$ uic 'username'.$ if users_uic .eqs. "" then goto scan_fal_log%$ defdir = "''users_dev'''users_dir'"C$ set protection=w:re 'rcvd_file' ! Make sure we can read the file$ set uic 'users_uic'"$ set process/privilege=(nosysprv)$ set default 'defdir'$ notify_qual = ""($ if notify then notify_qual = "/NOTIFY"'$ submit /queue='default_batch_queue' - 'site_batch_qualifiers' - /user='username' - 'userfile' - /param=("''rcvd_file'") - 'notify_qual'$ if notify then - reply/user='username'/bell -@ "RJE output from JOB ''jobname' has submitted a batch job"$ goto scan_fal_log$!$$! Mail output to one or more users.$! $mail_job:9$ userfile = f$extract(1,255,userfile) ! remove leading #$!6$! Mail MUST be spawned to work from a network process$!$ call log_event "''jobname'" - "''room'" - "''form'" - "MAIL" - "''username'|''userfile'"&$ rjecopy/strip 'rcvd_file' 'workfile'H$ if f$extract(0,1,userfile) .eqs. "@" then userfile = """''userfile'"""L$ spawn mail 'workfile' 'userfile'/subj="RJE output of job named ''jobname'"$ delete 'rcvd_file'$ delete 'workfile';0$ if notify then - reply/user='username'/bell -< "RJE output of job named ''jobname' mailed to ''userfile'"$ goto scan_fal_log $no_more:$ close/nolog fal1:$! if f$search(workfile) .nes. "" then delete 'workfile';0 $ logout/full$!$! Log result of RJE output$!$! Parameters:$! P1 Job-name$! P2 Form-name $! P3 Room6$! P4 Type of routeback (SPOOL,FILE,MAIL,BATCH,PRINT)<$! P5 Output spec (queue-name if default printing happened)$!$log_event: subroutine$!-$! Define log file name based on account name$!C$ log_file = "''f$edit(f$getjpi("","username"),"collapse")'.RJELOG"'$ if f$search(log_file) .eqs. "" then -4 create/fdl=sys$manager:rje_log_file.fdl 'log_file'$!3$ open/append/share=write/error=done lf1 'log_file'@$ write/error=done lf1 f$fao("!16AS !8AS !4AS !4AS !5AS !38AS",- f$cvtime(),p1,p2,p3,p4,p5) $ close lf1$done:$ exit$ endsubroutine*[DECUS_KITS.SEND.KIT]SEND.CLD;1+, z./ 42N-# 0123KPWO56ᵥ7>^89`"nP GHJ define type out_type( keyword FILE,value(required,type=$file)2 keyword SPOOL,value(required,type=$quoted_string)2 keyword BATCH,value(required,type=$quoted_string)( keyword MAIL,value(type=$quoted_string)define syntax send_initials image send_initials noparameters qualifier username, nonnegatable, value(required)define syntax send_rt image send_rt parameter p1, label=jobname qualifier list, nonnegatable, value(required,type=$file) qualifier username, nonnegatable, value(required) qualifier full, nonnegatable qualifier all, nonnegatabledefine syntax send_remove image send_remove parameter p1, label=jobname, prompt="Job name", value(required) qualifier username, nonnegatable, value(required) qualifier room, nonnegatable, value(required) qualifier log, nonnegatable qualifier confirm, nonnegatable define syntax send_enter image send_enter parameter p1, label=jobname, prompt="Job name", value(required) qualifier username, nonnegatable, value(required) qualifier room, nonnegatable, value(required) qualifier log, nonnegatable qualifier confirm, nonnegatable  qualifier notify, nonnegatable qualifier output, nonnegatable,$ value(required,list,type=out_type)% disallow any2(file,spool,mail,batch) disallow not outputdefine verb send image send qualifier rt, syntax=send_rt qualifier initials, syntax=send_initials qualifier remove, syntax send_remove qualifier enter, syntax send_enter parameter p1, label=jclfile, prompt="JCL file(s)",! value(required,list,type=$file) qualifier output, nonnegatable,$ value(required,list,type=out_type) qualifier log, nonnegatable qualifier notify, nonnegatable qualifier temporary, nonnegatable qualifier delete, nonnegatable qualifier debug, nonnegatable qualifier queue, nonnegatable, value(required) qualifier after, nonnegatable, value(required,type=$datetime)% disallow any2(file,spool,mail,batch)*[DECUS_KITS.SEND.KIT]SEND.HLP;1+, ."/ 4J"!-# 0123KPWO#56 _᎒7 F^89`"nP GHJ01 SENDEThe SEND command is used to submit IBM JCL files to the corporate IBMBsystem. In addition, the SEND command allows the user to specify Frouteback information for printer output received from the IBM system.;Print output may be routed by any of the following methods:1 - output may be directed to a file specification* - output may be directed to a print queue9 - output may be send via the MAIL system to one or more addresses> - output may cause a user specified batch job to be submittedHNote that if routeback is selected (/OUTPUT qualifier is specified) thenIrouteback requires that the room specified in the JCL JOB card match the >user's code. This code is determined by one of the following:GIf the username contains an underscore, (such as lastname_fm), then theGcode is the user's initials. For example, if the username is JONES_AB,5then the JOB card must contain ABJ for the room code:' // jobname JOB (accting,ABJ....# ^^^BIf the username does not have an underscore, then the first three Fcharacters of the username are used. For example, if the username is <JONES, then the JOB card must contain JON for the room code:' // jobname JOB (accting,JON....# ^^^HNote that the routeback information is permanent (unless the /TEMPORARY Fqualifier is specified). Room code checking is ONLY performed if the /OUTPUT qualifier is specified.2 Displaying_room_codeFThe SEND/INITIALS command can be used to quickly display the room-code,that should be used by the current username. For example,? For username SMITH_AB, SEND/INITITALS would display ABS.= For username SMITH_A, SEND/INITITALS would display AS.? For username SMITHSON, SEND/INITITALS would display SMI.3 Command_qualifiers /USERNAME /USERNAME=usernameCSpecifies a username other than the one associated with the currentprocess.2 Submitting_JCl@The SEND command is used to send JCL files to the IBM system for(execution. The format of the command is1 $ SEND JCL-files [output-specifier] [qualifiers]3 Output_specification /OUTPUT) /OUTPUT=output-type=output-specificationHSpecifies that routeback should occur for all RJE print output for this Cjob. The routeback method and destination is required. Note that Hrouteback is based upon a match of the jobname and the room code in the JOB card:* // jobname JOB (accting,room.....% ^^^^^^^ ^^^^HNote that once routeback is specified (by use of the /OUTPUT qualifier),Cthe effect is permanent. Use the SEND/REMOVE command to remove oldFentries. Use the SEND/RT command to view the current routeback queue for your username.4 FILE /OUTPUT=FILE=file-specificationASpecifies that RJE output should be routed to the file specified.4 SPOOL! /OUTPUT=SPOOL="print qualifiers"FSpecifies that RJE output should be printed with the print qualifiers Hgiven. In particular /QUEUE=queue-name can be used to direct output to a user-specified queue.4 BATCH /OUTPUT=BATCH=command-fileCSpecifies that the command file given should be submitted for batchCexecution. Parameter P1 will be defined as the filename of the RJEoutput.FNote that multiple RJE output files will cause multiple submittals to Doccur. Note also that the batch job is submitted under the username$associated with the routeback entry.-Use of the /REMOTE qualifer is not supported.4 MAIL! /OUTPUT=MAIL="address[,address]"HSpecifies that RJE output should be mailed (via VMSmail) to the address or addresses specified. 4 Examples8 /OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2"EThe above causes two copies of the RJE output to be printed at queue MAILROOM using form LANDSCAPE. /OUTPUT=FILE=MY_FILE.TXTGRJE output will be placed in the file MY_FILE.TXT in the users default directory.# /OUTPUT=BATCH=FURTHER-ANALYSIS.COMCWhen RJE output is received, the command file FURTHER-ANALYSIS.COM Fwill be submitted to SYS$BATCH. Parameter P1 will contain the actual Hfilename of the RJE output file. This is equivalent to the DCL command:H$ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename") FURTHER-ANALYSIS.COM /OUTPUT=MAIL=JONES_ABJRJE output will be mailed to user JONES_AB. Note that quotation marks are8not required if only a single mail address is specified.# /OUTPUT=MAIL="JONES_AB,ROBERTS,HA"FRJE output will be mailed to users JONES_AB and ROBERTS_HA. Note that;the two mail addresses must be enclosed in quotation marks. 3 Parameters file-spec[,...]H Specifies one or more files to be submitted for batch job execution.H You must specify a file name; if you do not specify a file type, theH SUBMIT command uses the default file type of COM. If you specify moreH than one file separated by plus signs (+) the files are concatenatedH and processed as a single input stream. If you specify more than oneH file separated by commas (,) the files are processed as a separate input streams.? No wild card characters are allowed in the file specification.3 Command_qualifiers/LOG /LOG@Specifies that the entry of routeback information in the user's *routeback queue be logged to the terminal./NOTIFY /NOTIFYHThis qualifier causes one or more notification message to be send to theuser's terminal: DThe first is sent when the submission of the JCL files has finished.FNotification is sent for each RJE output successfully routed due to anentry in the routeback queue. /TEMPORARY /TEMPORARYESpecifies that the routeback entry should be deleted after the first #successful routeback of RJE output./DELETEBSpecifies that the JCL file(s) should be deleted after successful submission to the IBM system./QUEUE /QUEUE={number}DSpecifies that the JCL file(s) should be submitted via reader queue SNARJE$READER{number}./AFTER /AFTER=timeH Requests that the job be held until after a specific time. If theH specified time has already passed, the job is queued for immediate processing.H You may specify an absolute time, delta time, or a combination of the< two. See HELP SPECIFY DATETIME for rules for time entries.2 List_entriesFThe SEND/RT command is used to list routeback entries in the routebackqueue. The syntax is" $ SEND/RT [jobname] [qualifiers] GThe jobname is optional. If not specified, all jobs will be displayed.3 Command_qualifiers/LIST /LIST=filespecHThe /LIST qualifier specifies an output file that contains the routebackqueue listing. /USERNAME /USERNAME=VAXusernameIThe /USERNAME qualifier is used to select another user's routeback queue for listing./FULL /FULLGCauses the full routeback entry to be displayed. By default, only the 5routeback target and notification flag are displayed./ALL /ALL;Causes all routeback entries to be displayed for all users.2 Create_entriesFThe SEND/ENTER command is used to manually enter routeback entries in +the user's routeback queue. The syntax is:D$ SEND/ENTER jobname /OUTPUT=output-type=output-spec [qualifiers...]"The /OUTPUT qualifier is required. 3 ParametersGThe jobname is the name specified on the JOB card. For example in the JOB card below$ // MYDATA JOB (accting,room....the jobname is MYDATA.3 Output_specification /OUTPUT) /OUTPUT=output-type=output-specificationHSpecifies that routeback should occur for all RJE print output for this Cjob. The routeback method and destination is required. Note that Hrouteback is based upon a match of the jobname and the room code in the JOB card:* // jobname JOB (accting,room.....% ^^^^^^^ ^^^^HNote that once routeback is specified (by use of the /OUTPUT qualifier),Cthe effect is permanent. Use the SEND/REMOVE command to remove oldFentries. Use the SEND/RT command to view the current routeback queue for your username.4 FILE /OUTPUT=FILE=file-specificationASpecifies that RJE output should be routed to the file specified.4 SPOOL! /OUTPUT=SPOOL="print qualifiers"FSpecifies that RJE output should be printed with the print qualifiers Hgiven. In particular /QUEUE=queue-name cna be used to direct output to a user-specified queue.4 BATCH /OUTPUT=BATCH=command-fileHSpecifies that the command file given should be submitted for execution Ito the SYS$BATCH queue. Parameter P1 will be defined as the filename of the RJE output.FNote that multiple RJE output files will cause multiple submittals to occur.4 MAIL /OUTPUT=MAIL="address(s)"HSpecifies that RJE output should be mailed (via VMSmail) to the address or addresses specified. 4 Examples8 /OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2"EThe above causes two copies of the RJE output to be printed at queue MAILROOM using form LANDSCAPE. /OUTPUT=FILE=MY_FILE.TXTGRJE output will be placed in the file MY_FILE.TXT in the users default directory.# /OUTPUT=BATCH=FURTHER-ANALYSIS.COMCWhen RJE output is received, the command file FURTHER-ANALYSIS.COM Fwill be submitted to SYS$BATCH. Parameter P1 will contain the actual Hfilename of the RJE output file. This is equivalent to the DCL command:H$ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename") FURTHER-ANALYSIS.COM /OUTPUT=MAIL=JONES_AB+RJE output will be mailed to user JONES_AB. 3 Examples=Assuming that the username is JONES_AB, the following command2$ SEND/ENTER MYDATA /OUTPUT=FILE=REPORT.TXT/NOTIFYGcauses an entry to be made for jobname MYDATA and room code ABJ in the Juser's routeback queue. RJE output will be routed to the file REPORT.TXT Dand a notification message will be delivered for each file received.3 Command_qualifiers /USERNAME /USERNAME=usernameCSpecifies a username other than the one associated with the currentFprocess. The user must have the OPER privilege to use this qualifier./ROOM /ROOM=room-codeFSpecifies the exact room code to be used and over-rides the calculatedIroom-code (based on the username). The user must have the OPER privilegeto use this qualifier/LOG /LOGBCauses the routeback entry to be displayed at the user's terminal./CONFIRM /CONFIRMIThe system will request a confirmation from the user before entering the Idisplayed information into the user's routeback queue. This will only be9done if a previous entry already exists for this jobname./NOTIFY /NOTIFYHThis qualifier causes one or more notification message to be send to theuser's terminal: DThe first is sent when the submission of the JCL files has finished.FNotification is sent for each RJE output successfully routed due to anentry in the routeback queue.2 Remove_entriesBThe command SEND/REMOVE is used to remove entries from the user's routeback queue. The syntax is:- $ SEND/REMOVE jobname [qualifiers...] 3 ParametersGThe jobname is the name specified on the JOB card. For example in the JOB card below$ // MYDATA JOB (accting,room....the jobname is MYDATA. 3 Examples $ SEND/REMOVE MYDATAERemoves the routeback queue entry matching the jobname MYDATA and the room code.3 Command_qualifiers /USERNAME /USERNAME=usernameCSpecifies a username other than the one associated with the currentFprocess. The user must have the OPER privilege to use this qualifier./ROOM /ROOM=room-codeFSpecifies the exact room code to be used and over-rides the calculatedIroom-code (based on the username). The user must have the OPER privilegeto use this qualifier/LOG /LOGBCauses the routeback entry that was removed to be displayed at theuser's terminal. /CONFIRM /CONFIRMEThe system will display the routeback information to be deleted, thenErequest a confirmation from the user before deleting routeback entry.2 Examples EUser SMITH_AB has a VAX file named JOB1.JCL which is an IBM batch jo G&~ SEND_PKG.BCK # [DECUS_KITS.SEND.KIT]SEND.HLP;1J"~b#whose first line is the following: ; //PREPORT JOB (KDABCD10,ABS,02,30,,,1),'Period Summary',HNote that the jobname is PREPORT (the actual VMS filename is immaterial)Gand the room code is ABS. To route RJE output from this job to a printEqueue named MYLASER, user SMITH_AB could enter the following command:0$ SEND/OUTPUT=SPOOL="/QUEUE=MYLASER"/NOTIFY JOB1EThis command submits the JCL to the IBM system and will also make theDappropriate entry in the RJE Routeback Queue indicating that any RJEGoutput with jobname="PREPORT" and room="ABS" should be printed at queueEMYLASER. User SMITH_AB will also receive a notification message whenthe RJE output prints. HAlternatively, user SMITH_AB could use the following to simply make the +entry in the routeback queue for later use:9$ SEND/ENTER/OUTPUT=SPOOL="/QUEUE=MYLASER"/NOTIFY PREPORTHNote that the actual JOBNAME is used in the command rather than the JCL filename. Some other possible entries are:=$ SEND /ENTER /OUTPUT=FILE=PERIOD_SUMMARY.RPT /NOTIFY PREPORT:RJE output will be put in a file named PERIOD_SUMMARY.RPT.5$ SEND /ENTER /OUTPUT=MAIL="SMITH_AB,BOSS_JR" PREPORT1RJE output will be mailed to SMITH_AB and BOSS_JR0$ SEND /ENTER /OUTPUT=BATCH=GRAND_TOTALS PREPORTGRJE output will cause the file GRAND_TOTALS.COM to be submitted to the Fsystem batch queue. Paramter P1 will contain the filename of the RJE output file.2 Command_qualifiers/ENTER /ENTERA Causes a routeback entry to be entered into the routeback queue. /INITIALS /INITIALSC Causes the initials corresponding to the username to be displayed./REMOVE /REMOVEA Causes a routeback entry to be removed from the routeback queue.#/RT  /RTC Causes a listing of routeback queue entries to be displayed on the terminal./AFTER /AFTER=timeH Requests that the job be held until after a specific time. If theH specified time has already passed, the job is queued for immediate processing.H You may specify an absolute time, delta time, or a combination of the< two. See HELP SPECIFY DATETIME for rules for time entries./ALL /ALL;Causes all routeback entries to be displayed for all users./CONFIRM /CONFIRMIThe system will request a confirmation from the user before entering the Idisplayed information into the user's routeback queue. This will only be9done if a previous entry already exists for this jobname./DELETEBSpecifies that the JCL file(s) should be deleted after successful submission to the IBM system./FULL /FULLGCauses the full routeback entry to be displayed. By default, only the 5routeback target and notification flag are displayed./LIST /LIST=filespecHThe /LIST qualifier specifies an output file that contains the routebackqueue listing./LOG /LOG@Specifies that the entry of routeback information in the user's *routeback queue be logged to the terminal./NOTIFY /NOTIFYHThis qualifier causes one or more notification message to be send to theuser's terminal: DThe first is sent when the submission of the JCL files has finished.FNotification is sent for each RJE output successfully routed due to anentry in the routeback queue./OUTPUT) /OUTPUT=output-type=output-specificationHSpecifies that routeback should occur for all RJE print output for this Cjob. The routeback method and destination is required. Note that Hrouteback is based upon a match of the jobname and the room code in the JOB card:* // jobname JOB (accting,room.....% ^^^^^^^ ^^^^HNote that once routeback is specified (by use of the /OUTPUT qualifier),Cthe effect is permanent. Use the SEND/REMOVE command to remove oldFentries. Use the SEND/RT command to view the current routeback queue for your username./QUEUE /QUEUE={number}DSpecifies that the JCL file(s) should be submitted via reader queue SNARJE$READER{number}./ROOMm /ROOM=room-codeFSpecifies the exact room code to be used and over-rides the calculatedIroom-code (based on the username). The user must have the OPER privilegetto use this qualifiers /TEMPORARY /TEMPORARYoESpecifies that the routeback entry should be deleted after the first l#successful routeback of RJE output.r /USERNAMEi /USERNAME=usernameaCSpecifies a username other than the one associated with the current process.*[DECUS_KITS.SEND.KIT]SEND.OBJ;1+,./ 4-# 0123KPWO56@$R;7M^89`"nP GHJ$6 SEND$MAINV2.019-JAN-1990 11:52 VAX BASIC V3.3% SEND$MAIN SEND$MAINPq$PDATA$CODE$ARRAY$DESCRBX  SEND$MAIN OTS$LINKAGE BAS$LINKAGEBAS$POS BAS$RIGHT BAS$INIT_R8BAS$INIT_GOSUB BAS$END_R8BAS$END_GSB_R8 STR$CONCATBAS$EDITBAS$LEFT LIB$ICHARBAS$MIDBAS$SEG BAS$STRINGBAS$ERRBAS$ERLBAS$ERT BAS$RESUME BAS$INPUT BAS$LINPUT BAS$PRINT BAS$IO_END BAS$IN_T_DX BAS$OUT_L_V_BBAS$OUT_T_DX_SBAS$OUT_T_DX_BBAS$OPEN BAS$CLOSE BAS$GET_KEYBAS$PUT BAS$DELETE STR$COPY_R_R8STR$COPY_DX_R8 SYS$GETTIMLIB$SYS_TRNLOGLIB$DO_COMMAND GET_INITIALS LIB$GETJPI CLI$_ABSENT CLI$_CONCAT CLI$_COMMA SS$_NORMAL JPI$_USERNAME CLI$GET_VALUE CLI$PRESENTP]\X]]]mm-SEND  at line%SEND-E-UNEXPECTERR, unexpected error -%SEND-E-FNF, can't open JCL file (%SEND-I-ENTRYENTERED, following entry entered%SEND-W-PRVENTOVER, previous entry has been over-riddenNAnswer YES to OVER-RIDE this entry Output = (Notification = Jobname = Initials = Username = SYS$LOGIN%SEND-E-UNKNOWNERR, error #%SEND-E-NOTSAMEINIT, initials on JOB card are wrong%SEND-E-NOINITIALS, missing initials on JOB card%SEND-E-BADJOBNAME, jobname too long or not properly specified)(output//.JCL/delete /notifysubmit/sna/noprint/queue=NOTIFY//QUEUE=SYS$PRINTSPOOL#MAILFILEOUTPUT+,JCLFILEsnarje$reader33snarje$reader221QUEUEsnarje$readerDEBUGDELETE"/after="AFTERLOGtemporarysys$manager:snarje_routeback.datTT:YV1.1-02 R %L ' 'E $' s'8JBJN2w]P)c\[TPGF>03 v   k `O Dg""7- 'tlPϞRPPQ BAS$INIT_R8➯ω2Q*R~CP STR$COPY_R_R8Џҫ LIB$ICHARP 2Q&R~KP STR$COPY_R_R8ЫЫ߫S JPI$_USERNAMEߩ LIB$GETJPI2 QR~[P STR$COPY_R_R82. It checks for an exact match on the room-code and jobname.L3. If the jobname is eight characters long, it looks for an exact match on 8the room code and the first seven characters of jobname.64. It checks for an exact match on the jobname alone.L5. If the jobname is eight characters long, it looks for an exact match on &the first seven characters of jobname.IFailing any of the above, the output is sent to the default print queue. G SEND V2.0 Release Notes Page 3SITE CUSTOMIZATIONS:GThe ROUTE_PRINT.COM command file uses a site-specific file that enablesJthe following site-specific parameters to set. The file is referenced by Ilogical name SNARJE$ROUTEBACK_SITE. If the logical name is not defined, Jthe default filename is SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COM. Note that 7all DCL symbols MUST be global symbols (i.e. use "==").HThe default print queue can be changed by altering the definition of the4DCL symbol DEFAULT_PRINT_QUEUE in the command file. LThe default batch queue can be changed by editting the definition of the DCL?symbol DEFAULT_BATCH-QUEUE in the ROUTE_PRINT.COM command file.KSite-specific qualifers may be specified for PRINT and BATCH submissions byKeditting the ROUTE_PRINT.COM command file and changing the defintion of the:variables SITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS.@The default form used in printing is specified by the DCL symbol=DEFAULT_PRINT_FORM. This can be set any site-specific value.IThe symbols DEFAULT_PRINT_QUEUE, DEFAULT_BATCH_QUEUE, DEFAULT_PRINT_FORM,ISITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS are applied to the SUBMITIor PRINT command prior to the user-specified parameters. This allows the'users to over-ride the default actions.IAs a further enhancement each routeback account can have its own specificKversion of the ROUTE_PRINT.COM command file. This will enable each printerEchannel to have its own, specific, default printer and batch queues. JThe routeback command file determines the formname of the job and inserts Lit into the symbol FORMNAME. It currently does not use this symbol for any Jactions, but it is included so that site-specific code may utilize it. A Jfuture release of the RJE routeback system MAY support routeback based on 9the job's formname, in addition to jobname and room-code.G SEND V2.0 Release Notes Page 4RJE Routeback logfile.KA logfile is maintained for each routeback account. Each routeback attemptKcauses an entry to be placed in this logfile. The logfile file name is theJusername of the routeback account and the file type is RJELOG. IndividualKsites may choose to rename the logfile on a daily or weekly basis. If the Jlogfile does not exist, it is automatically created. Each entry consists of the following:Column Contents..../ 1-16 Date/time stamp in form YYYY-MM-DD HH:MM.(18-25 The JCL jobname of the RJE output.426-29 Contents of the ROOM field in the banner line.330-37 The form-type associated with the RJE output.E38-42 Defines the action performed (PRINT, SPOOL, FILE, MAIL, BATCH).I43-80 The information used for routeback of the output. Contents varies ! based upon the action performed:! Action Contents/meaning of fieldD ------ ------------------------------------------------------------> PRINT Print queue used (no routeback records existed for this" job, so it printed by default).C SPOOL Username, followed by a vertical line, followed by the user- specified print qualifiers.B FILE Username, followed by a vertical line, followed by the user- specified output file.A MAIL Username, followed by a vertical line, followed by the mail! address(es) specified by user.C BATCH Username, followed by a vertical line, followed by the user-1 specified file to be submitted as a batch job.0 Note that only first 38 characters will appear.A sample entry of each type:P1989-06-28 16:35 STDLABEL1234STD PRINTSYS$PRINT N1989-06-28 17:33 KENSRPT REP STD SPOOL REPORTS|/QUEUE=MPRO02_NW/FORM=WIDE3C1989-06-29 13:02 MONTHDATJJD STD FILE DOE_JJ|JOHNS_MONTHLY.RPTC1989-06-29 14:11 LIST PS STD MAIL DOE_JJ|SMITH_AB,JONES_CDE1989-06-30 20:24 HPAB01 1000STD BATCH SMITH_AB|FORMAT_REPORT.COMONote that jobname/room are the fields used to determine the routeback location.LWhen customizing ROUTE_PRINT.COM, you can insert messages into the log file Bby calling the subroutine LOG_EVENT with the following parameters: MaxCParam Length Contents............................................. P1 8 Job-name P2 8 Form-name P3 4 Room? P4 5 Type of routeback (SPOOL,FILE,MAIL,BATCH,PRINT, or any site-specific entry)> P5 38 Output spec (queue-name if default printing happened)G SEND V2.0 Release Notes Page 5UNDOCUMENTED FEATURES.NIf the user identifier field in the banner contains "::", then an attempt willKbe made to mail the RJE output to that address. For example, if the bannerappears like the following:*A START JOB 1234 DEMODEMO 1 001 001 REMOTE12 NODE::USERNAME ROOM ABCD 1.00.00 PM 01 APR 89 R12.PR1 SYSA START A*>The RJE output will be mailed (via VMSmail) to NODE::USERNAME. RESTRICTIONS.EThe use of the /REMOTE qualifier when specifying BATCH as the output >destination is not supported and will cause routeback failure.DChanges made in the banner produced by the IBM RJE system may cause Krouteback failure. The command file looks for the word ROOM to locate the Droom identifier. If the word ROOM is removed from the banner, then routeback failures will occur.FOnly one output specifier may be given. A future release may contain Fsupport for multiple output specifiers. However, when multiple outputFis required, BATCH output can be used to perform multiple actions withthe RJE output file.%*[DECUS_KITS.SEND.KIT]SEND_ENTER.OBJ;1+,[./ 4F-# 0123KPWO56t;7^^89`"nP GHJ>SEND_ENTER$MAINV2.0-219-JAN-1990 11:52 VAX BASIC V3.31SEND_ENTER$MAINSEND_ENTER$MAINP$PDATAj $CODE$ARRAY$DESCRBX SEND_ENTER$MAIN OTS$LINKAGE BAS$LINKAGEBAS$POS BAS$RIGHT BAS$INIT_R8BAS$INIT_GOSUB BAS$END_R8BAS$END_GSB_R8 STR$CONCATBAS$EDITBAS$LEFT LIB$ICHARBAS$MID BAS$STRINGBAS$ERRBAS$ERLBAS$ERT BAS$RESUME BAS$INPUT BAS$PRINT BAS$IO_END BAS$IN_T_DX BAS$OUT_L_V_BBAS$OUT_T_DX_SBAS$OUT_T_DX_BBAS$OPEN BAS$CLOSE BAS$GET_KEYBAS$PUT BAS$DELETE STR$COPY_R_R8STR$COPY_DX_R8 SYS$GETTIMLIB$SYS_TRNLOG GET_INITIALS LIB$GETJPI CLI$_ABSENT CLI$_CONCAT CLI$_COMMA SS$_NORMAL JPI$_CURPRIV JPI$_USERNAME CLI$GET_VALUE CLI$PRESENTPc\Xccc SEND_ENTER  at line%SEND-E-UNEXPECTERR, unexpected error -%SEND-I-NOACTION, no action taken - command aborted (%SEND-I-ENTRYENTERED, following entry entered%SEND-W-PRVENTOVER, previous entry has been over-riddenNAnswer YES to OVER-RIDE this entry Output = ) (Notification = Jobname = Initials = Username = SYS$LOGIN@BATCH//QUEUE=SYS$PRINTSPOOL#"MAILFILEOUTPUT%SEND-W-NONOTIFY, notification ignored when username=**NOTIFYCONFIRMLOG room%SEND-F-NOPRIV, no privilege for attempted operationusername' greater than 8 characters%SEND-F-JOBNAMELONG, jobname 'JOBNAMEsys$manager:snarje_routeback.datSYSPRVTT:Y R %L|@g'o''5$'s' 8J BJ N T PuZ46     zih ]g";7-3'zrPϞRPPQ BAS$INIT_R8؞s Џҫ LIB$ICHARP#'+/2QR~P STR$COPY_R_R8Ы3Ы7߫; JPI$_USERNAMEߩ LIB$GETJPIݏBAS$EDIT߫? JPI$_CURPRIVߩ LIB$GETJPIBAS$POSP\\ԫCC2 QR~P STR$COPY_R_R82QR~P STR$COPY_R_R8 CLI$GET_VALUE !%UUSERS_UICUSERS_DEVUSERS_DIR GETUIC$MAINP4   LIB$GET_FOREIGN@  SYS$FAO@   LIB$SET_SYMBOL@( < LIB$SET_SYMBOL@D #X# LIB$SET_SYMBOL@`PP`\Pk``P `bP `dP`hPޫ`lP@`nP`pP`tPޫ `xP`(LIB$GET_FOREIGNTD4 SYS$GETUAI SS$_NORMALQPQ , , @Pl\SYS$FAOx|ˀLIB$SET_SYMBOL˔˘˜LIB$SET_SYMBOL ˰˴˸LIB$SET_SYMBOLFOR$EXIT o\oXX\gBAS$SEGgBAS$SEG_ STR$CONCATg_BAS$SEGݏ__BAS$EDIT<_XX\\XX BAS$STRING_k STR$CONCATP BAS$END_R8P  7*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]INSTALL_SEND.COM;1+,./ 4O-# 0123KPWO56կ1Β7 ^89GHJ.$! Installation of RJE Routeback System - V2.0$!A$! Default is assumed to be SYS$SYSROOT:[SYSMGR.corning_SEND_KIT]$!>$! First, make sure we have enough free GBLSECTIONS & GBLPAGES4$! before proceeding. (DCLTABLES will be replaced).$! $ set noon$ install := $install/command$ uaf := $authorize'$ if f$trnlnm("sysuaf") .eqs. "" then -% define sysuaf sys$system:sysuaf.dat+$ if f$trnlnm("rightslist") .eqs. "" then -- define rightslist sys$system:rightslist.dat)$ if f$trnlnm("netproxy") .eqs. "" then -) define netproxy sys$system:netproxy.dat'$ if f$trnlnm("netuaf") .eqs. "" then -% define netuaf sys$system:netuaf.datG$ write sys$output "''f$time()' - Starting RJE Routeback installation."$!2$ if f$type(send) .eqs. "" then goto no_prior_send$ write sys$output ""6$ write sys$output " *** WARNING ***"O$ write sys$output "The DCL symbol ""SEND"" is already defined as ""''send'""."M$ write sys$output "This procedure installs a command called SEND which will"M$ write sys$output "conflict with the previous definition. The installation"N$ write sys$output "will proceed, but the DCL symbol ""SEND"" will have to be"M$ write sys$output "removed before the RJE routeback system will be useable."$ write sys$output "")$ inquire junk "Press RETURN to continue"$ delete/symbol/global send$!$no_prior_send:$ gosub check_gbl4$ if gblsections_free .lt. 5 then goto need_sections0$ if gblpages_free .lt. 400 then goto need_pages$!,$ @print_release_notes send020.release_notes$!$ write sys$output ""J$ write sys$output "You will now be asked to specify a routeback account."I$ write sys$output "If the account does not exist, you will be asked for"K$ write sys$output "additional information in order to create the account."$! $bad_acct:$ write sys$output ""8$ inquire acct "Routeback account name (e.g. RMT12_PR1)"%$ if acct .eqs. "" then goto bad_acct2$ set message/nofacility/noident/noseverity/notext$ delete sysuaf.lis;*$ uaf list 'acct'/brief%$ search/output=nl: sysuaf.lis 'acct'$ acct_exists = $status*$ set message/facility/ident/severity/text*$ if acct_exists then goto use_old_account $bad_uic:$ write sys$output ""$ inquire uic "UIC"#$ if uic .eqs. "" then goto bad_uic%$ uic = "[" + (uic - "[" - "]") + "]" $bad_device:$ write sys$output ""!$ inquire device "Default device")$ if device .eqs. "" then goto bad_device$ device = device - ":" + ":"$bad_directory:$ write sys$output ""'$ inquire directory "Default directory"/$ if directory .eqs. "" then goto bad_directory1$ directory = "[" + (directory - "[" - "]") + "]" $verify_acct:$ write sys$output ""7$ write sys$output "Verifying account to be created..."$ write sys$output ""5$ write sys$output " Account ''acct' with UIC ''uic'"<$ write sys$output " Device/directory ''device'''directory'"$ write sys$output ""%$ inquire gocode "Verify (Yes or No)"*$ if gocode .eqs. "" then goto verify_acct$$ if .not. gocode then goto bad_acct$ uaf add 'acct' - /uic='uic' - /bytlm=20000$ uaf modify 'acct' - /device='device' - /directory='directory'$ uaf modify 'acct' -' /lgicmd=sys$manager:route_print.com -. /nolocal/noremote/nobatch/nodialup/network - /prclm=26$ create/directory/log/owner='uic' 'device''directory'$ goto setup_any_acct$!$use_old_account:$ open/read f1 sysuaf.lis'$get_old_uic_loop:!$ read/error=no_old_uic f1 record=$ if f$locate("''acct'",record) .eqs. f$length(record) then - goto get_old_uic_loop<$ uic = "[" + f$element(1,"[",f$element(0,"]",record)) + "]" $ close f1$ goto setup_any_acct $no_old_uic:K$ write sys$output "FATAL INSTALLATION ERROR - Cannot locate account's UIC"$ exit$!$setup_any_acct:$ uaf modify 'acct' -1 /privilege=(netmbx,tmpmbx,cmkrnl,oper,sysprv) -4 /defprivilege=(netmbx,tmpmbx,cmkrnl,oper,sysprv) - /nopassword($ write sys$output "Linking SEND.EXE..."%$ link/notrace_back send,get_initials+$ write sys$output "Linking SEND_RT.EXE..."OC$ SEND020.A# 7[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]INSTALL_SEND.COM;1O  ($ link/notrace_back send_rt,get_initials.$ write sys$output "Linking SEND_ENTER.EXE..."+$ link/notrace_back send_enter,get_initials/$ write sys$output "Linking SEND_REMOVE.EXE...",$ link/notrace_back send_remove,get_initials1$ write sys$output "Linking SEND_INITIALS.EXE...".$ link/notrace_back send_initials,get_initials+$ write sys$output "Linking RJECOPY.EXE..."$ link/notrace_back rjecopy*$ write sys$output "Linking GETUIC.EXE..."$ link/notrace_back getuic $ purge/nolog8$ write sys$output "Copying images to final location..."9$ copy/protection=(world:re) send.exe sys$common:[sysexe]<$ copy/protection=(world:re) send_rt.exe sys$common:[sysexe]?$ copy/protection=(world:re) send_enter.exe sys$common:[sysexe]@$ copy/protection=(world:re) send_remove.exe sys$common:[sysexe]B$ copy/protection=(world:re) send_initials.exe sys$common:[sysexe]<$ copy/protection=(world:re) rjecopy.exe sys$common:[sysexe]8$ copy/protection=(world) getuic.exe sys$common:[sysexe]>$ copy/protection=(world) startup$send.com sys$common:[sysmgr]=$ copy/protection=(world) route_print.com sys$common:[sysmgr]G$ copy/protection=(world) snarje$routeback_site.com sys$common:[sysmgr]A$ copy/protection=(world:re) rje_log_file.fdl sys$common:[sysmgr]$!D$! De-install old versions before purge. Otherwise, INSTALL REPLACE5$! fails due to original file no longer being around.$!<$ if f$file_attributes("sys$system:send.exe","known") then -$ install remove sys$system:send.exeB$ if f$file_attributes("sys$system:send_enter.exe","known") then -* install remove sys$system:send_enter.exeC$ if f$file_attributes("sys$system:send_remove.exe","known") then -+ install remove sys$system:send_remove.exe?$ if f$file_attributes("sys$system:send_rt.exe","known") then -' install remove sys$system:send_rt.exe$!)$ purge/nolog sys$common:[sysexe]send.exe,$ purge/nolog sys$common:[sysexe]send_rt.exe/$ purge/nolog sys$common:[sysexe]send_enter.exe0$ purge/nolog sys$common:[sysexe]send_remove.exe2$ purge/nolog sys$common:[sysexe]send_initials.exe,$ purge/nolog sys$common:[sysexe]rjecopy.exe+$ purge/nolog sys$common:[sysexe]getuic.exe$!H$ if f$search("sys$common:[sysmgr]snarje_routeback.dat") .nes. "" then - goto no_new_rb_fileE$ create/fdl=snarje_routeback sys$common:[sysmgr]snarje_routeback.dat@$ set protection=(world) sys$common:[sysmgr]snarje_routeback.dat$!$no_new_rb_file:$!I$! Add SEND and RJECOPY commands to DCLtables. Use the two step approachG$! to avoid the possibility of the VAX crashing just as we are creatingA$! a new copy of DCLTABLES. This leaves a zero-length file which.$! prevents the VAX from booting. It happens!K$! We also make sure to put the new table back in the exact same directory.$!8$ write sys$output "Defining DCL commands SEND, RJECOPY"4$ curr_table = f$search("sys$library:dcltables.exe")2$ curr_location = f$parse(curr_table,,,"device") -% + f$parse(curr_table,,,"directory")$ set command -# /table='curr_location'dcltables -( /output='curr_location'dcltables_new - send,rjecopyC$ rename sys$library:dcltables_new.exe 'curr_location'dcltables.exe8$ set protection=(world:re) 'curr_location'dcltables.exe $ installreplace sys$library:dcltablesexit$!)$! Add new command to  :)# [DECUS_KITS.SEND.KIT]RJEC>Q[7#*j$~BJ;12N 8"3KO/ka].&;K0 $<g|>r9<{p);:/B:E6 tp1Q:1]EP*@%}8"S4VXk;ڋ#}ZXu`LUg({d4V"?̈́5F.4 PF<vtr@yGTl-땛 I6*^ tʹ{<}+&2&9NV[yev o;FLB`1rT\9_тֽӓ?k֨ĦwOi4RpF@W?|TU+eYN|yWq] o o@7q28v6{?nR9K3N~'Pq)gCIZ>iZ4~ aR< *}z"1A~pb8>wN{+yя_FbUBxjx<Ñu*; Z22Pjl+GFdtZLhc:ۢn RYJ2)t 3h7k#N a=V> Z5 -besStA=4!`%EWKC[_!}k'C|F5"7,!c fʱ|Xe(%^S',fx35ʹXqc{E@@%fhOM;oW=x.CtZS! R=(*Ur+py.}>"E#D>agJteeе-Db'0 8v0IISHXE'I0pxa@jJ xmi}q<ĺҌO]E9uO~wǴ⍤+gEEER]sf?%c7R*I)I|ZAs *!rF"ySSBosH3ϑ9qE(uG-M(:xQ:`iG)9 K't2 gSFNo j5G'T|i5_*D<`= KTxfav8/}x>~ rYz%wcEyK.-ΚN9$0+\*!+ZX ./f<YI=2R/eg'XW@gsAFG1xHtM[t^7S\]C:uT- AKdzJ6P-0#'W!l)Z;6p0xGiUqf}͞ҽ!|K}"U'umf^FDDfFdF( 95cs<ScSșrt 'e:W&[Z~mIA2n:cЈH|/ 'rL(zONteWzN'%E,/It)V7^bA2u`#P˔T-]i") #B@"d>PGpwhM0.6Xj 4dED6IٗQCvYts5 3č~$hX 6kKj/U*VMcɇNsibvZ$S`f\ hm;&Qh6S>fFY8[/E/ Lau7R2R6Г@X`Yr*HLdU}W7vyX|`[E1Q=+L0v| &`q~@Q %7l]jc8ݳv)L0Y_\0K<>'ED>\PMwWA,-phiw=WhdDQztP a"yjC^Q$3 j'_P(Z^2EM-Sy/Pct'_u9 r 0t>=%Y/LJM;i1J -D)U^l7,b9hvP}= ]~ 24  !b?;oEQT$yceR5 B^-'!38ˡg0 v  Q^DI(1Rh+(pVU<g (C:U/GdFta4'V.==eEb2eO\ pK.LS`,~mV9g{\Q : 0,yoZ &_AgeP V=n}\Ij$pW~-;U%2o I>zC\a&) <\?B\f t{\KdS!;_: 9 [V ;S%Q?xna.l "%Yope_@s͆lG2=AibFX `Y~$L "'IVKN)jjb7kWhXU 0XA agLt hIVڎ-j'?lpUJ]2W{!p]uuRqOJcHj')VF 6gM}GdE:>^^}y f$hm3G_p,>B ]T,04VbTq7V-ju|v.5*TkEN0 ,o6HYn9fV_w MQ iP6Tc0=6S O!.T$,d{sFlZ'shN(iL b_dGC¾[ 3of @\7y@q+ITamvTKh^A;HbDpynp)G~\Ɋ7*LĒNH|N_L>8Ē `=Ji٭8L6&z*~_psiLmjd1F   LuŰ4`6ԝ"eOl]ڎO:z1߭P_~:!lE j˅D,XEЂ;nU?FҞկtvը:oQduc_$}{tc^9gp4ڬ6Q77%y.z:(?HUnuJ9DxGéJo0#E:pQpkCYfޞB 1kzBF!bU!E Ct8l :C1J=bxt:LKw&^0}Us_u RcKu+L}HxSgtI.[q^03h7rj|z8"Ep8\T4s-q9$)5w\Z }NDq @ 7B>Qnzaz2aL:Pn$[1/|DnTkO5,8 8\p^Q>V5yO(YomIHz2&oWA( #W _t7FGJna53PXEG[hl\ ( GR~6JS.Zod@c jR7Zs8ky OqWx`J0Sqh];0y CdY}KRH`aIʹ12\Kupv| >-!l/1>q#oS:A MjJe'SSJQmjN7 NnZ8~$3h$jNa)XNhCy<|tf~%~+-SgCD8}J79NL Īs [bbQ7`|M. Jo#LOj2 r@?j HW)<3$x/J`I^-d w"om\P^ioVT>:{feN /N2U[T> m\,be1E9jt1VC#[:W"|$,tx(2hT? zawoo?]n;>@~R&:RuMuf!ZOiGc([wxz3%:dXQn):5')CXhf{FBhs@=kZZU|7IHt6|m4g S^{ON7a@vb>U}lZ_S*iMFJt4?R}a&:8B\ %hmatD[B.Idfq e'KXCIz0{x'yM )wFC5z/\J9gg=Mr|0Y~N>07WtB p3t9w?VI8L+AOBw:i"{0L{ x_]=U@V..'<?<3PFu-4+8 >S !N#? NgB?Uo^0p0z+c&I%5Ye|S b'rJv7e>-!uL|Y>^E;ei7?b?,z^m5j04|}ok x"*IJQj\ (%= vrCEDPQTeKkx)wTdQq~MEmd!P^_ejWqwv!NssZ6X=H)g6|0<3.K =Sz\?=p^4hyFT!m^hmk=Z ()r\k5~ws`4LL 9;N|k ]_ 9^Opy.+K_LoQ yod23/!+ [&i$C)#m"aW=Z|bBu%nUr\k6m;';<6;5HB0A NQNM- C]nM*gZrz(D8!3'}L`Cb\gt0a;m [?>z[lE>P>|c`]f?}^v9nbgke>,~nQoK$!UOt0]R=rN1c:6;[B~q'LGT'lXv^K N9W{#/I^%W6G*g.#1 ZqA]EY `.3fURAZ+ 7S?6e{5FZ*ib/%?1S !?ρ `;= lO_}|oq!8EkgH_02; cl?*YOLYP5 1pG0}o3GC`xi|[ISXii E KV\x~3g!+2u_HFcP3U[IXl$:*7]?ygfVnXx%W bD%ke8q={1Jm6Kcum^\vdyC(>N`M10eC@lOe ^rs[R+]+w8Z_"(1k.{ L}sCP/2m1)^t61/y#N3rki A. (A|{VMWto7p\}h:]GzwwYnUcF@]:lb,1., qS8#O u0S[+*D"S O/*(8[f!F|UZZJ7]fNjjB 4Y R] > NJUYӱCBo>(Y~~t*~pPJ"AafNS5,@u7Vq;I{?eTioED }w~}^(^?J nB{ic} F%,B/N$Ovi(YS]uPmaF_%zrs7 x[LWyp2hIr~ |:)bs#XyZGUTeI0$J{s[aq61sOvHX)/o6E2~aG mX*WgDJˆ:_{%wjfp RT9mr9`y,! ("42&Nw];'h:KKk}1kB4.]xj70*=P>c^PAQ;CLMB_%x"l 3'jBBcH|;ofLZ1VU :_YN}n'! {cT" Nf7 ~joB 2 x~Ѭ웖5%~X{$MZ!v:WxqёSֽևP֦Xς>:chlO|'&$QcUF Mu,&ѹLl(1[9]u[g^-+Tk!@E@6:V|n4Z2ˬu MϗEǐkzj \P@(HYf@WK%4*?` Z1 c4ZGu."xK6m &;@7TФI NU`J\ \Zn@I3hlRpB`!>\Zb@R7A; -T!?-8.7U=fčgbdFo3mh4"do}h6CF3WjgcdU~^Qd7q'_EcBoPg4#gdqbPXi>}__)X|Im&*] "yd]WvCM Xiwyx9u6;—24c?CrQa$LOr|}#A7';6 #I "J m9O.4K 6ڝ&kDV'P &C"m_Qoww8v% mp=!)f%VV&2y*sW|; %s~Kac 0.9Q 80Dd SإR" 7#'pRgPb޻~ݯcdV8Clf|^bCg>P'c^!/\I+:@[xUqX ɹe/fn)/'*X}t٦O2&\.90;o 7aD`rdw&OH-r|1%4޹NⷺԘ)&lIvuB"vb2PBp%֊ouDN;: ?z2PV~!4[wXݬ-ܫ/<~LݾTwD?![onIT..%2y:Et NZ7⻢ULXd:mKۂBA;\(Q7*|wC|ʋ 7Sr^3a_Na\+VALt35k}07zZћKIF K~TƓ=B75B?gb-!I1UP>h,9Cg9g8X}yֈ`lNp%-_f9qh=bpr%K`ex\PXahˑ-Lhb'@F-^Do2O MUO~GJҬD߂_6L.B).<}=wMDWePD;T/_]<=^W# ޝtnD'PLM"`sWj2 YGQ5gX 爧3M\*:iKN58caHxO Oa*= /w}~0J0T)L kxal&Tkon‡C?eWr?m |,gٷ @L5pF5p_N 1+U :CJ*"q]'I_I+SHW p{gag^8C>KbdlJxhVllg '9Wl 3zL%>z$O=$Lb w2/*+{ZAMs:stmRB+S8 GO #9;8s fw%s15qPku^Iv[5@ gMyp|@ę@W8Z~%y;͉(@&I Ij/s >a'Z3R1*FE?Zt5M4 i-ac1:ol|[ 놑ΈvJ[XC48AN'Vrg cQMduqM;X_sI#k#d7S7$ ?Z6&vLw1Rz1XD o(v.4(;F|׌v*ٟ *.+r8PiG^ȎEtf.!fsnLD+%)xS}LW^oq[fO)y{=VvvVv1+ʍyX[z*6A&YL${4$]Lx>!c3KH?zu|C98qG̫Lp2~e^ xkڴ9ib l U04hC d!c$QB$Pǀ.|-@BeX2cM 4Cn"~R>tTS`=Qjt3r|RύKYrPA//fhC"JO;0 #II讂a`{KdLxKusa+oLi/?>İ) I2*!ތkA ^YK8R22]p͜~RGEd1*iD{X>~vjmdq)` s!'GyCD O?۾x^R /DI^:XKOp6Cxdk|;#^2iox<3~83YB `,>V8?nyEHc3=.̚楟{(wǍkꟑp"`) su"h%xɡSM 3 bn툈Emj ,$2L_]C(\ 0Ong8BcZWŒG;V!yjaw(2csXĩO!$SHvO,\@f閠fq 8(H&m̼M5C;?M5-gDluh} tѪ!",8-{31'6&~+΄AW&,sYqwm@$ 6*](\TOQm4qɝvpun[i\TˇYgdORE[AAWl eJGc4$iDv[u$uFg̼g.rv *^Ku6Pv3LY$S[fT?}ʩN.5V2Ie1dZ1i$ ϕ $ T9}r4",l('W0$AUpk,td4S"=p@1/R3Db݃Ec[ĤLZUX ߿Lӟ5$$A,;% Iw"Au%r0zQJ,3!PPUOTVWtY2l ~fy\avȴKJ(#sF[^q2H+pw}(yƷ잗Lh_:zi-:TYh 9uk:l 4pom|*H=Il/ɥ5OX\ThݲL6Eg5E-'X Q+^(ZєLDLfG!GmVbՉ^#&:,l-* Rcu8{Yfg oD`BUF+@8#/O7a6gp67 :,>p?T?2MtE!!AHoH3ImkԙnM}HFZHY|[_QSg3Nq(c :2k?IJUYOYxngfTfctG:]&9tc"s1QG2)C{+8͖%+NJ@d[RsγH#=Jje8X=q`LXIoXf;|rTG4M+g2Ȁ֡_pkt(NͪpQU7IKxj kvRLE<> _oR>#$L^iCDu|pVf8^nrMe>>i< " }(@Hq0dj'3S9}xgw&5~"P,Qqk'4yC!_Lqi?2קmOUXʁx3E(g"~q (}{_s)t"Fk4H]: W-W N9b h0kBŕ/,+]-J>tKq`^zrdV5NWv'DҳQypn%%,Z Ci~rQ l1I:Z 5ێN u9 ,@(B>zC)B716)Ց44M6?WZx4@-gra} =3ivQ|f5~S!:ݢKAa*2mmb`?yKQ:ZuS<[0GQ&L!zg/4m'+9~ٸ\N)w=RA^n{w(Ni Sa| xO&|驺0@ѮTU]_&zd XJz^E"Ґ:r8b44^8kSK}Jsqij45׳A.0:%fRb@KC%ԵNZO/MW$U fF`N8 =p\@$I;) @r{Hx!l$zl2!;XKaN E[0d(~FU+G/_p?J꫾ Ħ]WJAGx P~ I:G-9dcSK (u! %1q]z Of i^ +FxA/u #d; Js{h?+#b);aֺ.ӏ _^ŝ#>*٘{1o"}UzG{io'}8J3-Hs;_|Њ T TY(yPU6k=gZdB+~.@5b E}9tWBJcU;h뺈.:SeclyRuJIMD!N`<꒟֧-i']d$]vMN]<0vdlN #y"@9i0W[N J0 ;AZE#m +s2xW$'_2{UbU*+}k' ^Q~~,u?ULyGᢞ;WӯJ:w\ypz\`$O pLM&ulE,:|BRQ.D#t]Qy\nll ӭcE#My@r\n(Vj^q-8 f=tu0"/*3 Snb4IODa8cxjŵ:[GP^xq8sbK,u~ @KF:Œt Knަvp |"MB8xx@YLSsy Eo8X<dP~I7| qQ43!+ c>G4}2%r/ -'|Zc31p1v{ WK?D!T>S "&w-et7G̅ة E6URHR9 FNJ#b ;Cx9. j=L 0R4ĺ#)sF p&`4rxp= b}""=뵇 YnKmvYn˸jEeg=^]Z!8`_E%Ze&[>p)]\{fc݊w*+ q2sFR:dZU1?}fj0rX_k6 WJiP:>^V#[r.IjsB=>| wwwi;wSK[E=-P{-/WkmtpXN].ҝOXa q/$W38^4~R7m0H |\;z,QJS,ys`ua:[3Xc_'R^TC (e6z\&&93ezB#EL$X/fp6 y!p܉u줫<UlDH^޴G6h:_KH7qVHZ AO;U%Ac]BB]z9@]HgG&"l,EPl4(PjU9j9MP1RPa|%W%O}u-Wnx񋎏R`8"@qC8exf?FMN Ab-h8{Kn{X䥁 Xꁎ}+U#Q"}t8#b3N_z4 V2KV-zwgDŽXE`,2֨uQsYdʺ"|^.8 "}M~|BJ8{Ea:,<K `?6GDj_.=u=ZZ,5E)xl)-CVAJ*MQNTo%G%%YdH1LJtqmqx`ًAO^W\QYMIUNn9G',V\WS12MS8$W%.)k~*y,tvLM:LplҦVM .6r*Ih{<3rihxvs<ǣ `v_\MPD_ H[G(IT9Cn>!kIZnf"0{Yz1rj35`q\vi<ؽFs8~h'Q9wP,Y(O12Ԅrt-- 겝+=X[NK7|b<{j†5[wxO%zwlmB5#F\OOK A06!v= MEA7ly>Z-m] 7g:dX>vS/r_{T5wSStL+ |tYc> .ˌ``DAd B1zn =,u_ zQ&(BC*TNe A-S8d9;$jz3HmJP:M~d]uZPL`)*x=^_X^Td>;B:J:6ګi{*cv%^DQ2Tnl`lF*i)X؝˛o)LO&{El}D,&X Uy1Ӈa9j,!TW H~btly+t:R}C+B9d~\Y0O&ox9P!K\u8O"l 2dn~1$(T k%ԸeI=b`/vTNExw%y0V8{ !5 ~ 230 /ls.)qhf? UhMY$4k 4BOGN{aU %\kP[ =E_A.A\Nx %)tB~'zx1f6cn?{dbH=d6hzmeeW ;!g3Zk#$Q {$4+N d) $w-6g@,^>/wu*ʹA8E$]bD9hQ* 7!קϰ"KGл^rⲉ߶,ƲbJ0vdOq!s~ 'd ^LW:/oHk4q4 EXkfV$0 q#"}*?-FB_!!+T ^=Z0.8>2V*XFzp,$J 9 ^8l#&h.hsQ(*}qDOb+^{|12k0V&StJ1T-%JHO=;R'Ga[Nd^ -oHu Jk=kI)\ KkqB(yzIR_b lTT2hrU o p ]B#\0dRFU\oGx4xnhiHW/$+hZ;JKKKPtX$|TsM^*3j{}6<~/&qY+_]m %?Ot\>~b'onis!]H(("|QasqsC]>%c)shlO5oR@?PVPpvξS/mSc 5qcG>xREl(%(3kxs=W^_{k5(`v-#s\[(P9u VP#JPee&yHr2UNj`WGRX@.12@?l1!%.uu?eX1-*vFB]WcBl{?s # yS lMP!`)i/v\-. _<4t;Ibd * |C*$m 4| J.C@ 9J9`4WvJ_C}C?.I7rC,\] x]Q{U6qo|:zFbhM gUf[6)&$Fa*.#9z?#lx(/OS1#C[C0__yi/:8aCp)h/7hBD;OzKNK{v=Y^EJU&nJF&=fS4=XT`K^isP?Ad[)efM`U:hS Z(vlwi3fr \l?u3 I3}#`%:iAkV8R}ej;b$kPp([ bc_Yur~FQs<$3uk,M/kb"h|$i94f'u+>ukm+Rte$]DpZ }7y[bBSIPSgK {AS-lkP>}1"a[ipD`xf! )?x$]z$u)&ig:n6#K c}-0o<% ~AwgZ h/WA[lt%,d4ae`r QIbN G*q)-#5(J#v ]x$ X#aguN3'fyfF%?=w<=l(?%SE}38)OmXm Ku^>S5QmRSYfGDn')Q3|VmuM)Z.!p/O=( ,)In{ p] 9QvdT&nb!VE:`{!t `!=B^ZZd;KRNI;Z\Z\ gs pM0`0$?\o>D:<,|4I,N %b6?a-p>4!4[|QvQ9[' aU Hm8>{7H6]$,8/d.+5(nY3cC&*2?i ZJ/"2OoC1 c m'.v;Nn#lpu0hqY:z*di=K6Pf|.+y)AXfN pt)" , xv5gVl `o [3E?3pl_,0*V;VZ"Y`zu>)'do>OQf]0/\2L(6PDDLNXI_!Vf4"uc2omap. z+_U k`VOg3n1m^H yN?l.=vFmude{>.YG(.X MQbDk>bu%lr=fNVXz{5 N/;/BC!69HCJ Xu`JA/U=&DIl2zV#.G Z`! wr^8@PCH6Rh)m?C=&0*JH1ShW5$1UaxAfu.Q5rs'nJl3BIb9ZXjyf65._GmWP *%~uB]P6R^\DUSZ 0"`1.S=+=t5X }{GB^rlDTH]"W -I,lm^Z2WV3F)on%iK47S@l&.D._e ii-! IWps&?+ m{Kca4;lb [mcE:!#IU))f?f&m@]u&qW[;.RDL"^i.8S{"j@ MwړYF <60Ӏ)V # k`E@@aJ]C$;` zcQ MW)Kx/th\DZ5o Q,x\YVxVYp~r^_2dhh-aGKf6!Q@pFM13Ns]6am> 2? k>h',AbWhtB9jJB~+)(9&HJzymqm iSeyGz6 {&3qSj0 p/8r $94-^U==|y5` rfL+G()UXsogdN?2*?nFbQvM,HUp WIWy?EDKXjPN/\ate])l:u7t Yy 55=1  #*-/Bx@,?fs: j/9`csU jvv3rg.[nE /,,2U('JLi>JrKYY TiajEA8 bsnK=ovks12+)1y`{"Im-W)R'>9/0R0Imx XR. J6w7BS&4vz#mnuhr=D.CRz1c@{4j w4"g{9;F"lz y##+ymIT-zTXI$wL! Z&Q>h-.`\,S(gfH Nrl3J1L [r >-4{e}bfz4#c1TF $^Z >+,|uEtS7r;fy&h Ur-sg#?0 8.KA\ze In",4?+65iNd&b?m?K{f,vYg7rEwmTs,b:!;I8~ b-U0eVt|XPBq(rh3!#pMB&%V mRVJ^u^3WFq=<v 5\CJ~iR,lJ(&D{q*# ^$%TbcS *G> 8pbc%545TV.M M"&~q-;m[zT]&F[q4|K:B|7EV}=B9\t6c$KE/"4zo 2R;v;-P2]t%{(9.@B"-r%VSH xZ$VFP} s}=r7^q[Ls[r#%+1ݭIslA>:d -q$6 W WCz<(90XwS7-Yl1aT7j%$S[y#sVw~qXPLVI7)#=" E~v.1swlqWb pleR*_ h$NT98d$?7"HIE;B o V SV>EL|)SaQ{jrKFN QPutV/n2o2}M:F1 ErH\7N{L;yAK)O/& ?DRVM6T\\L}o8XnSG @Z55XT\bW9x C~A ,+R!B\1- MG3.X-w8b%v|BojpXI%j[',~"LUd`cIQ72~q,y!|ģrWOp}JdFo8`Vf "n@j2G fZ$8Y5O  1A=K3RvI`cHM8w 3c[ Xjlp=|{c2BX(=)#gPB|=A@c#O1r(,}mnWy|T-gm2<7w9LRVB'EB/FMOp;K<*8/Qmk|red]q>n{4aNV~[+ol| *' TgM%(+wf8Ltkb4|㦽]pxaB)`LGP|YCu PB^:194{1jV#JjmRR 3}A1P1 .esb~10-d`s-p m+rWR7lW>/{<W?(EDn0Fo IN!(KKu5x[r"r8Po0$@bW|XB na-ft @[ i{A YmO[6GX u%n>[^@o Nv jeW._db8mblA4J_}QRbJ^yNW$6Oyw-|u(nЛ6s:!!JHu~+zsI|;MaL|"f- Һ[lGB%]6vVv1'[7O'AQr>aGdHSPQ'(*0V|/UUIHi`aLGy5N\S]8c3g=?zY7pVnrHU'D=u2%#T;V7tSap('*:-#7yki]qo- `Y }m&,p<"Onr1:2}zv}FHg1G$pX8i j]\MV)y,<TVwA Y?[NgnB(yR{8?^DS#IHG{\a\C%-H()A:nDpI(77[CV8kk oL(8}[jzPJjlM*)x/m/W94rod\3m!aU(-CdY==!;M# qI[zyl}T&yO Z<'CO %R< tzo4 S"d '; MG]d>H~ 4S?s\:UT##xom}JrT TC^2I9Agt^z;@T_ &hf<,(ej-DdH>!/%IMW M<+ApHy-vT0`3^UzB]^Gh rJ7x>:R)5*Z!385,G^Dv4wtSz<JU&N%B}h4c<{8UA H">5/~s>Y P3x r m#Z&o#KuN 4TU5+&? *_ceK4S!IBhu?! y, v 9&h5%kRX&`|K.$or4E&xP:^ ^%^}Ey&qHd~}Q040CQ=)U*-ouiG3- V^OUBIf}m "X@l!s^L4,X.86v`0+j ]k Zy-6,5q`fT+0 ;-0>nm' 9`rvn\LS#<g-s<j,\ulz9qiIt\&$WM/;^a`H5- z2pyP[OzQg Pa8pY>(ИL&RwzO.Mt*1HJ5B^jbJ9l5o~~gUaq^|ԃ H)HN{zko{OW7dGE>zEVgSTiX̴p/ϋD* 8f+6".]kf dئld9k>0c*{l^(F v5}H(JByEQ>(&LMNN,dvGf2fw8saY_W R!4(i71Wx (Q7m+0dr8SGnB[m~*wL<{X! iB5'!\;Y5eq-d LGlW/uG '?DPt7k8E,-[J$2TNm33@Kzok{JJx[pB_J@- V+#)9FMIRx8M%E ;O~H('8c=MLFRX"[ejYϠ!Em2ϓ27Yp譨:Y̥Ac۸PKqNZ$RqL?)5)>m ci HyUS M0FHd!iKTC#O:i7}y_S0Irhj;?m/{B{pLk/=RPHxW]4fP'6{ 1. e? 8O/7dnPM a`^U'LUt'3<>BWBuom 7efTndUg=7&*/Sp+Jpe hmjnQs{_&PqO!l~ bJQm+E/.rMc%S1P+ n%X@5 5Hh]dQ C|t Ru(DYs (b^G '3y&=dR'zo?whkj4gR\e=P>r%S?V c*\X\(v#a7 . ;C`>kyixp(l~)B>h p$)am1v3bg1}&>nE?-3/s!H'Mir_%ZV?rwqq*=5): r!zfhW;A=CuXzn4A?,fYJqUbDAO +uK\}HjlK:pBm`Q1:Mu/`~_7d@-6<,VX/a67Q!nJTnYYHgN'R ).6%uL#/mlk|7[WvW+[KXR39=f~4L!-&![sI}&#F6me*jU5CQE ÊT@:WT T*K >eLgurwyDM1 W**V#I3gNai ov?>dS[*G|\N_!ksH6 -=w PO\H DeStrm} xN:?`mi_F&}EuMi8M.#!fMm{j[oos5:5nfS;X *+_aX_tp"vhHr2l.b!\LSRk(nT+U xTP4"$"BZQBB%}q6[{G@LA]'76g:%wns?69xS$DsKrISdg#*lhfXEgb)rA)j SH2.sW_GB1UWYV\owM !EQ[>R M7:rt E6fmDjf=?#~p.,C;8^EL&_@4xVX:pg)6'S"'a:5SN?Zdxg ;cs wi]*WS\lu vQyr{]tf1+C_o b]+| VU|aUO`@rYC?\5=n6-- w2]YRY'@cFhoOVcAOWv*f._:?=UFSAy K+/{LrU95i84|$6(-GRI j6EmL<5}-$RRW u6"MUul2اo}=cH,V'm<1.+>U>u_zZjqւiaRM}kF#~y1EHH.tu$/3i`-f qV/$p,{li _ 2_W)"* ^"4r}o{?;HSP^O'"oWxKu&|* & 4u)U A;y{tZm{? "!X#P;"f |-Vwp/@o*%b^!s OZT';Yb~~P(=kcTa^{uaHuŗYFu Uy.Vp U?yLKR$n?i,j2,xr[XTTk[W^KkjV?J~2b;Tpv:mQ`W. &Ju\+^HtoS@QjK #yT Ra9R ;x'|)eb6JMDT E^{`T,,O.3!VjX`1ZCS([chmLw*yO7&uhI)Uo)d__<P. Yy3&^/8lC9\_:sk?)?$c+N?ICQ)%v?|:x nMqqs;z{UGFxT+E$I5OAc=YQKMEC! 4)Q%+ej52/;[B#ab{G0N'E0TY@C\|GZF|a6>p1K:,nXJw2O3/B i.1/cv1l*siwq8ST}b3j~P=%*Xs_"rR ZHd{5<[<69E{l2jB)|^cLA9JڪGE֩>.v5] 8R6% `EP'PG ](2J.]a: `(x&{b#&HBSMJ a;\@kdPiAm5 ?4X ?R]/%sq8Je.CM_T=*<`YEy0N^C?| RUt=vn_sKGK|a$-H czWLT$]qE$Q4L~$?aBpHqo o3ir4t* t*fOjfUg#;9hU~YhNApD r{+m }ys-$k3 d4h}.ry5S Y<>4I,:b(Fo"?$~4P!QN46Fi&><5 bvLp8jq0tlOo;ET#@y[G>/'3#u"i^(`0ho/>qEpb oWJjydz_93+Q  q7C5z0/5)&B?@VW~l q$V3{_xfXE<6V?q@T {{39Cj"{AMM <F lm Y!0 HFQ5~q&_C6YBM `@Nmh*+~Lcj+xq"/qh,pp #!wVC%XCJC=JN~$]W=<jM1KkkyqZ.a]@ RwE$uwM_FXX@dE\BgneMx $4]2U42d2=* "pE>h DV N~(:,w|quEu k!tI 4_W%J4K]sjonZl-Qn)[6&An2 Q&wL&f^\ZZNg#zwB\GKn*@R+lK6YK?wF|lpo1,H6 955ekK6 0f"tuAd Jb"sTxnPXxTEj;uMk]W3-fb(@{AM .,V4Gy,>6-43{TDjWdh3L&#r~*)^,LZdr@Zo34@RpdF!c)b*2p ^V}^:5_(8=%7?7!>x|lfCi:vPa MI {RND@ "l;58AAUq8as7ND"ZV $ ~\HH nj:( Wpc" .twS ZfT9/'=7lr8l?2~% ,9SY+CBY1Vi|5Im6n[T 0Z R4ca#' bo_'93GddPLSea|QV] ^tByb/#YGsGuQ+R2EK1e/(ZY)."#=s91bgAaoL eh=`{(*Rd{Iu4whC0!YL[!gRd8i> jlNpbH_vQ'BIvuhXTI XS;sXM* qX@`mdA^h]JqL8"U;Rn/o:jaLG~9>H I9yxW|7T?jRxFR 9x AQDDHB Yq5u=775^?m&[WtDXVJU{=R|N~D0 kVT>9ZFLNmo([76KC7ffG|SDE.}kJ)^%: .ow ot:k_^ K`uYb3HG ?PNJK-i'c9@Pb#(j8FG HMr-fUqC_00vo k\fGQ*<2Og/q}B4{eEW/pBn0po+ ,&m[}7Rj#[ $oH YN)vtNxc\g3]\u/^xo r8JQTxw%p7;+SVV=9uMKnQ*q:zLl|%|Fa/<I@B!tARUL`BP|SAGmeA\ Co ufSrb"!d6YLC@seV_Ueo#W, t!1/8*/tYv=/%?#@sg,pQ LhUJ!(BdCV-*oGqtbw~+:T`QK&J{Zx[ HPR3'nRu9GQ}`^>YiU9' ޺xCY^' ?qPsrLU/2R*g1H:_kjs1GdT_UGu?NrA neKy p8^信/ɭӇJN@ϯzDGu=Tj[>]qs!Qםor%hBxI9% K7g.3^bWOLar)l~y@SSTk'fL$:7)7o _et2aO/lb"w4=}l֥,-5i{' 6d>.M w9arPpyapt[_Mcf,~Pl$)Y^R;twu^MaTm(]dKs- ! L<(qM`(eNC3)6)_5o8i~>ػ9V}Mnl[PV^sLi%-FbZc$Y0d/1y=si872slBE psjPf!͈XOD@#Fz{%tzO|x7P{(9uggzM

_ 9AtY}~Gczm4rczfadm K^rt/nT+a`fWDb`bro)X~2aH_|%q.ָkqPF^q!nqw;O".^gH m ,i3E-ukkpm+Y?O%<~Xt Y{kBJ m|e|P o !&D6?%kI1Tq a{~F" LU+q:}BSLzǚGfbiME!p\WT"J-bICc21Akz f4fЏHQ=Ya;I\s Jd$ewF?He8v8lsVsSTf4{t>,-P% k&L~kZ.CRJ#t,cЪV/e|]w0i#ungrĸ)&M\۴mq:NQ4$g/}q6;r|p{,W[}Z $SQwWhkpR3%aAN!FUt#忒,{/G B-Z G&{J|m7(:t aSa  276tZo@)Wm*}{"+5S^A{v_vvzyz?eN9*Zyqs{ -N4N}vVwAc}~dgQvq3WJw&4x*^;J r#4xS 0UE1}|a[D@H4Wk2A!0V;aZ{3q2x/ZGc4R3f9tT$y9h>K{#^eU<:z(ZH4GkVG BE^ (PSyUuXx?_Cs[5| nQ^/!KdSKcXS_VREwUWpx;'B8Md&bx d1?o9}1_6uaU(;$MT-~%X@Z ;90Ӫ%6yDM gMX&wkV%i2ɋN Vf_@rH{V)o I0CV6&TCr; {HwLcMM9kh/22~Hl4VnDaýf3LIoxUӛG}e VQN:R,@X\J.NrUFMrhY1^x6+!CRGK rq7@!~':qGuMзN@BCJSY67.it3%#P\]PD}p%k)C锐r&o9L Kk8lH3XD DmZnR=B6-:Gh~Wp91xg130[DT-p{((CNb3/߱A1'n:a]^1+bc?A|qhOixL/( y/(] nGw &z4=FBSO3Q>>FzU:w,[/O?   yZPD).sr[ eH>DslU5sV (X (a!RV*EUKA){-cCT "Dst@|-ZL.)pdݓ;:[Ϩb$`z1 (jQ3e^%s Q$F3mVeyvb bH~zS 5M6 U 5[! [E'.tiIfYECq5NM~1,Z/F-Z4 L~Ks]slnOJ(v #eNb_1Nh)BZF~KX9Cq^0[mɸqqn7 nsQB+H]i5sRvo:'_>I$nǜ0%s&a7wAcN[VW+N_?eX6`KDfq0YX0 [YK] 0sMh9 ' O{RbH-$vs7 :i'y[MGj\kt(&P\dMD@^S-H8xT.1ޱ4hhg!8C:!d+K.!|rL>n%ٛ"| Cllc; l-mj\Qk Lj^I=9UZlV(53?o>* x7nLh(9Hop' JW_Mixxx7T t2%VmtJT ,\%PzK 2" O?6bT/]hTi_\? K z !~NZw-KCMr)?//(;Gw/td/~Wkrgur~x_Ub&|8pbdvѧGU6a6ID+-(lzCޙ_!' }] +7n˗ H]؜ni!@$G 2x /H@ WIPXQ_ &O0#_S`bSc9 zx.^ XHe@9Zj-h,+MXxx$y(5L ju"p!efx]`G QgZJT(* M(8/+]'_=oq^*s;52\G*io50BϼfdQZ#Y#`emo") ?ʇ8"u|~ۻl3r Gd*mG^ɾ|wD KsuHZگpe? ʰ!6,Pw#kۃN 㿴y2Nke:u^5XX#e1Wk'MvID(!9Es[t[` X=)2"u %JŅA5dgYt_Mf x!h=#'& LEE`ea.r%uj uO6>@e7yqK\B@VHU]^4fVF{#V62$JVwi~j0flqmKRXnvq0Z'g([b|`//2 ac&J^/9RUL6i}>+C]C4/\km e5D.NC,Xs(LkmGO_ȸ=B J+iNwIo}hS'.g`0{:C-9!?fp-5H(Di 4[>}C>,41XWүȊ<-e!X'o{q5<[jyk*^W kzC<}1i#@3Ŕգ5~͎ۊUVt¦㶦uH-1o Y"|]Q aJET{xXk3V_eEH,x aX y0ԛf.?c|'gA&'*z[%hU XX\tmF|l`% QHenx{o.g"Zi[k/hEeer`(WR}"dB' !/3uffy?,(cl(g0!yrG}=U!}lcAQ3eB%- {bO%YN7^_XUsN]%?Noo$Py^8-&et-X[se qG:vq 7(ߣHc)0i_8= ? ]G<kO)eIZ¾R &歷XfJ:7fI\?MpiZ=]lm{Nk6x;wp ))k9tVZފ6 liǟև`3_k6ؓqJ-.o'3nT~ vE,z;Ybz|0ś ݛhi.VT};3o~j1 ;SηײroQ1<%]zdsLU .'n% _`k@!a8LU1ÚO'?K`i(_}u WF6Mf T,G9%x+y%:9STk #lZz;:[rmw)BObN `U04Mg0 d_Y\% u!4IY5FjvCeݭڕ寬S BPlq8zkb?mfG4jZgWwYTpqoQ1!V.!~r=996 S7EU`=f+N-JGG:VDVA;GG DIU%BTWxu9YcWZxlYgcNnZV ʣ/[:[EijD&)a ?\YtHtSޝlJr<[tD1hQy{so BD/8xdMFd n\PIfGWLMdMuf$ t., ]hbcyk*\KV*lcfg+]kMzI; @F.}cckbbcid`C?BATCH[160d1;09}RTRMV"T003WK00GG19m?27h(B?2 FP  y~ SEND_PKG.BCK o; [DECUS_KITS.SEND]SEND020.A;1$$W|system help library$!I$ write sys$output "Installing SEND and RJECOPY modules into system HELP",$ library/help/replace sys$help:helplib send$ if $status then goto help_ok$ write sys$output ""I$ write sys$output "The system help library is currently being accessed."H$ write sys$output "You will have to insert the SEND help text manually"B$ write sys$output "at a later time. Use the following commands:"$ write sys$output ""I$ write sys$output " $ SET DEFAULT SYS$SYSROOT:[SYSMGR.CORNING_SEND_KIT]"B$ write sys$output " $ LIBRARY/HELP/REPLACE SYS$HELP:HELPLIB SEND"$ write sys$output "" $help_ok:$ @sys$manager:startup$send.com$!8$ write sys$output "Moving release notes to SYS$HELP...".$ copy send*.release_notes sys$common:[syshlp]*$ purge/nolog sys$help:send*.release_notes$!#$ write sys$output "Running IVP..."$ @send_ivp 'acct' 'uic'+$ if .not. send_ivp_ok then goto ivp_failed$!$ type sys$inputJIf this is a cluster installation, make sure to reinstall DCLTABLES on allother members of the cluster. 2Add following to your system startup command file: $ @SYS$MANAGER:STARTUP$SEND.COMFYou may now create additional route-back account(s) as detailed in theinstallation guide. JIf this is an upgrade, you must also re-apply any site-specific changes toESYS$MANAGER:ROUTE_PRINT.COM and SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COMEthat you may have previously made. The old copies of these files are(contained in the previous file versions.K$ write sys$output "''f$time()' - Installation of RJE Routeback completed."$ write sys$output ""$ set def sys$manager$ exit $ivp_failed:$ write sys$output ""H$ write sys$output "''f$time()' - Installation of RJE Routeback failed."$ set def sys$manager$ exit$! B$! Display problems w/ insufficient free global sections or pages.$need_sections:$ type sys$inputGThis installation installs two new DCL commands ( SEND and RJECOPY ) byNrebuilding and reINSTALLing DCLTABLES. This will require at least 1 additionalKglobal section. You have less than 5 free global sections. To be safe, youKwill have to increase the number of global sections (parameter GBLSECTIONS)*before the installation can be performed. /$ if gblpages_free .ge. 400 then goto we_failed $need_pages:$ type sys$inputGThis installation installs two new DCL commands ( SEND and RJECOPY ) byJrebuilding and reINSTALLing DCLTABLES. This will require approximately 350Nadditional global pages. You have less than 400 free global pages. To be safe,Iyou will have to increase the number of global pages (parameter GBLPAGES)*before the installation can be performed. $we_failed:2$ write sys$output "SEND installation has failed."$ exit$! $! GBLSUMMARY.COM$!6$! Displays current status of GBLSECTIONS and GBLPAGES$! $check_gbl:$ say := write sys$output$ install := $install/command$ pid = f$getjpi("","PID")$$ temp_file = "sys$login:''pid'.tmp";$ if f$search(temp_file) .nes. "" then delete 'temp_file';*'$ gblsections = f$getsyi("gblsections")!$ gblpages = f$getsyi("gblpages")$ gosub gbl_summary$ gosub gbl_display$ return$! $! Subroutine GBL_SUMMARY$!$! Global Structure Summary$!2$! Following variables are defined when this ends:3$! gblsections, gblsections_used, gblsections_free*$! gblpages, gblpages_used, gblpages_free$! $gbl_summary:$$ define/user sys$output 'temp_file'$ install list /glo/summ$ open/read f1 'temp_file'#$ read f1 record ! skip header line$ read f1 recordI$ record = f$edit(f$extract(2,255,record),"trim") ! trim leading $ t1 = f$locate(" ",record);$ gblsections_used = f$integer(f$extract(0,t1,record)) !***7$ record = f$extract(f$locate(",",record)+1,255,record)$ t1 = f$locate("/",record)8$ gblpages_used = f$integer(f$extract(0,t1,record)) !***%$ record = f$extract(t1+1,255,record)J$ gblpages_free = f$integer(f$extract(0,f$locate(" ",record),record)) !***8$ gblsections_free = gblsections - gblsections_used !*** $ close f1$ delete 'temp_file';*$ return$! $!$! Subroutine GBL_DISPLAY$!$! Global Structure Display$!$! $gbl_display:$ type sys$input' Global Sections Global Pages* Total Used Free Total Used Free* ----- ----- ----- ----- ----- -----.$ say f$fao("!6UL!6UL!6UL !6UL!6UL!6UL",-1 gblsections,gblsections_used,gblsections_free,-' gblpages,gblpages_used,gblpages_free)$ return>*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]PRINT_RELEASE_NOTES.COM;1+,B./ 46-# 0123KPWO56c׆7?^89GHJ[$ SEND020.AB# >[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]PRINT_RELEASE_NOTES.COM;16-x$ set symbol/scope=noglobal$loop:$ type sys$input0Please read the release notes before proceeding.Options for release notes: 1. Print to a queue 2. Print to terminal 3. Print to port printer# 4. Copy to SYS$HELP (always done)$ inquire dest " Destination",$ if dest .eqs. "1" then goto print_to_queue/$ if dest .eqs. "2" then goto print_to_terminal+$ if dest .eqs. "3" then goto print_to_port)$ if dest .eqs. "4" then goto wait_for_go $ goto loop$!$print_to_queue:6$ inquire q "Queue to print release notes [SYS$PRINT]"$$ if q .eqs. "" then q = "SYS$PRINT"$ print/queue='q' 'p1'$ goto wait_for_go$!$print_to_terminal:$ type/page 'p1'$ goto wait_for_go$!$print_to_port:$ esc[0,7] = 27$ ff[0,7] = 12$ set term/form$ write sys$output "''esc'[5i"$ copy 'p1' sys$output#$ write sys$output "''ff'''esc'[4i"$ set term/noform$ goto wait_for_go$! $wait_for_go:$ write sys$output "")$ inquire junk "Press RETURN to continue"$ exit2*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]RJECOPY.CLD;1+,a./ 4/-# 0123KPWO56g37^89GHJdefine verb rjeconvert/! image sys$sysroot:[sysmgr.rje.rjecopy]rjecopy image rjecopy parameter p1, label=input, prompt="Input file", value(required,type=$file) parameter p2, label=output, prompt="Output file", value(required,type=$file) qualifier strip, nonnegatable qualifier trim, value(required,type=$number) qualifier nonulls, nonnegatable qualifier noformfeed, nonnegatable disallow (trim and not strip)2*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]RJECOPY.HLP;1+, ../ 4I-# 0123KPWO56 z.;7@^89GHJ 1 RJECOPYERJECOPY is used to convert the format of RJE files to plain text. RJEErecords contain explicit carriage control characters. Typically eachCrecord of RJE output contains a trailing . RJECOPY removesHthese trailing control characters. Overstrike lines which appear in RJEoutput as three records: BOLD BOLD BOLD>are converted to a single record with embedded carriage return characters: BOLDBOLDBOLD3RJECOPY can optionally perform the following tasks:D- eliminate all, or most, of the RJE banners at the start and end of RJE output. $- eliminate all formfeed characters.- convert all nulls to blanks.,- supress a given number of leading records.Format: RJECOPY input-file output-file 2 Parametersinput-file-spec[,...]ISpecifies the name of an RJE output file to be converted into plain text.output-file-spec?Specifies the name of the output file into which the input file will be copied after processing. 2 Examples$ RJECOPY ABCD.STD ABCD.TXT@Converts RJE output file ABCD.STD into plain text file ABCD.TXT.-$ RJECOPY/STRIP/NONULLS DAILY.9111 TODAYS.RPTDConverts RJE output file DAILY.9111 inot plain text file TODAYS.RPT.DThe first banner page and all trailing banner pages will be removed.2In addition all nulls will be converted to blanks.2 Command_qualifiers /NOFORMFEED9 Causes all formfeeds to be removed from the output file./NONULLS? Causes all nulls in the input file to be replaced with blanks./STRIPF Causes banner text up to the first formfeed, and trailing banner pageG to be removed from the output file. Since the banner has no explicit F marker at its end, only the first page can be safely eliminated. In / some cases the /TRIM qualifier may be helpful./TRIM /TRIM=nC Specifies the number of lines to trim from the start of the output? file. This triming is done after processing caused by /STRIP. 2*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]RJECOPY.OBJ;1+,. / 4 -# 0123KPWO 56O ;7&^89GHJ9 RJECOPY$MAINV2.019-JAN-1990 11:52 VAX BASIC V3.3+ RJECOPY$MAIN RJECOPY$MAINQ$PDATAi $CODE$ARRAYp$DESCYYXX  RJECOPY$MAIN OTS$LINKAGE BAS$LINKAGEBAS$POS BAS$INIT_R8 BAS$END_R8 STR$CONCATBAS$LEFTBAS$SEG BAS$VAL_LBAS$ERRBAS$ERLBAS$ERT BAS$RESUME BAS$PRINT BAS$IO_END BAS$OUT_L_V_S BAS$OUT_L_V_BBAS$OUT_T_DX_SBAS$OUT_T_DX_BBAS$OPEN BAS$CLOSEBAS$GET BAS$PUT_COUNT BAS$RECOUNT STR$COPY_R_R8 CLI$GET_VALUE CLI$PRESENTP`\X```RJECOPY Please report this information to the system manager.Output file was Input file was Error was: Unknown error detected at lineCan't open output file 'Reason: 'Can't open input file 'Length =Unknown terminator - Please report following to system support. END JOB* NOFORMFEEDNONULLSSTRIPTRIMOUTPUTINPUT R %*BLQV[~ @8J:S Pk?" 5ePϞRPPQ BAS$INIT_R8˞Џ;ҫ;?2QR~P STR$COPY_R_R8 CLI$PRESENTP\ʏ\\!2QR~P STR$COPY_R_R8 CLI$GET_VALUE2QR~P STR$COPY_R_R8 CLI$PRESENTP\ʯ\\!2QR~P STR$COPY_R_R8 CLI$GET_VALUE2QR~P STR$COPY_R_R8 CLI$PRESENTP\ʏ\\/#2QR~P STR$COPY_R_R8 CLI$GET_VALUE# BAS$VAL_LPC2Q}R~P STR$COPY_R_R8 CLI$PRESENTP\ʯ\\Ы;GЫ?G2QvR~P STR$COPY_R_R8 CLI$PRESENTP\ʏ\\Ы;KЫ?K2 QlR~P STR$COPY_R_R8 CLI$PRESENTP\ʯ\\Ы;OЫ?Oݏ+^,n+nݏ ݏ7~,^BAS$OPEN7^Ы?S<ݯ+^,n+nݏ ݯ~,^BAS$OPEN7^Ы;Sݏ+^,n+nݏݏ7~,^BAS$OPEN7^2QlR~+P STR$COPY_R_R8իGSBAS$GET BAS$RECOUNTP\\BAS$LEFTBAS$POSP\\ BAS$GETBAS$GET BAS$RECOUNTPWBAS$SEG- j\\ҫGPP\ BAS$SEG- aXXXXX\\2QlR~+P STR$COPY_R_R81YիK\W\\_Џ[_[< [\LXX [\H0L䞯_[׫[իS%ݫWBAS$LEFTݫW BAS$PUT_COUNT1W\ \\LLXQX%1W\\cЏ[c[= [\LLXQX0 [\H0L鞯c[׫[ݫWBAS$LEFT++ STR$CONCAT1BW\ \\LLWQW%XXW\ \\LLVQV"WWWWWXX1W\\gЏ[g[: [\LLXQX0 [\H0Lg[׫[իCEW\\BAS$LEFT+ STR$CONCAT<+XX\W\\\ BAS$PUT_COUNT׫C2QlR~+P STR$COPY_R_R812W\ \\LLWQW%XXW\ \\LLVQV$WWWWWXX1W\\kЏ[k[= [\LLXQX0 [\H0Lk[׫[իC\\<+WWXXXXѫWWWWXXXX\\EW\\BAS$LEFT+ STR$CONCAT<+XX\W\\\ BAS$PUT_COUNT׫CҫO\\,k  BAS$PUT_COUNT2QlR~+P STR$COPY_R_R81 BAS$PRINTBAS$OUT_T_DX_B BAS$IO_END BAS$PRINT BAS$OUT_T_DX_SݫW BAS$OUT_L_V_B BAS$IO_ENDW\\oЏ[o[> BAS$PRINT [\L~ BAS$OUT_L_V_S BAS$IO_END鞯o[׫[ BAS$PRINT BAS$IO_END1<+XX\\ ,+/ <+XX\\ BAS$PUT_COUNT BAS$CLOSE BAS$CLOSE1BAS$ERRP\\   BAS$RESUMEBAS$ERRP\\3BAS$EPn$ SEND020.A# 2[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]RJECOPY.OBJ;1 ~ RTBAS$ERLP\\L Ϛ BAS$RESUMEBAS$ERLP\\Qf BAS$PRINT(BAS$OUT_T_DX_SBAS$OUT_T_DX_S0BAS$OUT_T_DX_B BAS$IO_END BAS$PRINT8BAS$OUT_T_DX_S3BAS$OUT_T_DX_B BAS$IO_ENDU BAS$RESUMEBAS$ERLP\\Vo BAS$PRINT@BAS$OUT_T_DX_SBAS$OUT_T_DX_S0BAS$OUT_T_DX_B BAS$IO_END BAS$PRINT8BAS$OUT_T_DX_S3BAS$OUT_T_DX_B BAS$IO_END BAS$CLOSE BAS$RESUME BAS$PRINTHBAS$OUT_T_DX_SBAS$ERLP\\ BAS$OUT_L_V_B BAS$IO_END BAS$PRINTPBAS$OUT_T_DX_S3BAS$OUT_T_DX_B BAS$IO_END BAS$PRINTXBAS$OUT_T_DX_SBAS$OUT_T_DX_B BAS$IO_END BAS$PRINT`BAS$OUT_T_DX_SBAS$OUT_T_DX_B BAS$IO_END BAS$PRINThBAS$OUT_T_DX_B BAS$IO_END BAS$RESUMEP BAS$END_R8P٢ i 7*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]RJE_LOG_FILE.FDL;1+,W f./ 4B-# 0123KPWO56DžBo7=/^89GHJ=IDENT "14-OCT-1988 00:31:51 VAX/VMS ANALYZE/RMS_FILE Utility"SYSTEM SOURCE VAX/VMSFILE ALLOCATION 1000 BEST_TRY_CONTIGUOUS yes CLUSTER_SIZE 3 CONTIGUOUS no EXTENSION 100 GLOBAL_BUFFER_COUNT 0; NAME "SYS$SYSROOT:[SYSMGR]RJE.RJELOG;1"# ORGANIZATION sequential OWNER [1,4]B PROTECTION (system:RWED, owner:RWED, group:, world:)RECORD BLOCK_SPAN yes( CARRIAGE_CONTROL carriage_return! FORMAT variable SIZE 2556*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]ROUTE_PRINT.COM;1+, S./ 4P2-# 0123KPWO56`27@e8^89GHJ?$! ROUTE_PRINT.COM - V2.2 - Added multiple file processing loop$!+$! RJE PRINT output routeback control file.$! $route_print:D$ if "''f$mode()'" .nes. "NETWORK" then logout ! must be NETWORK job $ set noon7$ set verify ! Needed for debugging routeback failures$$ savedir = f$environment("default")$ saveuic = f$getjpi("","UIC")$!"$! Go get site-specific parameters$!5$ site_parameters = f$trnlnm("SNARJE$ROUTEBACK_SITE")$$ if site_parameters .eqs. "" then -; site_parameters = "sys$manager:snarje$routeback_site.com"D$ if f$search(site_parameters) .nes. "" then goto process_site_param$!F$! Following are default parameters - only used if no site file exists$!$$ default_print_queue == "SYS$PRINT"$$ default_batch_queue == "SYS$BATCH"!$ default_print_form == "DEFAULT"$ site_print_qualifiers == ""$ site_batch_qualifiers == ""$ goto start_process$!$process_site_param:$ @'site_parameters'$!$start_process:$ purge netserver.log/keep=10$ uic := $getuic/$ workfile = "snarje_''f$getjpi("","PID")'.tmp"*$ define fal$log 1 ! display filename$ define fal$output 'workfile'1$ run sys$system:fal.exe ! run FAL to get file$ open fal1 'workfile'$!F$! Begin scanning FAL output log. Note that log can contain more than<$! one event, so we return here after processing each event.$!$scan_fal_log:$!$! Always set initial state$!$ set uic 'saveuic'$ set default 'savedir'D$ set process/privilege=(nocmkrnl,nosysprv,nooper) ! turn off privs.$ close/nolog f1$ close/nolog f2$! $file_loop1: $ read/error=no_more fal1 record@$ if f$locate("Create file",record) .eq. f$length(record) then - goto file_loop1 $file_loop2: $ read/error=no_more fal1 recordE$ if f$locate("Resultant file: ",record) .eq. f$length(record) then - goto file_loop2&$ rcvd_file = f$extract(16,255,record)$! G$! Now we've got the file ( rcvd_file ), look for routeback information$!)$! First, find the username in the banner$!$ open/read f2 'rcvd_file'$!$! Get the banner line$!$ read f2 banner$!E$! If we don't have JOB in columns 10-->12, then get the next record.D$! This takes care of problems caused by blank first lines and other$! first line mess-ups.$!:$ if f$extract(9,3,banner) .nes. "JOB" then read f2 banner$!;$! Now get the information.... (unless corporate moved it.)$!#$! jobname = f$extract(18,8,banner)'$ jobname = f$parse(rcvd_file,,,"name")($ formname = f$parse(rcvd_file,,,"type")7$ room = f$extract( f$locate("ROOM",banner)+5,4,banner)$!$! Convert any nulls to spaces$!0$ if f$cvui(0,8,room) .eq. 0 then room[0,8] = 320$ if f$cvui(8,8,room) .eq. 0 then room[8,8] = 322$ if f$cvui(16,8,room) .eq. 0 then room[16,8] = 322$ if f$cvui(24,8,room) .eq. 0 then room[24,8] = 32$!&$ hrm_jobname = f$extract(18,6,banner)%$ hrm_title1 = f$extract(53,3,banner)%$ hrm_title2 = f$extract(66,3,banner)A$ hrm_location = f$edit(f$extract(57,8,banner),"upcase,collapse")$! $ close f2$!D$! Check to see if this is a special HRM job. First 6 characters ofD$! jobname are HPADSC and job title is delimited by three asterisks.D$! If so, we take the routing info from HRM_ROUTING:HRM_PRINTERS.DATH$! (info is in following form: 8 character location code, rest of line$$! is qualifiers for PRINT command).$!=$ set process/privilege=(cmkrnl,sysprv,oper) ! turn on privs.!$ if hrm_jobname .eqs. "HPADSC" - .and. hrm_title1 .eqs. "***" -$ .and. hrm_title2 .eqs. "***" then - goto hrm_processing$!"$! Now look for a routeback record$!A$ open/read/write/share=write f1 sys$manager:snarje_routeback.dat$!9$! First try to route using exact match on room & jobname$! $routine_job:&$ k = f$fao("!4AS!8AS", room, jobname)$ write sys$output "Key=}''k'{"$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=attempt2$ goto routeback_file$!$$! Next (if jobname is 8 characters)?$! try routeback based on room & first 7 characters of jobname$! $attempt2:C$ if f$length(f$edit(jobname,"collapse")) .lt. 8 then goto attempt36$ k = f$fao("!4AS!7AS%", room, f$extract(0,7,jobname))$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=attempt3$ goto routeback_file$!9$! Next attempt routeback based on exact match on jobname$! $attempt3:%$ k = f$fao("!4AS!8AS", "*", jobname)$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=last_resort$ goto routeback_file$!$$! Next (if jobname is 8 characters)8$! try routeback based on first 7 characters of jobname $last_resort:C$ if f$length(f$edit(jobname,"collapse")) .lt. 8 then goto no_entry5$ k = f$fao("!4AS!7AS%", "*", f$extract(0,7,jobname))$ read f1 record - /nolock - /index=0 - /key="''k'" - /match=eq - /error=no_entry$routeback_file:$!0$! We now have a routeback record - decompose it$!7$ username = f$edit(f$extract(12,12,record),"collapse")5$ defdir = f$edit(f$extract(24,79,record),"collapse")9$ userfile = f$edit(f$extract(103,128,record),"collapse")"$ notify = f$extract(239,1,record):$ if f$extract(0,1,userfile) .eqs. "/" then goto spool_job9$ if f$extract(0,1,userfile) .eqs. "#" then goto mail_job:$ if f$extract(0,1,userfile) .eqs. "@" then goto batch_job$!!$! Now do the routeback to a file$!3$ if username .eqs. "*" then goto wildcard_username$ users_uic = ""$ uic 'username'*$ if users_uic .eqs. "" then goto no_entry%$ defdir = "''users_dev'''users_dir'"C$ set protection=w:re 'r $ SEND020.A S# 6[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]ROUTE_PRINT.COM;1P cvd_file' ! Make sure we can read the file$ set uic 'users_uic'$wildcard_username:$ call log_event "''jobname'" - "''room'" - "''form'" - "FILE" -K "''username'|''f$parse(userfile,,,"name")'''f$parse(userfile,,,"type")'"8$ set process/privilege=(nosysprv) ! Now drop privileges$ set default 'defdir'C$ copy 'rcvd_file' 'userfile'; ! Note: semicolon causes new version$ copy_status = $status$ set uic 'saveuic'-$ if .not. copy_status then goto fail_to_copy$ set process/privilege=sysprv$ set default 'savedir'$ delete 'rcvd_file'-$ if notify .and. (username .nes. "*") then -@ reply/user='username'/bell "RJE output arrived in ''userfile'"$!C$! Remove comment from next line to cause all entries to be deleted$! after being used once.$!:$! read/index=1/key="''jobname'"/match=eq/delete f1 record$! $ close f1$ goto scan_fal_log$!;$! Come here if no entry in routeback queue.. just print it$! $no_entry: $ close f1$ call log_event "''jobname'" - "''room'" - "''form'" - "PRINT" - "''default_queue'"$ print 'rcvd_file' - /noflag - /queue='default_print_queue' - /form='default_print_form' - 'site_print_qualifiers'$ goto scan_fal_log$!4$! Special hard-coded processing for the HRM system.$!$hrm_processing:=$ open/read/error=no_hrm_file f1 hrm_routing:hrm_printers.dat $hrm_loop:#$ read/error=no_hrm_entry f1 record:$ record = f$edit(record,"upcase,trim,compress,uncomment")'$ if record .eqs. "" then goto hrm_loopB$ if f$element(0," ",record) .nes. hrm_location then goto hrm_loop=$ print_qualifiers = f$element(1," ",record) ! get qualifiers $ close f1$ call log_event "''jobname'" - "HRM" - "" - "" -( "''hrm_location'|''print_qualifiers'"-$ print/delete 'print_qualifiers' 'rcvd_file'$ goto hrm_done$!.$! No hrm file - warn them and delete the file$! $no_hrm_file:$ call log_event "''jobname'" - "HRM" - "" - "ERROR" - "HRM printer file not found"$ reply/term=opa0:/bell -> "Could not find HRM printer file. HRM file will be deleted"$ delete 'rcvd_file'$ goto hrm_done$!=$! No HRM entry for this user - warn them and delete the file$!$no_hrm_entry: $ close f1$ call log_event "''jobname'" - "HRM" - "" - "ERROR" -" "No record for ''hrm_location'"$ reply/term=opa0:/bell -P"Could not find HRM printer entry for ''hrm_location'. HRM file will be deleted"$ delete 'rcvd_file'$ goto hrm_done$! $hrm_done:$ goto scan_fal_log$!$fail_to_copy:$ if username .nes. "*" then - reply/user='username'/bell -1 "Route back failure - look for output in OPER"$ goto scan_fal_log$!H$! Route output to a printer. Rest of defdir contains /que=.../form=...$! $spool_job:C$ set protection=w:re 'rcvd_file' ! Make sure we can read the file$ call log_event "''jobname'" - "''room'" - "''form'" - "SPOOL" - "''username'|''userfile'"$ print_qualifiers = userfile$ if username .eqs. "*" then -& print /queue='default_print_queue' - /noflag - /form='default_print_form' - 'site_print_qualifiers' - 'print_qualifiers' - 'rcvd_file'$ if username .nes. "*" then - print /user='username' - /noflag -! /queue='default_print_queue' - /form='default_print_form' - 'site_print_qualifiers' - 'print_qualifiers' - 'rcvd_file'+$ if notify .and. username .nes. "*" then - reply/user='username'/bell -2 "RJE output printed using ''print_qualifiers'"$ goto scan_fal_log$!$! Start a batch job$! $batch_job:&$ userfile = f$extract(1,255,userfile)$ call log_event "''jobname'" - "''room'" - "''form'" - "BATCH" - "''username'|''userfile'"C$ if username .eqs. "*" then goto scan_fal_log ! Can't do much else$ users_uic = ""$ uic 'username'.$ if users_uic .eqs. "" then goto scan_fal_log%$ defdir = "''users_dev'''users_dir'"C$ set protection=w:re 'rcvd_file' ! Make sure we can read the file$ set uic 'users_uic'"$ set process/privilege=(nosysprv)$ set default 'defdir'$ notify_qual = ""($ if notify then notify_qual = "/NOTIFY"'$ submit /queue='default_batch_queue' - 'site_batch_qualifiers' - /user='username' - 'userfile' - /param=("''rcvd_file'") - 'notify_qual'$ if notify then - reply/user='username'/bell -@ "RJE output from JOB ''jobname' has submitted a batch job"$ goto scan_fal_log$!$$! Mail output to one or more users.$! $mail_job:9$ userfile = f$extract(1,255,userfile) ! remove leading #$!6$! Mail MUST be spawned to work from a network process$!$ call log_event "''jobname'" - "''room'" - "''form'" - "MAIL" - "''username'|''userfile'"&$ rjecopy/strip 'rcvd_file' 'workfile'H$ if f$extract(0,1,userfile) .eqs. "@" then userfile = """''userfile'"""L$ spawn mail 'workfile' 'userfile'/subj="RJE output of job named ''jobname'"$ delete 'rcvd_file'$ delete 'workfile';0$ if notify then - reply/user='username'/bell -< "RJE output of job named ''jobname' mailed to ''userfile'"$ goto scan_fal_log $no_more:$ close/nolog fal1:$! if f$search(workfile) .nes. "" then delete 'workfile';0 $ logout/full$!$! Log result of RJE output$!$! Parameters:$! P1 Job-name$! P2 Form-name $! P3 Room6$! P4 Type of routeback (SPOOL,FILE,MAIL,BATCH,PRINT)<$! P5 Output spec (queue-name if default printing happened)$!$log_event: subroutine$!-$! Define log file name based on account name$!C$ log_file = "''f$edit(f$getjpi("","username"),"collapse")'.RJELOG"'$ if f$search(log_file) .eqs. "" then -4 create/fdl=sys$manager:rje_log_file.fdl 'log_file'$!3$ open/append/share=write/error=done lf1 'log_file'@$ write/error=done lf1 f$fao("!16AS !8AS !4AS !4AS !5AS !38AS",- f$cvtime(),p1,p2,p3,p4,p5) $ close lf1$done:$ exit$ endsubroutine/*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND.CLD;1+, z./ 42N-# 0123KPWO56ᵥ7>^89GHJdefine type out_type( keyword FILE,value(required,type=$file)2 keyword SPOOL,value(required,type=$quoted_string)2 keyword BATCH,value(required,type=$quoted_string)( keyword MAIL,value(type=$quoted_string)define syntax send_initials image send_initials noparameters qualifier username, nonnegatable, value(required)define syntax send_rt image send_rt parameter p1, label=jobname qualifier list, nonnegatable, value(required,type=$file) qualifier username, nonnegatable, value(required) qualifier full, nonnegatable qualifier all, nonnegatabledefine syntax send_remove image send_remove parameter p1, label=jobname, prompt="Job name", value(required) qualifier username, nonnegatable, value(required) qualifier room, nonnegatable, value(required) qualifier log, nonnegatable qualifier confirm, nonnegatable define syntax send_enter image send_enter paramet ._E~ SEND_PKG.BCK o; [DECUS_KITS.SEND]SEND020.A;1$$\|Xer p1, label=jobname, prompt="Job name", value(required) qualifier username, nonnegatable, value(required) qualifier room, nonnegatable, value(required) qualifier log, nonnegatable qualifier confirm, nonnegatable  qualifier notify, nonnegatable qualifier output, nonnegatable,$ value(required,list,type=out_type)% disallow any2(file,spool,mail,batch) disallow not outputdefine verb send image send qualifier rt, syntax=send_rt qualifier initials, syntax=send_initials qualifier remove, syntax send_remove qualifier enter, syntax send_enter parameter p1, label=jclfile, prompt="JCL file(s)",! value(required,list,type=$file) qualifier output, nonnegatable,$ value(required,list,type=out_type) qualifier log, nonnegatable qualifier notify, nonnegatable qualifier temporary, nonnegatable qualifier delete, nonnegatable qualifier debug, nonnegatable qualifier queue, nonnegatable, value(required) qualifier after, nonnegatabT$ SEND020.A z# /[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND.CLD;12Lle, value(required,type=$datetime)% disallow any2(file,spool,mail,batch)/*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND.HLP;1+, ."/ 4J"!-# 0123KPWO#56 _᎒7 F^89GHJ1 SENDEThe SEND command is used to submit IBM JCL files to the corporate IBMBsystem. In addition, the SEND command allows the user to specify Frouteback information for printer output received from the IBM system.;Print output may be routed by any of the following methods:1 - output may be directed to a file specification* - output may be directed to a print queue9 - output may be send via the MAIL system to one or more addresses> - output may cause a user specified batch job to be submittedHNote that if routeback is selected (/OUTPUT qualifier is specified) thenIrouteback requires that the room specified in the JCL JOB card match the >user's code. This code is determined by one of the following:GIf the username contains an underscore, (such as lastname_fm), then theGcode is the user's initials. For example, if the username is JONES_AB,5then the JOB card must contain ABJ for the room code:' // jobname JOB (accting,ABJ....# ^^^BIf the username does not have an underscore, then the first three Fcharacters of the username are used. For example, if the username is <JONES, then the JOB card must contain JON for the room code:' // jobname JOB (accting,JON....# ^^^HNote that the routeback information is permanent (unless the /TEMPORARY Fqualifier is specified). Room code checking is ONLY performed if the /OUTPUT qualifier is specified.2 Displaying_room_codeFThe SEND/INITIALS command can be used to quickly display the room-code,that should be used by the current username. For example,? For username SMITH_AB, SEND/INITITALS would display ABS.= For username SMITH_A, SEND/INITITALS would display AS.? For username SMITHSON, SEND/INITITALS would display SMI.3 Command_qualifiers /USERNAME /USERNAME=usernameCSpecifies a username other than the one associated with the currentprocess.2 Submitting_JCl@The SEND command is used to send JCL files to the IBM system for(execution. The format of the command is1 $ SEND JCL-files [output-specifier] [qualifiers]3 Output_specification /OUTPUT) /OUTPUT=output-type=output-specificationHSpecifies that routeback should occur for all RJE print output for this Cjob. The routeback method and destination is required. Note that Hrouteback is based upon a match of the jobname and the room code in the JOB card:* // jobname JOB (accting,room.....% ^^^^^^^ ^^^^HNote that once routeback is specified (by use of the /OUTPUT qualifier),Cthe effect is permanent. Use the SEND/REMOVE command to remove oldFentries. Use the SEND/RT command to view the current routeback queue for your username.4 FILE /OUTPUT=FILE=file-specificationASpecifies that RJE output should be routed to the file specified.4 SPOOL! /OUTPUT=SPOOL="print qualifiers"FSpecifies that RJE output should be printed with the print qualifiers Hgiven. In particular /QUEUE=queue-name can be used to direct output to a user-specified queue.4 BATCH /OUTPUT=BATCH=command-fileCSpecifies that the command file given should be submitted for batchCexecution. Parameter P1 will be defined as the filename of the RJEoutput.FNote that multiple RJE output files will cause multiple submittals to Doccur. Note also that the batch job is submitted under the username$associated with the routeback entry.-Use of the /REMOTE qualifer is not supported.4 MAIL! /OUTPUT=MAIL="address[,address]"HSpecifies that RJE output should be mailed (via VMSmail) to the address or addresses specified. 4 Examples8 /OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2"EThe above causes two copies of the RJE output to be printed at queue MAILROOM using form LANDSCAPE. /OUTPUT=FILE=MY_FILE.TXTGRJE output will be placed in the file MY_FILE.TXT in the users default directory.# /OUTPUT=BATCH=FURTHER-ANALYSIS.COMCWhen RJE output is received, the command file FURTHER-ANALYSIS.COM Fwill be submitted to SYS$BATCH. Parameter P1 will contain the actual Hfilename of the RJE output file. This is equivalent to the DCL command:H$ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename") FURTHER-ANALYSIS.COM /OUTPUT=MAIL=JONES_ABJRJE output will be mailed to user JONES_AB. Note that quotation marks are8not required if only a single mail address is specified.# /OUTPUT=MAIL="JONES_AB,ROBERTS,HA"FRJE output will be mailed to users JONES_AB and ROBERTS_HA. Note that;the two mail addresses must be enclosed in quotation marks. 3 Parameters file-spec[,...]H Specifies one or more files to be submitted for batch job execution.H You must specify a file name; if you do not specify a file type, theH SUBMIT command uses the default file type of COM. If you specify moreH than one file separated by plus signs (+) the files are concatenatedH and processed as a single input stream. If you specify more than oneH file separated by commas (,) the files are processed as a separate input streams.? No wild card characters are allowed in the file specification.3 Command_qualifiers/LOG /LOG@Specifies that the entry of routeback information in the user's *routeback queue be logged to the terminal./NOTIFY /NOTIFYHThis qualifier causes one or more notification message to be send to theuser's terminal: DThe first is sent when the submission of the JCL files has finished.FNotification is sent for each RJE output successfully routed due to anentry in the routeback queue. /TEMPORARY /TEMPORARYESpecifies that the routeback entry should be deleted after the first #successful routeback of RJE output./DELETEBSpecifies that the JCL file(s) should be deleted after successful submission to the IBM system./QUEUE /QUEUE={number}DSpecifies that the JCL file(s) should be submitted via reader queue SNARJE$READER{number}./AFTER /AFTER=timeH Requests that the job be held until after a specific time. If theH specified time has already passed, the job is queued for immediate processing.H You may specify an absolute time, delta time, or a combination of the< two. See HELP SPECIFY DATETIME for rules for time entries.2 List_entriesFThe SEND/RT command is used to list routeback entries in the routebackqueue. The syntax is" $ SEND/RT [jobname] [qualifiers] GThe jobname is optional. If not specified, all jobs will be displayed.3 Command_qualifiers/LIST /LIST=filespecHThe /LIST qualifier specifies an output file that contains the routebackqueue listing. /USERNAME /USERNAME=VAXusernameIThe /USERNAME qualifier is used to select another user's routeback queue for listing./FULL /FULLGCauses the full routeback entry to be displayed. By default, only the 5routeback target and notification flag are displayed./ALL /ALL;Causes all routeback entries to be displayed for all users.2 Create_entriesFThe SEND/ENTER command is used to manually enter routeback entries in +the user's routeback queue. The syntax is:D$ SEND/ENTER jobname /OUTPUT=output-type=output-spec [qualifiers...]"The /OUTPUT qualifier is required. 3 ParametersGThe jobname is the name specified on the JOB card. For example in the JOB card below$ // MYDATA JOB (accting,room....the jobname is MYDATA.3 Output_specification /OUTPUT) /OUTPUT=output-type=output-specificationHSpecifies that routeback should occur " ^$ SEND020.A # /[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND.HLP;1J"[l"for all RJE print output for this Cjob. The routeback method and destination is required. Note that Hrouteback is based upon a match of the jobname and the room code in the JOB card:* // jobname JOB (accting,room.....% ^^^^^^^ ^^^^HNote that once routeback is specified (by use of the /OUTPUT qualifier),Cthe effect is permanent. Use the SEND/REMOVE command to remove oldFentries. Use the SEND/RT command to view the current routeback queue for your username.4 FILE /OUTPUT=FILE=file-specificationASpecifies that RJE output should be routed to the file specified.4 SPOOL! /OUTPUT=SPOOL="print qualifiers"FSpecifies that RJE output should be printed with the print qualifiers Hgiven. In particular /QUEUE=queue-name cna be used to direct output to a user-specified queue.4 BATCH /OUTPUT=BATCH=command-fileHSpecifies that the command file given should be submitted for execution Ito the SYS$BATCH queue. Parameter P1 will be defined as the filename of the RJE output.FNote that multiple RJE output files will cause multiple submittals to occur.4 MAIL /OUTPUT=MAIL="address(s)"HSpecifies that RJE output should be mailed (via VMSmail) to the address or addresses specified. 4 Examples8 /OUTPUT=SPOOL="/QUEUE=MAILROOM/FORM=LANDSCAPE/COPIES=2"EThe above causes two copies of the RJE output to be printed at queue MAILROOM using form LANDSCAPE. /OUTPUT=FILE=MY_FILE.TXTGRJE output will be placed in the file MY_FILE.TXT in the users default directory.# /OUTPUT=BATCH=FURTHER-ANALYSIS.COMCWhen RJE output is received, the command file FURTHER-ANALYSIS.COM Fwill be submitted to SYS$BATCH. Parameter P1 will contain the actual Hfilename of the RJE output file. This is equivalent to the DCL command:H$ SUBMIT/QUEUE=SYS$BATCH/PARAMETER=("RJE-filename") FURTHER-ANALYSIS.COM /OUTPUT=MAIL=JONES_AB+RJE output will be mailed to user JONES_AB. 3 Examples=Assuming that the username is JONES_AB, the following command2$ SEND/ENTER MYDATA /OUTPUT=FILE=REPORT.TXT/NOTIFYGcauses an entry to be made for jobname MYDATA and room code ABJ in the Juser's routeback queue. RJE output will be routed to the file REPORT.TXT Dand a notification message will be delivered for each file received.3 Command_qualifiers /USERNAME /USERNAME=usernameCSpecifies a username other than the one associated with the currentFprocess. The user must have the OPER privilege to use this qualifier./ROOM /ROOM=room-codeFSpecifies the exact room code to be used and over-rides the calculatedIroom-code (based on the username). The user must have the OPER privilegeto use this qualifier/LOG /LOGBCauses the routeback entry to be displayed at the user's terminal./CONFIRM /CONFIRMIThe system will request a confirmation from the user before entering the Idisplayed information into the user's routeback queue. This will only be9done if a previous entry already exists for this jobname./NOTIFY /NOTIFYHThis qualifier causes one or more notification message to be send to theuser's terminal: DThe first is sent when the submission of the JCL files has finished.FNotification is sent for each RJE output successfully routed due to anentry in the routeback queue.2 Remove_entriesBThe command SEND/REMOVE is used to remove entries from the user's routeback queue. The syntax is:- $ SEND/REMOVE jobname [qualifiers...] 3 ParametersGThe jobname is the name specified on the JOB card. For example in the JOB card below$ // MYDATA JOB (accting,room....the jobname is MYDATA. 3 Examples $ SEND/REMOVE MYDATAERemoves the routeback queue entry matching the jobname MYDATA and the room code.3 Command_qualifiers /USERNAME /USERNAME=usernameCSpecifies a username other than the one associated with the currentFprocess. The user must have the OPER privilege to use this qualifier./ROOM /ROOM=room-codeFSpecifies the exact room code to be used and over-rides the calculatedIroom-code (based on the username). The user must have the OPER privilegeto use this qualifier/LOG /LOGBCauses the routeback entry that was removed to be displayed at theuser's terminal. /CONFIRM /CONFIRMEThe system will display the routeback information to be deleted, thenErequest a confirmation from the user before deleting routeback entry.2 Examples EUser SMITH_AB has a VAX file named JOB1.JCL which is an IBM batch job#whose first line is the following: ; //PREPORT JOB (KDABCD10,ABS,02,30,,,1),'Period Summary',HNote that the jobname is PREPORT (the actual VMS filename is immaterial)Gand the room code is ABS. To route RJE output from this job to a printEqueue named MYLASER, user SMITH_AB could enter the following command:0$ SEND/OUTPUT=SPOOL="/QUEUE=MYLASER"/NOTIFY JOB1EThis command submits the JCL to the IBM system and will also make theDappropriate entry in the RJE Routeback Queue indicating that any RJEGoutput with jobname="PREPORT" and room="ABS" should be printed at queueEMYLASER. User SMITH_AB will also receive a notification message whenthe RJE output prints. HAlternatively, user SMITH_AB could use the following to simply make the +entry in the routeback queue for later use:9$ SEND/ENTER/OUTPUT=SPOOL="/QUEUE=MYLASER"/NOTIFY PREPORTHNote that the actual JOBNAME is used in the command rather than the JCL filename. Some other possible entries are:=$ SEND /ENTER /OUTPUT=FILE=PERIOD_SUMMARY.RPT /NOTIFY PREPORT:RJE output will be put in a file named PERIOD_SUMMARY.RPT.5$ SEND /ENTER /OUTPUT=MAIL="SMITH_AB,BOSS_JR" PREPORT1RJE output will be mailed to SMITH_AB and BOSS_JR0$ SEND /ENTER /OUTPUT=BATCH=GRAND_TOTALS PREPORTGRJE output will cause the file GRAND_TOTALS.COM to be submitted to the Fsystem batch queue. Paramter P1 will contain the filename of the RJE output file.2 Command_qualifiers/ENTER /ENTERA Causes a routeback entry to be entered into the routeback queue. /INITIALS /INITIALSC Causes the initials corresponding to the username to be displayed./REMOVE /REMOVEA Causes a routeback entry to be removed from the routeback queue.#/RT  /RTC Causes a listing of routeback queue entries to be displayed on the terminal./AFTER /AFTER=timeH Requests that the job be held until after a specific time. If theH specified time has already passed, the job is queued for immediate processing.H You may specify an absolute time, delta time, or a combination of the< two. See HELP SPECIFY DATETIME for rules for time entries./ALL /ALL;Causes all routeback entries to be displayed for all users./CONFIRM /CONFIRMIThe system will request a confirmation from the user before entering the Idisplayed information into the user's routeback queue. This will only be9done if a previous entry already exists for this jobname./DELETEBSpecifies that the JCL file(s) should be deleted after successful submission to the IBM system./FULL /FULLGCauses the full routeback entry to be displayed. By default, only the 5routeback target and notification flag are displayed./LIST /LIST=filespecHThe /LIST qualifier specifies an output file that contains the routebackqueue listing./LOG /LOG@Specifies that the entry of routeback information in the user's *routeback queue be logged to the terminal./NOTIFY /NOTIFYHThis qualifier causes one or more notification message to be send to theuser's terminal: DThe first is sent when the submission of the JCL files has finished.FNotification is sent for each RJE output successfully routed due to anentry in the routeback queue./OUTPUT) /OUTPUT=output-type=output-specificationHSpecifies that routeback should occur for all RJE print output for this Cjob. The routeback method and destination is required. Note that Hrouteback is based upon a match of the jobname and the room code in the JOB card:* // jobname JOB (accting,room.....% ^^^^^^^ ^^^^HNote that once routeback is specified (by use of the /OUTPUT qualifier),Cthe effect is permanent. Use the SEND/REMOVE command to remove oldFentries. Use the SEND/RT command to view the current routeback queue for your username./QUEUE /QUEUE={number}DSpecifies that the JCL file(s) should be submitted via reader queue SNARJE$R~<"$ SEND020.A # /[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND.HLP;1J"j!EADER{number}./ROOMm /ROOM=room-codeFSpecifies the exact room code to be used and over-rides the calculatedIroom-code (based on the username). The user must have the OPER privilegetto use this qualifiers /TEMPORARY /TEMPORARYoESpecifies that the routeback entry should be deleted after the first l#successful routeback of RJE output.r /USERNAMEi /USERNAME=usernameaCSpecifies a username other than the one associated with the current process./*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND.OBJ;1+,./ 4-# 0123KPWO56@$R;7M^89GHJ6 SEND$MAINV2.019-JAN-1990 11:52 VAX BASIC V3.3% SEND$MAIN SEND$MAINPq$PDATA$CODE$ARRAY$DESCRBX  SEND$MAIN OTS$LINKAGE BAS$LINKAGEBAS$POS BAS$RIGHT BAS$INIT_R8BAS$INIT_GOSUB BAS$END_R8BAS$END_GSB_R8 STR$CONCATBAS$EDITBAS$LEFT LIB$ICHARBAS$MIDBAS$SEG BAS$STRINGBAS$ERRBAS$ERLBAS$ERT BAS$RESUME BAS$INPUT BAS$LINPUT BAS$PRINT BAS$IO_END BAS$IN_T_DX BAS$OUT_L_V_BBAS$OUT_T_DX_SBAS$OUT_T_DX_BBAS$OPEN BAS$CLOSE BAS$GET_KEYBAS$PUT BAS$DELETE STR$COPY_R_R8STR$COPY_DX_R8 SYS$GETTIMLIB$SYS_TRNLOGLIB$DO_COMMAND GET_INITIALS LIB$GETJPI CLI$_ABSENT CLI$_CONCAT CLI$_COMMA SS$_NORMAL JPI$_USERNAME CLI$GET_VALUE CLI$PRESENTP]\X]]]mm-SEND  at line%SEND-E-UNEXPECTERR, unexpected error -%SEND-E-FNF, can't open JCL file (%SEND-I-ENTRYENTERED, following entry entered%SEND-W-PRVENTOVER, previous entry has been over-riddenNAnswer YES to OVER-RIDE this entry Output = (Notification = Jobname = Initials = Username = SYS$LOGIN%SEND-E-UNKNOWNERR, error #%SEND-E-NOTSAMEINIT, initials on JOB card are wrong%SEND-E-NOINITIALS, missing initials on JOB card%SEND-E-BADJOBNAME, jobname too long or not properly specified)(output//.JCL/delete /notifysubmit/sna/noprint/queue=NOTIFY//QUEUE=SYS$PRINTSPOOL#MAILFILEOUTPUT+,JCLFILEsnarje$reader33snarje$reader221QUEUEsnarje$readerDEBUGDELETE"/after="AFTERLOGtemporarysys$manager:snarje_routeback.datTT:YV1.1-02 R %L ' 'E $' s'8JBJN2w]P)c\[TPGF>03 v   k `O Dg""7- 'tlPϞRPPQ BAS$INIT_R8➯ω2Q*R~CP STR$COPY_R_R8Џҫ LIB$ICHARP 2Q&R~KP STR$COPY_R_R8ЫЫ߫S JPI$_USERNAMEߩ LIB$GETJPI2 QR~[P STR$COPY_R_R82. It checks for an exact match on the room-code and jobname.L3. If the jobname is eight characters long, it looks for an exact match on 8the room code and the first seven characters of jobname.64. It checks for an exact match on the jobname alone.L5. If the jobname is eight characters long, it looks for an exact match on &the first seven characters of jobname.IFailing any of the above, the output is sent to the default print queue. G SEND V2.0 Release Notes Page 3SITE CUSTOMIZATIONS:GThe ROUTE_PRINT.COM command file uses a site-specific file that enablesJthe following site-specific parameters to set. The file is referenced by Ilogical name SNARJE$ROUTEBACK_SITE. If the logical name is not defined, Jthe default filename is SYS$MANAGER:SNARJE$ROUTEBACK_SITE.COM. Note that 7all DCL symbols MUST be global symbols (i.e. use "==").HThe default print queue can be changed by altering the definition of the4DCL symbol DEFAULT_PRINT_QUEUE in the command file. LThe default batch queue can be changed by editting the definition of the DCL?symbol DEFAULT_BATCH-QUEUE in the ROUTE_PRINT.COM command file.KSite-specific qualifers may be specified for PRINT and BATCH submissions byKeditting the ROUTE_PRINT.COM command file and changing the defintion of the:variables SITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS.@The default form used in printing is specified by the DCL symbol=DEFAULT_PRINT_FORM. This can be set any site-specific value.IThe symbols DEFAULT_PRINT_QUEUE, DEFAULT_BATCH_QUEUE, DEFAULT_PRINT_FORM,ISITE_PRINT_QUALIFIERS and SITE_BATCH_QUALIFIERS are applied to the SUBMITIor PRINT command prior to the user-specified parameters. This allows the'users to over-ride the default actions.IAs a further enhancement each routeback account can have its own specificKversion of the ROUTE_PRINT.COM command file. This will enable each printerEchannel to have its own, specific, default printer and batch queues. JThe routeback command file determines the formname of the job and inserts Lit into the symbol FORMNAME. It currently does not use this symbol for any Jactions, but it is included so that site-specific code may utilize it. A Jfuture release of the RJE routeback system MAY support routeback based on 9the job's formname, in addition to jobname and room-code.G SEND V2.0 Release Notes Page 4RJE Routeback logfile.KA logfile is maintained for each routeback account. Each routeback attemptKcauses an entry to be placed in this logfile. The logfile file name is theJusername of the routeback account and the file type is RJELOG. IndividualKsites may choose to rename the logfile on a daily or weekly basis. If the Jlogfile does not exist, it is automatically created. Each entry consists of the following:Column Contents..../ 1-16 Date/time stamp in form YYYY-MM-DD HH:MM.(18-25 The JCL jobname of the RJE output.426-29 Contents of the ROOM field in the banner line.330-37 The form-type associated with the RJE output.E38-42 Defines the action performed (PRINT, SPOOL, FILE, MAIL, BATCH).I43-80 The information used for routeback of the output. Contents varies ! based upon the action performed:! Action Contents/meaning of fieldD ------ ------------------------------------------------------------> PRINT Print queue used (no routeback records existed for this" job, so it printed by d Y$ SEND020.A!# <[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND020.RELEASE_NOTES;34 efault).C SPOOL Username, followed by a vertical line, followed by the user- specified print qualifiers.B FILE Username, followed by a vertical line, followed by the user- specified output file.A MAIL Username, followed by a vertical line, followed by the mail! address(es) specified by user.C BATCH Username, followed by a vertical line, followed by the user-1 specified file to be submitted as a batch job.0 Note that only first 38 characters will appear.A sample entry of each type:P1989-06-28 16:35 STDLABEL1234STD PRINTSYS$PRINT N1989-06-28 17:33 KENSRPT REP STD SPOOL REPORTS|/QUEUE=MPRO02_NW/FORM=WIDE3C1989-06-29 13:02 MONTHDATJJD STD FILE DOE_JJ|JOHNS_MONTHLY.RPTC1989-06-29 14:11 LIST PS STD MAIL DOE_JJ|SMITH_AB,JONES_CDE1989-06-30 20:24 HPAB01 1000STD BATCH SMITH_AB|FORMAT_REPORT.COMONote that jobname/room are the fields used to determine the routeback location.LWhen customizing ROUTE_PRINT.COM, you can insert messages into the log file Bby calling the subroutine LOG_EVENT with the following parameters: MaxCParam Length Contents............................................. P1 8 Job-name P2 8 Form-name P3 4 Room? P4 5 Type of routeback (SPOOL,FILE,MAIL,BATCH,PRINT, or any site-specific entry)> P5 38 Output spec (queue-name if default printing happened)G SEND V2.0 Release Notes Page 5UNDOCUMENTED FEATURES.NIf the user identifier field in the banner contains "::", then an attempt willKbe made to mail the RJE output to that address. For example, if the bannerappears like the following:*A START JOB 1234 DEMODEMO 1 001 001 REMOTE12 NODE::USERNAME ROOM ABCD 1.00.00 PM 01 APR 89 R12.PR1 SYSA START A*>The RJE output will be mailed (via VMSmail) to NODE::USERNAME. RESTRICTIONS.EThe use of the /REMOTE qualifier when specifying BATCH as the output >destination is not supported and will cause routeback failure.DChanges made in the banner produced by the IBM RJE system may cause Krouteback failure. The command file looks for the word ROOM to locate the Droom identifier. If the word ROOM is removed from the banner, then routeback failures will occur.FOnly one output specifier may be given. A future release may contain Fsupport for multiple output specifiers. However, when multiple outputFis required, BATCH output can be used to perform multiple actions withthe RJE output file.5*[SYSMGR.RJE.SEND.V020.DECUS.SEND.KIT]SEND_ENTER.OBJ;1+,[./ 4F-# 0123KPWO56t;7^^89GHJ>SEND_ENTER$MAINV2.0-219-JAN-1990 11:52 VAX BASIC V3.31SEND_ENTER$MAINSEND_ENTER$MAINP$PDATAj $CODE$ARRAY$DESCRBX SEND_ENTER$MAIN OTS$LINKAGE BAS$LINKAGEBAS$POS BAS$RIGHT BAS$INIT_R8BAS$INIT_GOSUB BAS$END_R8BAS$END_GSB_R8 STR$CONCATBAS$EDITBAS$LEFT LIB$ICHARBAS$MID BAS$STRINGBAS$ERRBAS$ERLBAS$ERT BAS$RESUME BAS$INPUT BAS$PRINT BAS$IO_END BAS$IN_T_DX BAS$OUT_L_V_BBAS$OUT_T_DX_SBAS$OUT_T_DX_BBAS$OPEN BAS$CLOSE BAS$GET_KEYBAS$PUT BAS$DELETE STR$COPY_R_R8STR$COPY_DX_R8 SYS$GETTIMLIB$SYS_TRNLOG GET_INITIALS LIB$GETJPI CLI$_ABSENT CLI$_CONCAT CLI$_COMMA SS$_NORMAL JPI$_CURPRIV JPI$_USERNAME CLI$GET_VALUE CLI$PRESENTPc\Xccc SEND_ENTER  at line%SEND-E-UNEXPECTERR, unexpected error -%SEND-I-NOACTION, no action taken - command aborted (%SEND-I-ENTRYENTERED, following entry entered%SEND-W-PRVENTOVER, previous entry has been over-riddenNAnswer YES to OVER-RIDE this entry Output = ) (Notification = Jobname = Initials = Username = SYS$LOGIN@BATCH//QUEUE=SYS$PRINTSPOOL#"MAILFILEOUTPUT%SEND-W-NONOTIFY, notification ignored when username=**NOTIFYCONFIRMLOG room%SEND-F-NOPRIV, no privilege for attempted operationusername' greater than 8 characters%SEND-F-JOBNAMELONG, jobname 'JOBNAMEsys$manager:snarje_routeback.datSYSPRVTT:Y R %L|@g'o''5$'s' 8J BJ N T PuZ46     zih ]g";7-3'zrPϞRPPQ BAS$INIT_R8؞s Џҫ LIB$ICHARP#'+/2QR~P STR$COPY_R_R8Ы3Ы7߫; JPI$_USERNAMEߩ LIB$GETJPIݏBAS$EDIT߫? JPI$_CURPRIVߩ LIB$GETJPIBAS$POSP\\ԫCC2 QR~P STR$COPY_R_R82QR~P STR$COPY_R_R8 CLI$GET_VALUEWέƢ,K"QW7HNȜ/._axmؽGGMmvԠCFW Y݆&PcAOE"k@}C|%8ܹ7"0AX #fj1"3dX%D kjj by>`v@"#}GhJ_s6P]PY[1P#๜r.{LL${=G+FD~daWfaktN,7; 'Qə;E'7FdV1QAa)J7 N|pj}>a{tcW/`d8}YF"P LV}X|̍}T$/ӶnN ww(;N-7_^%$XT㦅^VȀ NléОJ,\WUg[_eeJ0yM RND9N vr2΀1,K^&b.u<03} d zȪjlSJar~\qk S|n{TDO hn& #p@BhXO^-g U_E[D3tci~"8[e$U`(+J;h(Dqϐu.L֎M-ps|sC4)OQ!+H Nu~&AѾ˅!'LRyYw%ĬES, ŧtDDfSeBdg~o1IxnSE埁 QmP/voHR'DqD9 E1J![Gv+  ]Fa,6x!3):>r! 9 ''Ec8Ԗ),=<'7|41g-1o7gYni%nY#OH˸RIySPRտ)QYtOHT=XسBh^r\oVRV#Mh}f ;! %<5}y c KfjxϿ8YqDTj&r"+:g|Nh7lپY~)8װ y04j;qǎH\%Elv坝1MHZzIW QnQ'M6A@.%5Q4oCʏJpr6AHH.I%=m xʔ-/ Fm=6 }M)2caF-YS,kTwC##H;eY"?fL ,(`_djq;L9sC\`yl"]]zªny3:&BW7jd~[L |h|ia Tl=$o@H[g'z WR=N\=cS(!`s/;|%$ N9!H5o=d]}zzuF`Up(Qyf2( 9#m:`8LLrNEȎhqlE}M9ũ@IτUi 7ha |<(k!;cLrLw`|X-*;RNA$OM=siCkBpGIaAb Wt 2wN's/j aAfDA,1\|5jU$&9tJ$l3mSkNe%w._+ >C΀ư1 peQl(QLWR9\6*<%ܿp쥩AZRy)`t9\#<&R8 SMSn9E@ھ4p{ (5Gc*haM]pL6X@G.aRFT^GuVZD~7s#8YBlI#JOaB('[5(B|x|l1q׉JT||4)&_[/H|$yF/a9 }@_T*:ć x84'RhWF?lnѮ(H" Fs'h_!r "Bn%t%|ҳy)Y2MUp=L{<7[k>4 "ۦԾ`uڇܘϽHH %*ʛ?VAM鵱Jp0'  'ivoyDy(Ɨ 睙G; Uk)j1}ï?kx3gՋ@y|(D] ApZ]dv'?.z)sp(bе%`TRE!ZTyr"ql 8fq/;P-ғ=}C˽jkyrhH) 筴'|^0ytJOT- ACKw7W/EP)zdi~S2tykK|keJy@5W7,`.1_I3ZE+JmK̛-ް-5NMhX!A};yk@nf%NYbpFVT{/,n TDnΛZ>.B6 >no5oPfgFrS4 } i#HVl?H_R"!+jR\%yJ#q@LqxmdZoK^1E /v) ʆS{W 9`MSSE.2MngWǞHS>}091hX#@BRi,-+09Ʀ¥Gg&gR\[mnOW=7K*&=;N.I] lNMF@q[S)bN\Se'd=Yy b*S[FkW]n]ݯP||T#g0V-q1n"o+Xp\LaԮKz&RF2gKV W᥇L1H4])\3Iz zC BtIu '#4:l,,d2w!CSiyV™5/<6g?y M+u\lRG;}lX"c){@8&?tg=f_ 9N BCSJ30:o>sQ=1˚oQgik/|,pac3f- ]I3((T>0)bY+,vx3b.A|,e{5RA;36)NiSyPT.D ^!sNe'B 1$'rsc8&ip2#KEoxZ0li4Bd=jYZBɖ椛) 9VӒ$ E>mk\f j AODwN9ern(Q< oIn[w"0 r\kZIrܓt 9/tl vt+cXF!i7T:d8`SQ K0;e`ajcb ?* +}\C~GkW*6*jE_w*,Sc=;ќt72c Q6vXX;ƽPIn5Iy;N5@"bDEA] ;)t)ju?o,*s^*+i6.pCh,a*?()]v`78wE'-&8D 2;XDi8ԝ @,0! 'ZfȇzM#t@=_EsY?(>\<>q Q;J~`5T殖=m7w̤coqovO(EsXc*7r)-.:לE2k續h=n"%ǯ!#-ƃXTIYʙq YKQ 7H`_$M3jZLO.V:qe\zYP%P0UaKZ]80b]YnWܿ\.F >Vt~BDsG+E*g'%" N1 2F{ EDOUN'4!vw?2F"##bs{$ ,+k[1:1 5|/q{"η6І\~11J `-JJމ*Q 0pb2ǎW H KBfAǙ눏mew@+JC P(CkIYnIakOΈ$Ӕ7?=@KgRӰ\Э% ';34q6#7FaTh`-ؙ^.j:,Yf9kgY:F ؟Oq@&>1Mνd쬣h >@y!'@N3+:ӄq% c'&>rXL;r%} *6aFp:#a2T[0xy~W tv\"ifB.RbfN-l1좎;ZX'lo{U) W뢷,~NMl,7E +kp>km~ч &<"~zodɴ/@:xp95< mw8g:,g=5@3$5O)wI2YrKԃ.h"qbkP)Q8ߑn̗&]6 8쪍.> Hh82Qτ YY0IFe6^ V\.sL,⃷wٸ U]-4V)G˖& ;$KP}ׂlHl"(hk؅Sjx Oǡ:? ;W?:YVe8|/9VYӖiLXVǡWn~ouoOMa7z˃5!W\? *txE+6pJvL!3g >0W[I\><AABt ɉoƨ㞙 8VTf#@}PGT!%mYdn`7+o.QU19+ h TlOAJ]ٮ{HOoTE˅!!L.6 z BM2Fn'~@퐓C[P9PP= %"J;WvtaM66ulM-BgPUKJ"rg1y~e,|{` z@YX*}T-ڏ0ed=@R_>u zu(⸷gh:#+=i ')- e = sys$getuai(,,username,%ref(uai_list),,,) if (e.eq.%loc(ss$_normal)) then defdev_l = ichar(defdev) defdir_l = ichar(defdir) defdev = defdev(2:defdev_l+1) defdir = defdir(2:defdir_l+1)1 e = sys$fao('!%U',outlen,outbuf,%val(full_uic))%! type 9000, username, group, member)! type 9030, defdev_l,defdev(1:defdev_l))! type 9030, defdir_l,defdir(1:defdir_l)(! type 9020, username, outbuf(1:outlen)2 e = lib$set_symbol('USERS_UIC',outbuf(1:outlen))4 e = lib$set_symbol('USERS_DEV',defdev(1:defdev_l))4 e = lib$set_symbol('USERS_DIR',defdir(1:defdir_l))! else! type *, 'No such username' end if!9000 format ( 1x,a14,2o5 )!9010 format (a12)!9020 format ( 1x,a14,1x,a15 )!9030 format (1x,i3,a) call exit end'*[DECUS_KITS.SEND.SRC]GET_INITIALS.BAS;1+,N ./ 4:-# 0123KPWO56$7\ 89`"nP GHJ*1 sub get_initials( username$, initials$ ): ! Convert username to initials using following algorithm: ! ! Username$ Initials$ ! SMITH_AB "ABS " ! SMITH_A "AS " ! SMITH "SMI " !$ ! Four character initials reserved.- t% = pos(username$,"_",1%) ! find underscore if t% then: t$ = seg$(username$,t%+1%,t%+2%) + seg$(username$,1%,1%) else t$ = seg$(username$,1%,3%) end if t$ = edit$(t$,255%)$ initials$ = t$ + space$(4%-len(t$)) end sub"*[DECUS_KITS.SEND.SRC]RJECOPY.BAS;1+, . / 4H -# 0123KPWO 56G,̒7g 89`"nP GHJ1 %ident "V2.0"10 ! Modification history8 ! V1.1 PFS Change handling of lines ending in .1 ! Previously we'd buffer the line and wait for1 ! a line with . This was causing loss- ! of last line of file since it ended with ! ---text--- ! , ! Now we process it in the same manner as3 ! , but then output a on next line.) ! V1.2 PFS Added support for /NOFORMFEED7 ! Fixed problem w/ at bottom of page causing ! blank line to appear.B ! V1.3 PFS 14-Jun-1989 Changed output method from PRINT to PUT to. ! handle problem w/ records longer than 132/ ! V2.0 PFS 25-Oct-1989 Version changed to 2.08850 external integer function cli$present, cli$get_value900 map (xx) l$=255% map (xx) byte b(254%)1 map (yy) o$=767 ! 255 + + 255 + + 2551000 on error goto 19000 true% = (1%=1%) false% = not true%(1050 if cli$present("INPUT") and 1% then) call cli$get_value("INPUT",input_file$) end if% if cli$present("OUTPUT") and 1% then+ call cli$get_value("OUTPUT",output_file$) end if# if cli$present("TRIM") and 1% then+ call cli$get_value("TRIM",lines_to_trim$)' lines_to_trim% = val%(lines_to_trim$) end if$ if cli$present("STRIP") and 1% then strip% = true% else strip% = false% end if& if cli$present("NONULLS") and 1% then nonulls% = true% else nonulls% = false% end if) if cli$present("NOFORMFEED") and 1% then noformfeed% = true% else noformfeed% = false% end if;1100 open input_file$ for input as file #1%, access read, &- organization sequential variable, map xx, & recordtype none plain_file% = false% goto 1110;1105 open input_file$ for input as file #1%, access read, &* organization sequential variable, map xx plain_file% = true%01110 open output_file$ for output as file #2%, &% organization sequential variable, & recordtype list, & map yy t$ = "" ! overstrike line1150 if strip% then get #1%& while pos(left(l$,recount),ff,1%)=0% get #1% next end if 1200 get #1% l% = recountF if strip% and seg$(l$,1%,1%)="*" and seg$(l$,4%,12%)=" END JOB" then t$ = "" goto 8000 end if if nonulls% then for i% = 0% to l%-1% if b(i%)=0% then b(i%) = 32 end if next i% end if if plain_file% then let o$ = left(l$,l%) put #2%, count l% goto 1200 end if; ! Handle lines ending in - means following line is an ! overstrike, so just save it if b(l%-1%)=13 then- b(i%) = 32 if b(i%)<32 for i% = 0% to l%-2% t$ = t$ + left(l$,l%) goto 1200 end if< ! Handle lines ending in - These are routine lines$ if b(l%-2%)=13 and b(l%-1%)=10 then- b(i%) = 32 if b(i%)<32 for i% = 0% to l%-3% if lines_to_trim%<=0% then let o$ = t$ + left(l$,l%-2%)# put #2%, count len(t$) + l% - 2% else' lines_to_trim% = lines_to_trim% - 1% end if t$ = "" goto 1200 end ifC ! Handle lines ending in - handle similar to lines ending7 ! in except that we put a FF on the next line$ if b(l%-2%)=13 and b(l%-1%)=12 then- b(i%) = 32 if b(i%)<32 for i% = 0% to l%-2% if lines_to_trim%<=0% and & ( len(t$) > 0% or l%>2% ) then let o$ = t$ + left(l$,l%-2%)# put #2%, count len(t$) + l% - 2% else' lines_to_trim% = lines_to_trim% - 1% end if4 ! Don't output formfeeds if they don't request them if not noformfeed% then let o$ = ff put #2%, count 1 end if t$ = "" goto 1200 end ifH print "Unknown terminator - Please report following to system support." print "Length =";l%$ print b(i%); for i% = 0% to l% - 1% print goto 1200:8000 if len(t$) then ! just in case we have something left let o$ = t$ put #2%, count len(t$) end if close #1% close #2% goto 3276719000 resume 8000 if err=11% e$ = ert$(err) if erl=1100% then resume 1105 end if if erl=1105% then1 print "Can't open input file '";input_file$;"'" print "Reason: ";e$ resume 32767 end if if erl=1110% then3 print "Can't open output file '";output_file$;"'" print "Reason: ";e$ close #1% resume 32767 end if+ print "Unknown error detected at line";erl print "Error was: ";e$$ print "Input file was ";input_file$& print "Output file was ";output_file$> print "Please report this information to the system manager." resume 32767 32767 end*[DECUS_KITS.SEND.SRC]SEND.BAS;1+,@L./ 4Ir-# 0123KPWO56LP̒7 89`"nP GHJ1 %ident "V2.0"10 ! SEND.BAS, ! V1.1-00 18-Mar-1988 PFS Added support for" ! /output=mail="address-list"* ! Added ident for image identification9 ! V1.1-01 21-Mar-1988 PFS Remove leading/trailing " from ! mail address= ! V1.1-02 15-Apr-1988 PFS Added support for 3rd reader queue. ! V2.0 25-Oct-1989 PFS Changed version to 2.08850 external integer function cli$present, cli$get_value external integer jpi$_usernameB external integer ss$_normal, cli$_comma, cli$_concat, cli$_absent map (x) quadtime$ = 8% map (x) hfloat clock- map (rb) ij$ = 12%, ! initials + jobname &! username$ = 12%, ! username &( defdir$ = 79%, ! default directory &' userfile$ = 128%, ! output target &. edate$ = 8%, ! entry date (VMS internal) &$ notify$ = 1% ! Y if notification map (rb) this_initials$ = 4%, & this_jobname$ = 8%1000 on error goto 19000 version$ = "V1.1-02" true% = (1%=1%) false% = not true% yes% = ascii( "Y" ) ! Abort codespUcp)~ SEND_PKG.BCK@L# [DECUS_KITS.SEND.SRC]SEND.BAS;1I none% = 1% invalid_jobname% = 2% no_initials% = 4% unmatched_initials% = 6% ! Set default settings list_file$ = "TT:" confirm_it% = false% log_it% = false% 1100 ! ! Get username !6 call lib$getjpi( loc(jpi$_username),,,,curruser$,ul%) ! ! Define route-back file !. rb_file$ = "sys$manager:snarje_routeback.dat" ! ! Handle routine command !7 ! send filename {/username=...} {/temporary} {/notify}9 ! /output=file=... | /output=( {spool=...,} {form=...} ) != curruser$ = left(curruser$ + space$(12%-len(curruser$)),12%)) call get_initials( curruser$, currinit$) temporary% = false%( if cli$present("temporary") and 1% then temporary% = true% end if& log_it% = (cli$present("LOG") and 1%) after$ = ""$ if cli$present("AFTER") and 1% then, cond_code% = cli$get_value("AFTER",after$)$ after$ = '/after="' + after$ + '"' end if, delete_it% = (cli$present("DELETE") and 1%)/ debug% = ((cli$present("DEBUG") and 1%) <> 0%) queue$ = "snarje$reader"$ if cli$present("QUEUE") and 1% then, cond_code% = cli$get_value("QUEUE",queue$) end if select queue$ case "1" queue$ = "snarje$reader" case "2" queue$ = "snarje$reader2" case "3" queue$ = "snarje$reader3" case else queue$ = "snarje$reader" end select !C ! First, get the file(s) specified. We need the name of the first8 ! in order to get the jobname from the // ... JOB card. ! jcl_file$ = ""& if cli$present("JCLFILE") and 1% then* cond_code% = cli$get_value("JCLFILE",t$) first_file$ = t$% while cond_code% <> loc(ss$_normal) select cond_code% case loc(cli$_comma)$ jcl_file$ = jcl_file$ + t$ + "," case loc(cli$_concat)$ jcl_file$ = jcl_file$ + t$ + "+" end select+ cond_code% = cli$get_value("JCLFILE",t$) next jcl_file$ = jcl_file$ + t$ end if ! Get output file (if any) output_file$ = "" print_qual$ = "" output_selected% = false% output_to_file% = false% output_to_queue% = false% output_to_mail% = false%% if cli$present("OUTPUT") and 1% then output_selected% = true%$ if cli$present("FILE") and 1% then* call cli$get_value("FILE",output_file$) output_to_file% = true% end if$ if cli$present("MAIL") and 1% then+ call cli$get_value("MAIL",address_list$)& if left(address_list$,1) = '"' then+ address_list$ = right(address_list$,2%) end if l% = len(address_list$)( if right(address_list$,l%) = '"' then- address_list$ = left(address_list$,l%-1%) end if output_to_mail% = true%& address_list$ = "#" + address_list$ end if% if cli$present("SPOOL") and 1% then* call cli$get_value("SPOOL",print_qual$) output_to_queue% = true%8 print_qual$ = mid(print_qual$,2%,len(print_qual$)-2%)3 print_qual$ = "/QUEUE=SYS$PRINT" + print_qual$ & if left(print_qual$,1%)<>"/" end if end if ! Get notify qualifier) notify% = (cli$present("NOTIFY") and 1%) 1200 abort% = none%6 cmnd$ = "submit/sna/noprint/queue=" + queue$ + after$% cmnd$ = cmnd$ + "/notify" if notify%& cmnd$ = cmnd$ + " " + jcl_file$ + " "( cmnd$ = cmnd$ + "/delete" if delete_it% if output_selected% then+ open first_file$ for input as file #1%, & access read, & defaultname ".JCL"/ linput #1%, l$ ! Find the first card with // while left(l$,2%)<>"//" linput #1%, l$ next, t% = pos(l$," ",1%) ! Look for first space if t% then jobname$ = seg$(l$,3%,t%-1%) else jobname$ = "output" end if/ abort% = invalid_jobname% if len(jobname$)>8% job_initials$ = ""0 t% = pos(l$,"(",1%) ! find opening parenthesis) t1% = pos(l$,",",t%) ! find first comma+ t2% = pos(l$,",",t1%+1%)! find next comma2 t3% = pos(l$,")",t1%+1%)! find close parenthesis6 if t3%currinit$ then abort% = unmatched_initials% end if end if if abort%=none% then2 gosub 10000 ! Put jobname into route-back queue end if close #1% end if 1300 select abort% case none%$! print "Command executed: ";cmnd$+ call lib$do_command(cmnd$) if not debug% case invalid_jobname%I print "%SEND-E-BADJOBNAME, jobname too long or not properly specified" case no_initials%; print "%SEND-E-NOINITIALS, missing initials on JOB card" case unmatched_initials%> print "%SEND-E-NOTSAMEINIT, initials on JOB card are wrong" case else- print "%SEND-E-UNKNOWNERR, error #";abort% end select goto 32767 10000 !" ! Make Entry into routeback queue !, call lib$sys_trnlog( "SYS$LOGIN",,def_dir$); call sys$gettim(clock) ! use quadtime for the system time' open rb_file$ for input as file #1%, & access modify, & allow modify, & map rb, & organization indexed fixed, & primary key ij$, & recordtype any2 newjobname$ = jobname$ + space$(8%-len(jobname$))! newij$ = currinit$ + newjobname$10010 over_ride% = false% get #1%, key #0 eq newij$ if confirm_it% then print print "Username = ";username$$ print "Initials = ";this_initials$& print " Jobname = ";this_jobname$; &" " (Notification = ";notify$;")"0 print " Output = ";edit$(userfile$,2%+4%+32%) print1 input "Answer YES to OVER-RIDE this entry";ans$, if ( ascii(edit$(ans$,255%)) = yes% ) then delete #1% else close #1% goto 10099 end if else delete #1% end if over_ride% = true%10020 ij$ = newij$ defdir$ = def_dir$ username$ = curruser$ if output_to_file% then userfile$ = output_file$ end if if output_to_queue% then userfile$ = print_qual$ end if if output_to_mail% then userfile$ = address_list$ end if clock = 0.0 if temporary% edate$ = quadtime$ if notify% then notify$ = "Y" else notify$ = "N" end if put #1% close #1%B print "%SEND-W-PRVENTOVER, previous entry has been over-ridden" & if over_ride% if log_it% then7 print "%SEND-I-ENTRYENTERED, following entry entered"7 print "Username = ";curruser$;" (";this_initials$;")"& print " Jobname = ";this_jobname$; &" " (Notification = ";notify$;")"0 print " Output = ";edit$(userfile$,2%+4%+32%) end if 10099 return 19000 e% = err e1% = erl e$ = ert$(e%) resume 19010 19010 goto 10020 if e1% = 10010% if e1%=1200% then if e%=11% then abort% = no_initials% goto 1300 else+ print "%SEND-E-FNF, can't open JCL file" goto 32767 end ifG19990 print "%SEND-E-UNEXPECTERR, unexpected error -";e$;" at line";e1% goto 32767 32767 end%*[DECUS_KITS.SEND.SRC]SEND_ENTER.BAS;1+,./ 4O0-# 0123KPWO56WDEΒ7 89`"nP GHJ10 %ident "V2.0-2"/20 ! V1.1 - PFS Added support for /OUTPUT=MAIL=1 ! V1.2 - PFS Added support for /ROOM=4-char-room0 ! Added (beta-test) support for /OUTPUT=BATCH=. ! V1.3 - PFS Default MAIL address to usernameB ! V1.4 - PFS Fixed problem w/ /ROOM=.... not always being 4 bytes? ! V2.0 - PFS Added requirement that user must hold OPER to use" ! /USERNAME & /ROOM qualifiers.> ! V2.0-1 PFS Added separate handler for error on confirmation8 ! Otherwise, it CTRL/Z looks like record didn't exist.3 ! V2.0-2 PFS Check jobname for 8 character maximum2 ! V2.0-3 PFS Changed required privilege to SYSPRV !8850 external integer function cli$present, cli$get_value external integer jpi$_username external integer jpi$_curprivB external integer ss$_normal, cli$_comma, cli$_concat, cli$_absent map (x) quadtime$ = 8% map (x) hfloat clock- map (rb) ij$ = 12%, ! initials + jobname &! username$ = 12%, ! username &( defdir$ = 79%, ! default directory &' userfile$ = 128%, ! output target &. edate$ = 8%, ! entry date (VMS internal) &$ notify$ = 1% ! Y if notification map (rb) this_initials$ = 4%, & this_jobname$ = 8%1000 on error goto 19000 true% = (1%=1%) false% = not true% yes% = ascii( "Y" ) ! Abort codes none% = 1% invalid_jobname% = 2% no_username% = 4% unmatched_username% = 6% ! Set default settings list_file$ = "TT:" confirm_it% = false% log_it% = false% 1100 ! ! Get username !6 call lib$getjpi( loc(jpi$_username),,,,curruser$,ul%) t$ = edit$(curruser$,255%) != ! Get current privileges.. must have SYSPRV to use /USERNAME !4 call lib$getjpi( loc(jpi$_curpriv),,,,curpriv$,pl%), sysmgr% = (pos(curpriv$,"SYSPRV",1%) <> 0%) ! ! Define route-back file !. rb_file$ = "sys$manager:snarje_routeback.dat"  !@ ! Process send/enter jobname {/username=....} {/log} {/confirm}9 ! /output=file=... | /output=( {queue=...,} {form=...} ), ! One of the two /output forms is required.6 call cli$get_value("JOBNAME",jobname$) ! MUST have it if len(jobname$) > 8% thenO print "%SEND-F-JOBNAMELONG, jobname '";jobname$;"' greater than 8 characters" goto 32767 end if) if (cli$present("username") and 1%) then if sysmgr% then+ call cli$get_value("username",curruser$) else? print "%SEND-F-NOPRIV, no privilege for attempted operation" goto 32767 end if end if= curruser$ = left(curruser$ + space$(12%-len(curruser$)),12%)= ! If we get a /ROOM=, then over-ride the default initials by6 ! setting the initials to the value given. Note thatA ! the default is limited to 3 characters, while /ROOM= allows 4.' call get_initials(curruser$,initials$)% if (cli$present("room") and 1%) then if sysmgr% then# call cli$get_value("room",room$)< initials$ = left(room$+" ",4%) ! Make sure it's 4 bytes else? print "%SEND-F-NOPRIV, no privilege for attempted operation" goto 32767 end if end if& log_it% = (cli$present("LOG") and 1%). confirm_it% = (cli$present("CONFIRM") and 1%)) notify% = (cli$present("NOTIFY") and 1%)" if curruser$="*" and notify% then notify% = false%B print "%SEND-W-NONOTIFY, notification ignored when username=*" & if log_it% end if ! Get output file output_file$ = "" print_qual$ = "" output_selected% = false% output_to_file% = false% output_to_mail% = false% output_to_queue% = false% output_to_batch% = false%% if cli$present("OUTPUT") and 1% then output_selected% = true%$ if cli$present("FILE") and 1% then* call cli$get_value("FILE",output_file$) output_to_file% = true% end if$ if cli$present("MAIL") and 1% then+ call cli$get_value("MAIL",address_list$) if len(address_list$)=0% then address_list$ = curruser$ end if& if left(address_list$,1) = '"' then+ address_list$ = right(address_list$,2%) end if l% = len(address_list$)( if right(address_list$,l%) = '"' then- address_list$ = left(address_list$,l%-1%) end if output_to_mail% = true%& address_list$ = "#" + address_list$ end if% if cli$present("SPOOL") and 1% then* call cli$get_value("SPOOL",print_qual$) output_to_queue% = true%8 print_qual$ = mid(print_qual$,2%,len(print_qual$)-2%)3 print_qual$ = "/QUEUE=SYS$PRINT" + print_qual$ & if left(print_qual$,1%)<>"/" end if% if cli$present("BATCH") and 1% then- call cli$get_value("BATCH",batch_command$) output_to_batch% = true% batch_command$ = &3 mid(batch_command$,2%,len(batch_command$)-2%) &" if left(batch_command$,1%)='"'( batch_command$ = "@" + batch_command$ end if end if gosub 100008000 goto 32767 10000 !" ! Make Entry into routeback queue !, call lib$sys_trnlog( "SYS$LOGIN",,def_dir$); call sys$gettim(clock) ! use quadtime for the system time! print "RB_FILE = ";rb_file$' open rb_file$ for input as file #1%, & access modify, & allow modify, & map rb, & organization indexed fixed, & primary key ij$, & recordtype any2 newjobname$ = jobname$ + space$(8%-len(jobname$))! newij$ = initials$ + newjobname$10010 over_ride% = false% get #1%, key #0 eq newij$10015 if confirm_it% then print print "Username = ";username$$ print "Initials = ";this_initials$& print " Jobname = ";this_jobname$; &" " (Notification = ";notify$;")"0 print " Output = ";edit$(userfile$,2%+4%+32%) print1 input "Answer YES to OVER-RIDE this entry";ans$, if ( ascii(edit$(ans$,255%)) = yes% ) then delete #1% else close #1% goto 10099 end if else delete #1% end if over_ride% = true%10020 ij$ = newij$ defdir$ = def_dir$ username$ = curruser$ if output_to_file% then userfile$ = output_file$ end if if output_to_queue% then userfile$ = print_qual$ end if if output_to_batch% then userfile$ = batch_command$ end if if output_to_mail% then userfile$ = address_list$ end if clock = 0.0 if temporary% edate$ = quadtime$ if notify% then notify$ = "Y" else notify$ = "N" end if put #1% close #1%B print "%SEND-W-PRVENTOVER, previous entry has been over-ridden" & if over_ride% if log_it% then7 print "%SEND-I-ENTRYENTERED, following entry entered"7 print "Username = ";curruser$;" (";this_initials$;")"& print " Jobname = ";this_jobname$; &" " (Notification = ";notify$;")"0 print " Output = ";edit$(userfile$,2%+4%+32%) end if 10099 return 19000 e% = err e1% = erl e$ = ert$(e%) resume 19010 19010 goto 10020 if e1% = 10010% if e1% = 10015% then= print "%SEND-I-NOACTION, no action taken - command aborted" goto 8000 end ifG19990 print "%SEND-E-UNEXPECTERR, unexpected error -";e$;" at line";e1% goto 32767 32767 end(*[DECUS_KITS.SEND.SRC]SEND_INITIALS.BAS;1+, ./ 4@-# 0123KPWO56 3p̒7Q(89`"nP GHJ10 %ident "V2.0" 20 ! V1.0 - PFS Original version) ! V1.1 - PFS Added support for /USERNAME) ! V2.0 - PFS 25-Oct-1989 Changed to V2.0"850 external integer jpi$_username5 external integer function cli$present, cli$get_value1000 ! ! Get username !6 call lib$getjpi( loc(jpi$_username),,,,curruser$,ul%)) if (cli$present("username") and 1%) then* call cli$get_value("username",curruser$) end if= curruser$ = left(curruser$ + space$(12%-len(curruser$)),12%)' call get_initials(curruser$,initials$)@ print "%SEND-I-ROOMCODE, initials (room code) for username "; & curruser$; " = "; initials$ 32767 end&*[DECUS_KITS.SEND.SRC]SEND_REMOVE.BAS;1+,./ 4G:-# 0123KPWO 56 e%EΒ7@jK89`"nP GHJ10 %ident "V2.0"A20 ! V2.0 - PFS Added requirement that user must hold OPER to use" ! /USERNAME & /ROOM qualifiers.3 ! V2.01-1 PFS Changed privilege required to SYSPRV8850 external integer function cli$present, cli$get_value external integer jpi$_username external integer jpi$_curprivB external integer ss$_normal, cli$_comma, cli$_concat, cli$_absent map (x) quadtime$ = 8% map (x) hfloat clock- map (rb) ij$ = 12%, ! initials + jobname &! username$ = 12%, ! username &( defdir$ = 79%, ! default directory &' userfile$ = 128%, ! output target &. edate$ = 8%, ! entry date (VMS internal) &$ notify$ = 1% ! Y if notification map (rb) this_initials$ = 4%, & this_jobname$ = 8%1000 on error goto 19000 true% = (1%=1%) false% = not true% yes% = ascii( "Y" ) ! Abort codes none% = 1% invalid_jobname% = 2% no_username% = 4% unmatched_username% = 6% ! Set default settings list_file$ = "TT:" confirm_it% = false% log_it% = false% 1100 ! ! Get username !6 call lib$getjpi( loc(jpi$_username),,,,curruser$,ul%) != ! Get current privileges.. must have SYSPRV to use /USERNAME !4 call lib$getjpi( loc(jpi$_curpriv),,,,curpriv$,pl%), sysmgr% = (pos(curpriv$,"SYSPRV",1%) <> 0%) ! ! Define route-back file !. rb_file$ = "sys$manager:snarje_routeback.dat"  !A ! Process send/remove jobname {/username=....} {/log} {/confirm} !6 call cli$get_value("JOBNAME",jobname$) ! MUST have it) if (cli$present("USERNAME") and 1%) then if sysmgr% then+ call cli$get_value("USERNAME",curruser$) else? print "%SEND-F-NOPRIV, no privilege for attempted operation" goto 32767 end if end if= curruser$ = left(curruser$ + space$(12%-len(curruser$)),12%)& log_it% = (cli$present("LOG") and 1%). confirm_it% = (cli$present("CONFIRM") and 1%)( call get_initials(curruser$, initials$)% if (cli$present("room") and 1%) then if sysmgr% then# call cli$get_value("room",room$)< initials$ = left(room$+" ",4%) ! Make sure it's 4 bytes else? print "%SEND-F-NOPRIV, no privilege for attempted operation" goto 32767 end if end if gosub 11100 goto 32767 11100 ! ! remove entry !' open rb_file$ for input as file #1%, & access modify, & allow modify, & map rb, & organization indexed fixed, & primary key ij$, & recordtype any/ jobname$ = jobname$ + space$(8%-len(jobname$)) jobname$ = left(jobname$,8%),11110 get #1%, key #0% eq initials$+jobname$ delete_it% = false% if confirm_it% then print7 print "Username = ";username$;" (";this_initials$;")"& print " Jobname = ";this_jobname$; &" " (Notification = ";notify$;")"0 print " Output = ";edit$(userfile$,2%+4%+32%) print. input "Answer YES to delete this entry";ans$1 delete_it% = ( ascii(edit$(ans$,255%)) = yes% ) else delete_it% = true% end if if delete_it% then delete #1% if log_it% then8 print "%SEND-I-ENTRYREMOVED, following entry removed"8 print "Username = ";username$;" (";this_initials$;")"' print " Jobname = ";this_jobname$; &# " (Notification = ";notify$;")"1 print " Output = ";edit$(userfile$,2%+4%+32%) end if end if goto 11199;11120 print "%SEND-E-NORBENTRY, No routeback entry for "; & initials$;jobname$;" found." 11199 return 19000 e% = err e1% = erl e$ = ert$(e%) resume 19010 19010 goto 11120 if e1% = 11110%G19990 print "%SEND-E-UNEXPECTERR, unexpected error -";e$;" at line";e1% goto 32767 32767 end"*[DECUS_KITS.SEND.SRC]SEND_RT.BAS;1+,K. / 4M z-# 0123KPWO 56@U7@ p89`"nP GHJ1 %ident "V2.0-1"100 ! ! SEND_RT.BAS ! ! Invoked by SEND/RT command ! Lists routeback queue ! ! Modification History< ! 20-Feb-1988 PFS Added support for /FULL qualifier (V01.1)9 ! 27-MAY-1988 PFS Display initials from file rather than ! calculate from username.; ! 18-Jul-1988 PFS-01.3 Fixed missing channel from listings< ! 18-Jul-1988 PFS-01.4 Display true initials in heading and! ! display room in each entry.7 ! 20-Jul-1988 PFS-01.5 Take optional jobname parameter- ! 25-Oct-1989 PFS-2.0 Version changed to 2.0B ! 22-Dec-1989 PFS-2.0-1 Changed output from TT: to SYS$OUTPUT: to$ ! accomodate ALL-IN-1 subprocess !8850 external integer function cli$present, cli$get_value external integer jpi$_usernameB external integer ss$_normal, cli$_comma, cli$_concat, cli$_absent map (x) quadtime$ = 8% map (x) hfloat clock- map (rb) ij$ = 12%, ! initials + jobname &! username$ = 12%, ! username &( defdir$ = 79%, ! default directory &' userfile$ = 128%, ! output target &. edate$ = 8%, ! entry date (VMS internal) &$ notify$ = 1% ! Y if notification map (rb) this_initials$ = 4%, & this_jobname$ = 8%, & filler$ = 219%, & creation_date%(1%)1000 on error goto 19000 version$ = "V2.0-1" true% = (1%=1%) false% = not true% yes% = ascii( "Y" ) ! Abort codes none% = 1% invalid_jobname% = 2% no_username% = 4% unmatched_username% = 6% ! Set default settings list_file$ = "SYS$OUTPUT:" confirm_it% = false% log_it% = false% 1100 ! ! Get username !6 call lib$getjpi( loc(jpi$_username),,,,curruser$,ul%) ! ! Define route-back file !. rb_file$ = "sys$manager:snarje_routeback.dat"  !. ! Process send/rt {/all} {/list=listing_file} !( list_all% = (cli$present("ALL") and 1%)% full% = (cli$present("FULL") and 1%)# if cli$present("list") and 1% then' call cli$get_value("list",list_file$) end if) if (cli$present("username") and 1%) then* call cli$get_value("username",curruser$) end if all_jobnames% = true%( if (cli$present("jobname") and 1%) then, call cli$get_value("jobname",ind_jobname$) all_jobnames% = false% end if gosub 11000 goto 32767 11000 ! ! LIST routeback queue !' open rb_file$ for input as file #1%, & access read, & allow modify, & map rb, & organization indexed fixed, & primary key ij$, & recordtype any11010 if list_all% then get #1%, key #1 ge " "5 curruser$ = "ZZZZZZZZZZZZ" ! Last possible username else get #1%, key #1 eq curruser$ end if same_username% = true% last_username$ = ""* open list_file$ for output as file #2%, &$ defaultname "routeback_queue.lis" margin #2%, 132%, print #2%, "Listing of RJE routeback queue" while same_username%< if all_jobnames% or (ind_jobname$ = this_jobname$) then% if username$ <> last_username$ then) call get_initials(username$,initials$) ! initials$ = this_initials$ print #2%4 print #2%, "User = ";username$;" (";initials$;")" last_username$ = username$ end if, print #2%, " Jobname = ";this_jobname$; & " Room = ";this_initials$; & " Notification = ";notify$+ destination$ = edit$(userfile$,2%+4%+32%) select left(destination$,1%) case "/"L print #2%, " Output directed to print queue with following qualifiers:"! print #2%, " ";destination$ case "#"B print #2%, " Output will be mailed to following address(es):"+ print #2%, " ";right(destination$,2%) case "@"M print #2%, " Output directed to batch queue via following command file:"+ print #2%, " ";right(destination$,2%) case else9 print #2%, " Output will be sent to following file:"! print #2%, " ";destination$ end select if full% then: call lib$sys_asctim(,creation_date$,creation_date%(0%))? print #2%," Default Directory = ";edit$(defdir$,2%+4%+32%)1 print #2%," Creation date = ";creation_date$ print #2% end if end if get #1%6 same_username% = false% if username$ <> curruser$( same_username% = true% if list_all% next11020 close #1% close #2% 11099 return  19000 e% = err e1% = erl e$ = ert$(e%) resume 19010 19010 goto 11020 if e1% = 11010%G19990 print "%SEND-E-UNEXPECTERR, unexpected error -";e$;" at line";e1% goto 32767 32767 end`Cc~ SEND_PKG.BCK@L# [DECUS_KITS.SEND.SRC]SEND.BAS;1I2=1f&K _B=1uU0LW`w};ּ=sQz{$MALO+l:G^C#QLѺF#gmj@%?;DEpF39;WvU}~D{>K)yFk$'ul{6ĭ^Lx &lڎm ^VR'PiDQ,WH sYx`i sLz~/gAF Y 2&|)}e!cd vO G[^ 59) I(\md:"A\MW;\VET[8VPmQKo%["5F]wLucp)+}^>."@TG^3bʰR'&AKF@(G#WY,XA ks3yz%D}f'RDE@D iu|]wLIל8cN*vwo$,olO 1=iL3|g e7{ G7$' Rfe[@T0PTq9A=[fX_#; a~ oL0re[QVgE "gIZr{pQ  8h&m,1~F:!(k)_ Y^d^E{?8{(OG.wn"J@NGW 6 iql&l2RDm+gkT\5Ek ?RS\tpQGI oD`iB]SQNo_&I[\eL|jΜ.5=0f-vpV}QJ~ / E_\h[^NSKE*Xupyx[s| 'W^BA^J["'u >\qqfqmn{}Fi! u ($1N]X#Z#8Pzv4*_; q,cE>604OFR ;8TVx?1rnCk? Ylt9`qDlua1,f .gg,,(h2)yLzKM_&/4;'1m0WB7lz`>ev~!27u8b)7n?  7TAGq\!' n:}'b;vk+ :7h}-;oiG h xb uW TtTRDMPjh1gn|GwUcI _o70.wkR>F` ^[k$648gʍV]RX!;4=IdP"=fr>R 1c_Qp"9e(mE=Zt }L qI"d4md70dD [PRl{~}5#__@\*hV>npg8;X#WAIE/{&tevJ^E/jY9K%MA #G;8%%]sSL.-f2RaEq2tdNV^l4xnjP-^09@BeXRP#i-f1<|LnyeIJ-.&?4+`]ÃN6KV}mY@je"RM\; gk]PI,yO BX.,6q-.9p S.3,*SH S=8*x2Q#TYJ+s5AAa3^=;]@Csq9r%iQvq&^]LEuH   kZr*tMn*u){ibIP/x}-  XX[۴+dL32@d[INQ*HORp BGEIE5;G$3"kE.9&,>{onvWHĉӌ1t>E"(zoq!TFl7RCg/67͝z vg:7Bxl2?DJk6gWbC񳬴Ikc#36T8+e']bnk%!d< RCn!>" GV]g *z \3<#vh}}EOMusea}hTs~b H]) kfzazrC=$JU"JHBG^K0(= &Wr)}$'"ki2a${\yadse{aSO 4xmyhq:$)'bmjf-dD@)98;*^ mWv>c(a} t|n6re^,&HEY]kI|98+s-U.s Pi)g-q8 Q&x-g;J1qk]ojDB8'c!w]Jg 7 Q} _~WSj +BU5ZoA$bFsx@HV,Dl1LUux9xk*i3ECJ&eivZ,\lS8+> jPB TR?-Bx]?)m\-"99-{*Yx@?PN>Vcbg(56hjjw]bfr)A :H,5#W?r^ D>(&tWZKW'J^ܡ>Yc$=?3i R@i/e7T%-?&~=6b x,r nbqK~o,74%+ (t+wt&}fvuurldQunywk*< H\zrj$2bMxNvzq BBre$ZvX3%T-IA nGf/%vmQ/[n*g nPieZ%2P_*"$lRqWtp<6?g47T{p)+ (BppqwB^`o4?W4xL 2\'5>Ee0IEt};@J>qY[GVZq$4 Nzh]4O C{Q'OSuE$m(=Ud ^|cTIP(,f`I"Eѽ~rd q':y:g~4nOv H3+=dY(BS"Fߥ`9&V3a׌ݦ_ DJ3 Z*OkzK %2yp"IQRW]jmOvk}HO6vza tY~S[5/^Bxyo<' pa_XRX:2Z~#<1fJDIL8PEIw~~FXP[b5o%GTJ;I ;==^I}#DrRQ&O_QBbF_CVS\ʋLO na @_뭪tL魮㶂5滓ТƵVG ]ŭ{~2w"1K1GC/9/j9u7&o17)*0~|'>&Fo mNzWs{s$E S HCRmF s<YID[ZU _G^CSp):{_HgjKA^GQ hpipu~H +J"!rIrke}DUQPI_j$]>{HH?vO+R@*f"I # *|SNJ`Em5|cyd{AD8rH.{?U0ug oRhj# N-I[UJbe(u_slQmTQHEK M{>'T[NS{("'aL}(i= c=>-4h]+!D`X[GC[d{)/)$h^ lTIvg{xa|EP-&;` _/>gBQCٻ{A/7u CQYYNOQp:RutQJJ8vrzh~@EET"#nh^Am<`rver|G?3>)_Duq/|jZSl'kkh`-$qw5a8'[t~~p?poEr>!k XRMzqen*?xZv! cu>a3Xg"n"1|A{r#QBi D7~MkV'I?QNcp7FYJ-*q.oi~psTO@\ _~,eMCvD K`1)<-% %X;#)~xzz],!%8.\@Ls< SFLaP1%>/kv|h,kYcJjj+6m;H_JNO4QG ViM;_R^f6YtP^MRD40v0),bTt/t'9D ^vF sqxnZMKm]^-? oc$EO(/0)(lnf|$*h6? H7Im4V1>dbk>|h(FYRr kGTOB?mPSf?K!Z9OAOP_w t=*n3qzpc;/y/D\{dmjYUaF)|d+wvN]w 3yzMRik'`J.+R"Y& C i+ $Wln$J?&XpFg kt!xO<-:s(X9vjny<>\Hd &"F b p9fz<4rB^LOJh/jp'/C)#}6fh2OE%sXUZ7AYY/qLMDe$7JMU=>hRFSKQ g[ A7++/!oK7Xh&eO z;[TfpVOn\!ykWrI^hn15$6SGQ.p`ly-2"@gz[11\ ;'!DE#]I]ZMp3-VQ!t 3 MHfne+i<{(b?=r?-o w6j@H n08shbwLHKC)gd"P5 c%G`v@<0:Px&3' hi=yu .K-ngRT*-$6/(p#(+04+,yh 8/O6-2"e:~ >#tk +mYVBPfx%,0_l|dvcr-&u-BHSgETHsDI6dFTLQJb0X) 'UE;2gCOCT=Od05 Mis`?L+ywG B@Bdg%B2l}lDV$#j %rlnjjTbgor*>ohhYK6`F1M45c _X 0b+y!mw@BGCesCCsmSRhPC\rpjC@%6R*> f}OL JH| c7+3aAi"=gf1 r;3Rvi =b~soIfbT$Je<>%{RJ @|AB-ih)-YuH/&.2?,hBX'Uz=RPg|X}a'loUZ{vbR0ZbA,T="g w@B0c^=&&,)%0EsA\dn8nco?by l~~)`gkWGeeO5/5l7r\%i&{Fmx6v<&~; K|DM<. 6t@4; &WU5J@XԒj.T$>.?p[7z{`;.-%,,, #YEP)Qg\JS_!,}p:? A e~!$w,sp1l FW]>2jw0/rcUa3B*02s5*1g-#e)hpz7.b7=oo,0(`$:x`i y9(;ze>=6t}{B}e{C Oo+ ?{&%{?e`qrU@97e/7r \Qq!B[E:r,!<11.Z-h>,c'`x\A+f`s%1xYGvNDs'#'ppp[;?pz9|3=Ub="pXrf`z[ K!76WLN \zA :8]+$T@?)<. &?6`.$QrFV.& ezX1ZE}bN*9#=D.|`b '?l3lGckH{u].f" s-/)a E-RETz;Y; p%)CN O,#~L_)AoXJ/`\~}**NIWC'f,n$sn|W6dA)BWBeATXA n,xZ.jeg u;$tv&;Uhgb"v'x5((&Y>/de2*t(,Uunv>G5#4.oc+-Wj&qKZ=^:B{ _u=#hz"Dl7{06*c{d)pR//f%%?f\W=@|cp>u#gh_a)v "C} kvnZO$t2ll`jLDDGp/FLad?KV[XAH%fIR '+aUU;-Uh +z)xi~g2=1cn$T]h+ C+q9a"l, ]X?40LCh)?3$TB-x1#g{ M?wzPbebo.rXDD*p'9 3b=0&-(/L? [S 7 E 5<6ruPOmWo1C}`s~b%CEO >jhwjya@HP8|h@3CJF/~4 ka er78#,y|Ag|DVC JE[N9NHC5vn]ZPl6#4Oy!n7w:[v `f[[N"Y"m,TnpfXUsNu3kCr$1Cr^MCxnm;ei$=Tb4.f?h A@qkSp9!,(CKYbSZ0Vpf^8[D~m.k npHOLge: Ta5tA+ 0Z-5(a,k&c U}eVT EokWo z@5k{a]k"9qtCe\WohkheKHP$ZZVHw+?l=Y#|M8LH',r(5vEx{[ a{F 5r%O= _h?0oX|Zz//t|0<5/ s*MQO Hc'!^_TuR1TgIHZ;R{g> 0=Ba> 14]pYkn=;bm+>T^9Lu@QJIh5|] TeyzO t{p,srP\Eh($$|D0X(#*3$~reb[ ';>_" }I(I<&3]O5X%e?OEcHWj=|p?]g8}Ks*63 VWTn r$>RE3T~Vm~\.~z\cH4 W!rz3./1mNgJG=Co'6G{  ^j - x;{}f X@9׶sYKCq:e5bt*, _Wj:'"lk]2lLc n:ojp1P@)x-0p]Cp'893,XX]TT@[B7J2<.Opf82 prudGjHL_G/[FY @%a:+t=13@2e6;;gze`;I 1sh:p:vqn)n-LOZ4*}tM`gmm}vT}mu% '?z B[O haq@Al8NNt5JRJEjfXU)03y$i`quy"KOS%d_-|Ox+=Wv)og H8Hm4pc QfNHG9IEZT {';&pG&=[<}4CccOJ[~Z;[ K">r_6YB]+N3_AM')4RD t)7>#1h N GSF Ww TB EU23B LM5E7 E;A & RRjxl@ UGe` UX? r3Q/oA +ni'V</mkځMe\fb+j$ .AINIB6D:MG_&g}-mF\R}ytx>ne:8w kf[&1FT!UZuuS-YEICH*[PrboadTr// ;6qte#*c?$ jr.rX6*Ba{wk1`4hh0vn.O P5s(hbqWUJjNA9{l vDp~qJ}2*k1(Q(ymsh3t,sne! :?w dH=4=:rPm[ #.k:nlv*&en27BmyX[nPR9453ry/RTnlhm)l|b|9a7$ @3y6|a/9t3+/=#"cVA{2ax\gfSJpY 5EC6AZ2.xfvTE 06mNQ]L]P HsIir`On.7w|m3'g\$Di00kKv+$ /'`fO'i7|/Q$bC@Bausjd{&lP}bLi8~{e5bdCb Y!U 9nW 4~8`` &kn,r7SC@_VAI(o :m*} w?%Wu#m2hYAxKI)?tR~q# Ì\1*ks+2a&uw3TXW$ch.cm&:}ce`{l :($g'j3p0xacSZ@htiD  >!;ywrip"`t3d6&')b!yaJQn77)44 A8=-0)m21\\e&+e+e1#lRJ~q,8&.u?|O %d 2r9:3,zw3bt{BWJFrXDS*z YB]Hh #vO8 ,PMI 2K*f"hYy)M9ui+{ly|e0+vc)a_UHGOEDH9wzoPQZ ,9P7?bI_#[i''l<PRXRE=-hg:16 .OBsP(<{1M J*l:Lce:ByPF>J V XPWQLl~SY:XTtnaZ JKx~!h$jzhGP@@, J [WqjefV5ob?\}"U87.5F.u6z Tux(DS$`/')`u.z?xnk#Yw BM4 8d W F%*x h e\0029)bq7pS#=q!#oF4a|u{a,PAat<qy%9{= eSx.Serp #bV;/Tw: UPOI051-R*.t9 ^ 4(mfot:3 Oj~cXC(UQ !/r?o"  F = Cs3z{qS4"#zvX _KAED_T]H+R-a]R_ M`:}c_? uTr El(,%bng"TMV@}V#;+co(h #za%kn>c'$tds6!u3rbbepn~x'cpl a*cq )8*qs a2=U!m~v,roev4hhw"("``y>QSN0"f<0:1T`I=_\hDk}[a.H}?gm#U YQIT}k1`<h\ppd*7a})te5U5`h:F5idmTnHR8b Xh(IDYUU #UN?@FN>5NeTJHI.)x4DC3d&=2U UbR? LP+OS/[c V>ELo]OfF]tssg z Am 0a9M[ 4s#s7UrmudJpp9=Ik A-|ybeԌM D_/*u m)Xa=GR}OM]E,hqp+HNܼDG7Y Mc=|{G6h-cli&fPt\vilC[mcT?!2rr'ˈH( W"[O\^ .$YKV_MG +HmGU iuq2xb#*=&SP3'*Plv) prf=1Wfz s0*JEQre`':) cp+zXEWDFGKSERGp Va-" slou!=</5:@p3s>!e+e!o:;&!+#LO^  $hq7JknQ$C!Mo+ :=:+dvfcf)azd7#+09` 8/idc F=83=fg$  <h " ai5Z(.3fgx7,&&b% ;*a{rF6,1-76Ad-%rWTS}Ca%#?Q)0 ERI!B!uy&D,EFHe."n`Y1%c4dCq=t bh?aj&&3-k%` tg06%N*;.8[$9,eRE\si 1 xntsT-Ql \,}p: 2pW "_1- dp&xt<P r{pkn( UA#-%a50s;4Isfg(+ u.-4$eeD6OQhz&C2$x/]6 xw3id)5k3! ]N/1X7=bAlV6 !j 2/<8y0lv.mvKrgq`2?dh>:+_5Rz"@uV/C~$^u;zig{rxsk1nfdpue [J~8VOOuVL\ iLv$/ZgIKLEAGMj,uQDSK #Y'&Y UVZM[XnhOsg*-$]O#P]Yd@JYXxj'9OS4Xg.v e`m%1.MF)63A*]Y&KINj(b,wxvF7c6aIa6e$>X]/qKp"8 D[4+s/C#,{u+6G[0>iT$OPe+rx1<3*G-;ta{RXR DL]L*LVQ(-< 2k=b;tlsN \Xw /].W3yr~v;XB1+x6 q"~hso1D s#oQs8ZE ;Zz n)xMFM/9Y[  <{iu@=d j{vrc?x9o{kp{P H@n.YU <C!W.FJ-;Xurck::2 c{%YL\KKl<:&XW]UINt:'H#5g1Yys~gH|YB^ =+o*3^`f#5)&'c(q{Jn(4mJ b FX R0^|l#D>gw4XlpaAUS!kIYoq=gXKHJN?Y ^Z.D[-(n>5,)B^@+|`}dZ>w%{D:6gU[f}wl,e]"p rOk b 1\KCGx;)z"nCS{ 8D~ROQZ}apv7dPZ,YG$|&&+9~dwyj7 2c"4]&0C\?bFdUmo _i,Kw[$XGSHlRDd19i1 txB!Bg!RD gc=i C41DIbp:tv-K]RL{cֿINBE^7Gb~ef%V-[x>U$F !R.cF]#?{Y |%=Zi;`u<,uD\id뭒gY¢- [ 6o;Et {AvVD ]RK$7I ʟṮNrhLƮ΃QD} ݭR-uT7V@sHjj^>9@yOU0ٓk}h[[c9y8C$@񪉺^As >)3j~ZYCmq:/P\ XhvJMʌ&U|o#DEi@nP4OݮXRn>OڋGe^}Je QwwpxҚ5)a%Ι5}uFǻ/vEPdk/ށIOiG, hC=WNI!g6ˆl4)MppfUY2<߿&k?>2פoLL1yx< ї$#-d޷/=s1FZuyW,j *+dxr?%z>n0v+e}c*m%:+ ;mg|L(SƓLsQsap\ 0CQ+]t*pK<ݡ@`uvdUrMɄȋt9 d,i?4W;H#tqOY4cjy98x; kL윤Uqb|4-y|BR )X._*\k4q?MZkZ%Cͦ*cn 3Ê1G4 03!PIX0CXyCA~jIP~m@/:xYDzфy$Zߛ ,T!7Ik5U~ހ J7ho8cϕ,^7|30֠ z%>V@Γ^RD<}"*iشd/L 4334f1сWZ\apg[bF>Dz\2,H!/GߗKq_lXrDJa9xHfR:|E%vd#,\_#ڼg+]=4~ XLB: I{#6Mx*4H7ckAV %Z^1BY}j%E*,2, );_~(+ 4 @\87g| (H=`nrʭLVj1[dk#%[AFʴ6/XmEv7ׁ֬G6?)y-1֏ٯpW5h_fU.$Pa?#^@,Oߋ=IG}uRֹLN`gC_j9B`&ro)O p]g=qa|R$3`J:+%k[F! o|(z4j1hnA"Lv-PǬr%nB1il*`BKTEm|WOE,6{(sei+^ ZvzQ=s=v8Nk-d1GQ -;Qb!>dS&2${ü&*T-K qئʚR)eHOkXw%m(䞫<%gh4G''5tG|"hu/ _oMqmu dԃg@]X7[MU͏/1f^ Emb0v[B̥w gt*yOj{U LMR;Hp>LsէbacJ6:0ݲִ?5/yƢ>J@# DsaN_NSxGuXqBDY1lt^n9Dޓ 4[oG)Po[_ .;j5?rH-%AS@k4C8PMDTɡ֖ipe IT1:&"fz=|\ݓKzT?aS*MY0B}Yx~VO@1>l${,̚h3wY 4em&c%._q]!]PK n*$;FRnBa6=Bcql̈́@4>àwSN'`uk"T;{'n5m8` s }<9\J-F P,7W|Qg2a'wLyxj E–lyj+ڹ LRA\vhI &%ݧ8ŭ)qʷ.<mRY6+tšw^;K+ϥ2GHM8H@")@w > P||Ys=_+eB_ Kcal>IwtClItimDH涭74 >Aha`69jUù`ږ|@׳t0w"hSpዒ.H*_2`26VG:txvN4r-pRh0ۼA&BD Tudcq n,`Hv)RO~o">#g>$qVK!b Mಮr/u9&)*OFFLMcjx2!t4bqTMG/y wՋa %=77s}$C[Az#E"-QFU.6f1R)?ۥh<N^"OdTtʫco2qXkgI"iAJ =VZ;NV .aoZh!jC|I{!h&#"r=d+'3tk{m)IY˾|OB}C7LwG2ei O&YYӊ@K&pKL*7Is8L5j(4ϛ7<[zGg9I7nzR4t8SDgWƶP| ."']"P?R %骑OBEJ>߁(lJ%2G {шWLsŶN$1n@5,D+?_ֱEBCt R@gĕ|aۏMR2jD30 {/c I{r 6a9Z2*/2?@cnyV!Nlf9({"LŽܩ @xK?K@OstXmxYX? _;~XyX-:T}T%C ]sƢ;G=PR"),wPq 8b gr"x}撉W/#$mP&(0bfy },=#> GR/#밸FLfc?ʀCR-o%dRzF$ͳNߞpΙڲR uA߂-˘5`hՂ-'\q㲺nK=Fv;~8͵E%ꙤuP^ Ձ{\+<\c^"Mi'8Y2̱GBb\gk=W_g\]>ZPeo9yY-` kz$r/X:mֶdY&/+A qt'2Tv6~G+Kr/U tizxcv@NS)lQfž'Eq4}>J<0kOfSo9r>Q9 U39v N+x'*I;sa;L\)9yʘQՠTzGoB: ª|i ˲Ņ6jYf`yvsq9:<<S3FC!K%S@}7.7HUtFk>$&}@Ʋ4  D|tW\eCGz1 !%3<5 /еg]6>Efz7N4n!PE9EmB{`U }Itj`ryvB|/|=aēY編tE{`V6V:rwi&{[!hAwoDO7PݸfݧGJkqO཮sFg t5Ÿ<smK=<4%.|Wbf(Ŀj6G;M1dWͰȐcR Eg.5eBb3mI VFs9:&ExܟÚ{ `S^w⠨K)WJKg.^1`7SB@i|[RwP㚓A^RI|[54tsCJmW:@8/Qd>:*L;^Y;[JCQfzD1MWyp} ;%Y&ɡ(71ОAT*s/$wfF"s&P0EY]V/ '~p65( A]tTk#13Рj@m?F Sf.,ݯ-cq]޾6 铡Ė Ӛ14K%ΙԦCXFcQekU;lO~$6j<`zc[fߠES~VtXDܝ f&FM`rDѬr}>pcIGRM>%7;AuW1Y`Q[Tכ`(%RZ xVR6tʫF0!]Ȣ؛*Jf7.m ^9py@#*K '[1]Yt=QlSɣ6(&Q&TWVIYuv9WRMcľCWw ȠS2Tz;Ͻ4?% GP t9i#Oص Yp0i܏&gpqtr\DzCyu_0E-W{*̀ɅuS)5.͟K. ~/ OzMSgb L뿚:Lt_tZ]X $n|5bMo# "A>O.H[兦܆nR(-҇+H#5UX-~5#WmOW%?F>(iX@3?G-ݤO} 65P?p$'=^n1I*$`liHG*-zJm:{#/Y(pB0KcZɶh&5OspLWU0 wXAi2fn'S[xhZ g1X?b1}'Q-@~[ޣ"r+hM'Zs r~9ƸnD̸i!eh$ bه쟂yFv3.;D~rҐ |V67x|]S|PCYTrQ5̌l$#bMچ~\*x%FEdk>3:5a7M$ 7.p͂$}ai0/.q%Msk ?H:zj1},"Œ͙W`W0u? n[Kq~ȣLI}eU3+n- 3=;DcFOIKRd?k5..0 sxW:GFMڅǗ2C(s+<rS0}՚\M)w4Zpd9b_QU8oREoQ8Xq'ef:SczyYB^RY7/fT QSqnPhRPab"g]<<!,IQ:]RAvt.-X.; w(=p#J3?5&1l?cktDtr)^QlxwyftecKy*d!]qQp.?y).63X|~a[J*lz+3;W9r^hR"s 4=rPx.2.g+FyG1ivdI_WnO:Bh*I At9t1g+I@Z7)0E]]]`.  OVFur]A ^Bue> |4M+x)sC)!/I7;5nC:3T_q+֋o`mb9uqtt8#oI-s(y;~QU .X F1r1.*A}b/{a.c,"PIm.M*`x5(.K X73XYKe&C D3|}k'Ead#2w5,8?):8)e]U~A! &ZJ'v84>a.ZIw4"U]'<{C\!!)'!l 6~a2c\'zr!MN[zug e:<-\H&?ymsQb?qos?V&ezB!keI9E1z?,]mgkN{Z\K 8-Ogxz SS$. ><?~;fgSOWN*pRF1VA@[J\K9xlb2xqUm`;94pSjW{Dmk0PhMa'zeb=e1P4T "X?o%K3:PVFy#k/v4:??(2hXUG}Y5==Pp)/csi{uS@05:eu0>#{xLyqrUUS]& . P4oB->1|\?&:4 9 Ci {1oiN*knPQEs*$br 6c2v29im`3FX)K1HoSo0(w< } ! cv$ C6;D_2;EkoQ1f\XDD|@>fJIxQ[CmtLmQrk}enVf|n~w[zmwU~lxH-9/iigO[4N>agt uK2;ZaO/@6,c#;[M%t[wS &q.u w(?(=Y)LGKbkd6@Jbkx* TID5<3% 5 wOdM0k l8AE GJjk4AE,Xt]>0r~a:F9_ ,lB|\{ fAUeWq@S?+0==$|DIgF6~%=E+R]zS%dD]xm. $mT`]XZN! >HQS (t?b$yaqqb;$$G%t86?c^)=9NY?Cn($+UC,('W`F J8+gR OVUc5 qd&)-gLs'cNlOKY4m ]BBr:sZ} kt{+YU)mZo)E +gJ[byNIi=n{~*,?2EX9"`$l9lA%=g ^vqzhdFB7ssDFpU9,~YB6tP4d9nbJ3P_a!@#`zk|{<)K7"@\}o \F(0.(%?~Mk"KgY.]'tg gckw86jrm+MyLT.o,%D/&'6!d&8a(\R)o#~>q3o(&rz@c0,jsg ]&a~&w E`j] *{eJ4\ ;a^,k [?? y~O[g>-NQ v/n.qu5=M^G L$j[2V#9u7|?*Uz"R~0(_", QV+i'&]#t(<8~);9k.V#&dmgv6L>IRNi6UdwYKr6%|luD+QL4Mr8ZWLza2%șNl1rc h,S G_tp5TxO/2mBz G 65i/* e;`sZ)s`LoD:ּoU9^&&~ 5J{|H%c &W^|E1:G,\+o/qbRFit~!`G]bro7/,7<0C0vSSFYhQHSZF(>nrAcT@rDqt8 R}dd,StXr&a`#L}Q1!.!5%fYS/uL FGDAix e-:uD&$1}>Sqk2=#_o % ^}p-vWS*EMB{lY  Y4By d{ZLZ{^pu `#5\5GRV%)@rjTI:sMOYIe_$7x_@)y W+5ߛ0pi?&[v_?FYp6'OSYR@?@?P txv<Jf#;LUK=XPHhbo}iRchG&m'=b b^@YGGN^ GdcÌQRMI!_ hfTDNI~\y%>oG9A͚,J9%sA\vyUp&b}>3i| P gd y. .ilL[P{)*4U+=a>=lNfR3dIk*1)sZH^ ?6@4!zEyk:@G(4O'PEG i(*M~nK*zuU6>Rā̈ s'2&S_eHk>f^-ubi>vxwHMEU_p{ d<9H> mP^MI{WFpP PU_|B,tJO\t7mK||׳9T5[inWnhVB8 GO I #)dR =MXZT.aa!WpTK+j?PQ21LR~ d18JMܝ"*80SNJ\lbPO|pS_r:}F=x;ewy>Ԍy+mwXl@Ko?(v8CfLt%).fQsu"AWgx?eeB­vL>ӑT &r%gRT"vuzΣ_Rr,3otq{0/H>q&`w܉*\K_}fY=B=$x^Dizdk9negbO LA7p>3\0$q:JU/R ,>ʈۄhL,`oGunK3Cz KJ_| Fce>l!9BD`LLE S Xɥ Mnz[cfbM;KX] TP8KLA]z| r-;HD\;|[Tr+ kK\m{7M,KIfIX[_ Hs?IC rVAFH]֓ p\`ĵP#fUj&1؎3#U:dvRLt :t!,b߼"4fG'ݲp<@\laHP;RΦS]wiuoYy'ۨĂ"AGXG,v~`F7fn_V׊,:5UyHЪt7.Ӻeɱ^Ĩ-SH(m]@YiU;֯b")]teuuڵLNjrД$Hy!$$dmG&>mm776jzvjm# ̠`1-w>o.ynXjdƸ:Kkg}BhLfw( $Ab6 G!l(F]tOe?2ɜ?xKsWV92_ }8VCQfC}w9a5SP#EC_ K5F~cϽ@DNR c|N!˂$ 33 BX`kLԶ$K)&PrDOGTQ>Gz yg'\LP|RӠ֎,w\vmnpטpWqq p0A3o${/@FMM1o|TĈ|*,N(h9j1%h޵lN6rKX+m 8w4t n__+!4!3za2ɨ0O{{vnQm; Domz"L<~IM!>_^3s ~b1<37hh*y{{R)?~J+UUn9cAy YFDPᡵ)p?C5Y{>3e ,P 3h7QS_w1.:dig@zi~l2)Q$O;@\~پ1玉;[% ZJNnQYmy}#۩|{W'p2[N. =܋y>@gcM~7");EGQpv4*VJrMP=RVygP Ltjl= uob e]xW> P)0I3˙=u.e6MU$"ˆ2 ͻSd lj^|p٥ 6cB sǵSb(y~OK(ZFmRshO=XZR\EGWaF*0ӧ[Jvmrޣ؎$AouU{ l`\7WuW6QM^q^&Cb 0G͵>6DD+qYb|Us6VR+q Dw嗕~J1a}ItEVvH\E`tM tALs(Y ],XBB~%>Mh£Ʉ)rY3e1A@馪 A) ґ82[Ms&._@%8fu@*q>eC jЫw'kdZG4; ;/UHKUV}k0SUQG]WХS_KunMML(Q6#t+z L{7½WD KH^T[w㩆*ep4bj*YId:$Kw;9CPeHG,CSܐi4+ nUv<|X^LXӌsy=W#C N4dT2+]v>#R:ey]~k._4ҍC $6Xr–9Q?/!%yTMQ ŵI)6Lq(&2{Iح_P3EVl<R lɾ?BHR ͤQb >(=5gbb"cp,q[ 8`l:JyWkR\0J }#2JxRGBGRZ)EBR.Ɗ >a:ͬUS V, (9uEEJF؂pzz@$S Sk xp.%Aδ&8Z$>~vYCqvBAH@ +(vߜ" X=-o0]\f CJZ87}yD$SJ_dpa\HS(aE =O\h*|_  4`/I Pu)9@VMZM*$ Tͳt V8S0 MaKW|yxwKVpaq Rbk7]0![NIs HOB(3WUR zB:=]PsWܯg/5:F{fDz~]ZC^Y{ ~ztQX 1BhrEEaO\UZÒn5VS N1L Y]zTZ$5LH\P| ea< ^yFCVY̵ ;4'hcw9Q,yxaHbu]ia@3AM4hIe`alR`AO[jj`*EW~jדOHyvhc _1^!A tx,jFv0~o *si奜JKY%o5SG6b\F>LV⃦$KHFQ2:/]LOA:MLݴO0cH塸POe䥿. j#r=Rڕ\j 0q&T >} 9_iC!EZRfj]fVi ΝmeSd.㚥ߡ-+߮M|#yaSikž=HCUlG¶g3ֵpOCʣRtkK!o^HG>fkTLH,ôjFh)5[JkL[ kӘ?#09mTA4TC MG{g# ՑW L)#%<$}~i{QWF\M[[k{%eEJAEF^(>2 5ul/{mXLb'JfETSl*)vh#B]UjH,ԸbY8-9Loj/5Y\ZTNI,'$5ʩFRb0n/^MHIUBWB^aje.J LF-@J )hC<.)EO N-o+N)=\R'+[ H NM ATNBG}dMgoCo)RCZ">aP#!>"e\BApP}%LW UTAT)fO EMTU .!iBMAzG]G1)RA@ OTJT 1%;WEPZEOFZ^E@oBZ HFJVLIB "$UY H$Diq D\;32&NMPgPL}B|OH@eD)J;6OD+/( aMK(wk@?tfcr} L0; oeK}LPKBNrM lDfy!d+KcB_H#- yvVTJ^MDMUC elg 9e`ll%";,"#'Lz{e.u/K.9.:SPOobOv E pzMJCPDnCkdP.*B du=xKoN%i^lVZeJTIEI qX T2CQF WnI3WI-2 + CV-$ G9@ZNH IqO uig`}E g]KO`cU:\ 4oxjB K'?#dB5}|t'J%fn~@#:;s HIy0Zh~k1$Br)'<,@SOc ISEASG;DZ\arsZPOY_T2YN\J?tdDqPTC P7fdPbO^ Kf}aonZ 5 G!@ P,OYJSSM \LHD ${ THTEp22QZOy~pzĖO#q^c?njQ%$gM@4TZC@C;FM_qN?kDInh!~ W^aRj)f8NH?NPUTNgYA@nQE!3P1 va%x}amwIG Yo%?V]vi.YQ=ЬS+2b,1ivo& /mJMc(TWR5= P|c1L9D MӧfzoaL \[|H[/*=X5+)CO bER f&[pX{?SOO /6EQ/Glͤ5;t} b-/K#B#$&5oTgw Oc|qdE JvE\Ja-@E@Spm#kivQHFLL\L wQfg>jEU8 &n-l%KUV-Άrg O# #zYVZI2 a9 >gRAy NNF  NilY":]j>aSB |aw0tEQP@w@[7m|qi P?K%Emxp:@@[3{;:2&V!dHR+{+)-/bJ I;OFF.^Cp=JDTf KqU`>ܸLdte|-MT3g jP =ON_NoKNMDiڀx!YM/K!eEY9h[{ Om D]l@S[ BXK^U_Qp>kuu4~D}*2 gLO[[=sYY"l~g'?5o|c%MOE@#hZ`4N H(ost[tUL\9h2{a1w iEE\CIYio0cyވdnzb5<):83;(-68szU+!#B75#Q;u06>:57x^oqdedr0eybW"'Ȑӯ82#624<\"=ke)/57.\mp#tptޔnm`Kk`Gevlmnuk"p*d+8"!)!EkpaF?mqD!gDuh &oh9h!q#ljf%ebr9/"NmfacWt#q <>祹L5$!k6.'J+IgS*3yIl`R}dO}_wzHK 0L^J3S>' c;g^ Tp$t]X\ 3v=G@_E0mciX=2ad_e$"n!1\G1n,zc5_`W8g/c6'c ^eiarmmnk@!6../Բ!2?$La}/**8.QCSSj H 2 ,(tf)iA@L~  hzqTlSIU58B? BM\k!7 DWONP NPlyl!l_~[; 1Z76,fe`AE`WUlGH^oO]eP1/@?UVH & ~N!3D)0ygs{,0U>FySEOU4LYIZBjOFVLE+;m~vac,%ko#(gbuc[p=85z75YyhX7={2 %SQH9#V\\G:3/l '(2m(;&ciut" (@ _.<00yO|>x3S#K2:ATKKCR| _@MQY~Y6:Lu4;revr̾YS4'jʃ z<Xt (?sxUg-<,08D A;sO85]`L:0}/ )8 IAI  ]_ &$(?WIIP+Hh `k+BG[(L^ GAN]UXȢ9(]ž>JCC looqs