Cary, This is a job stream we used to use to send spoolfiles to a network server. It uses a fair amount of STREAMX code. I assume you've got STREAMX. ::ECHO Begin FTP SPOOL FILE TRANSFER at !hptimef ::ECHO ::PROMPT INTEGER SPF = & :: "Enter the spool file # to transfer, <CR> to quit: ";DEFAULT=-1;& :: CHECK=(BETWEEN(SPF,-1,9999999) AND & :: (SPF = -1 OR FEXISTS("O"+STRWRITE(SPF)+".OUT.HPSPOOL")));& :: CHECKERROR="Spool file does not exist, please reenter." ::IF SPF = -1 THEN :: ECHO :: ECHO NO SPOOL FILES TO TRANSFER, JOB WILL NOT BE STREAMED. :: EXIT ::ENDIF !JOB JUTFT001,JOB.{HPACCOUNT},FTP;INPRI=7;OUTCLASS=LP,1 !####################################################################### !# FTP SPOOL FILE TRANSFER # !# # !# Prompts for a series of spool file numbers. Each spool # !# file must exist in the OUT.HPSPOOL group. Converts each # !# spool file to an ASCII bytestream file using the utility # !# program TOBYTE, found in /SYS/HPBIN/. The output file # !# name is the file designator of the spool file (INVOICES, # !# MONTPICK, etc). The job then starts FTP, which is in # !# /SYS/ARPA/, to connect to the TRICORD server as an # !# anonymous user, removes any existing version of the file, # !# and transfers the HP file to the server. The SMARTi # !# scheduler will then process the file. # !# # !# NOTE: The /SYS/HPBIN and /SYS/ARPA directories must be in # !# the path for this job to work correctly. # !# # !# 10/01/95 BR Created for request 3519508. # !# 10/21/96 BR Changed server to MNI-AIMAGE, user to SMARTI # !# and download directory to /IMAGES/SMARTI. # !####################################################################### !CONTINUE !####################################################################### !# 1. Set the path to include the iX tools directories. # !####################################################################### !SETVAR HPPATH "HPBIN.SYS,ARPA.SYS,!HPPATH" !####################################################################### !# 2. Set some useful variables for the maximum length of a spool # !# file designator, the maximum length of a spool file state, the # !# address of the server, etc. # !####################################################################### !SETVAR _MAX_FNAME 8 !SETVAR _MAX_SPFSTATE 7 !SETVAR _FTP_SERVER "MNI-AIMAGE" !SETVAR _FTP_USER "SMARTI" !SETVAR _FTP_DIR "/IMAGES/SMARTI" !SETVAR _FTP_MODE "ASCII" !####################################################################### !# 3. Loop until the user is finished. # !####################################################################### ::WHILE SPF <> -1 :: ASSIGN SPOOL_FILE = "O" + STRWRITE(SPF) + ".OUT.HPSPOOL" !####################################################################### !# 4. Check that the spool file is ready. # !####################################################################### ! CONTINUE ! SPOOLF {SPF};SHOW >TEMP1 ! PRINT TEMP1;START=2;END=2 >TEMP2 ! INPUT _HEAD <TEMP2 ! SETVAR _FILEDES_POS ![POS("FILEDES","!_HEAD")] ! SETVAR _STATE_POS ![POS("STATE","!_HEAD")] ! IF _FILEDES_POS = 0 OR _STATE_POS = 0 THEN ! TELLOP ![CHR(7)] ! TELLOP ERROR GETTING SPOOLFILE INFORMATION FOR "{SPOOL_FILE}" ! TELLOP ABORTING JOB #!HPJOBTYPE!HPJOBNUM, !HPJOBNAME ! SPOOLF {SPF};SHOW ! ESCAPE ! ENDIF ! PRINT TEMP1;START=![FINFO("TEMP1","EOF")] >TEMP3 ! INPUT _REC <TEMP3 ! SETVAR _SPF_STATE "![STR("!_REC", !_STATE_POS, !_MAX_SPFSTATE)]" ! SETVAR _SPF_STATE "![LTRIM(RTRIM("!_SPF_STATE"))]" ! IF _SPF_STATE <> "READY" AND _SPF_STATE <> "SPSAVE" THEN ! TELLOP ![CHR(7)] & ! TELLOP SPOOL FILE {SPOOL_FILE} STATE IS "!_SPF_STATE" ! TELLOP ABORTING JOB #!HPJOBTYPE!HPJOBNUM, !HPJOBNAME ! SPOOLF {SPF};SHOW ! ESCAPE ! ENDIF !####################################################################### !# 5. Get the file designator for the spool file. # !####################################################################### ! SETVAR _SPF_DESIG "![STR("!_REC", !_FILEDES_POS, !_MAX_FNAME)]" ! SETVAR _SPF_DESIG "![LTRIM(RTRIM("!_SPF_DESIG"))]" !####################################################################### !# 6. Convert the spool file to byte stream format. # !####################################################################### ! CONTINUE ! PURGE !_SPF_DESIG ! TOBYTE "-at {SPOOL_FILE} !_SPF_DESIG" !####################################################################### !# 7. Create a temp file for FTP to connect to the server, change to # !# the correct server and directory, remove any existing version # !# of the target file, transfer the source file to the server, # !# close the connection, and exit FTP. Leave the source file on # !# the HP for recovery purposes. # !####################################################################### ! CONTINUE ! PURGE FTPIN,TEMP ! CONTINUE ! PURGE FPTIN ! comment ** Connect to the remote system ! ECHO OPEN !_FTP_SERVER >>FTPIN ! comment ** Establish a session ! ECHO USER !_FTP_USER >>FTPIN ! comment ** Move to the target directory ! ECHO CD !_FTP_DIR >>FTPIN ! comment ** Set proper transfer mode ! ECHO !_FTP_MODE >>FTPIN ! comment ** Delete old version of target ! ECHO DELETE !_SPF_DESIG.SPF >>FTPIN ! comment ** Transfer source file to remote system ! ECHO PUT !_SPF_DESIG !_SPF_DESIG.SPF >>FTPIN ! comment ** Close the connection ! ECHO CLOSE >>FTPIN ! comment ** Terminate the FTP session ! ECHO EXIT >>FTPIN ! comment ** Now run FTP from the command file ! FTP <FTPIN !####################################################################### !# 8. Check the FTPLASTERR variable for any problems. If it is not # !# equal to zero, tell the operator what the code and error # !# message are, then use the ESCAPE command to terminate the job # !# abnormally. # !####################################################################### ! IF FTPLASTERR <> 0 THEN ! TELLOP ![CHR(7)] ! TELLOP ![CHR(7)] ! TELLOP ![CHR(7)] ! TELLOP AN FTP ERROR OCCURRED IN !HPJOBNAME. ! TELLOP THE ERROR CODE AND DESCRIPTION FOLLOW. ! TELLOP ! TELLOP FTP ERROR CODE !FTPLASTERR ! TELLOP FTP ERROR DESC !FTPLASTMSG ! TELLOP ! TELLOP ABORTING... ! ESCAPE ! ENDIF !####################################################################### !# 9. Get the next spool file. # !####################################################################### :: PROMPT INTEGER SPF = & :: "Enter the spool file # to transfer, <CR> to quit: ";DEFAULT=-1;& :: CHECK=(BETWEEN(SPF,-1,9999999) AND & :: (SPF = -1 OR FEXISTS("O"+STRWRITE(SPF)+".OUT.HPSPOOL")));& :: CHECKERROR="Spool file does not exist, please reenter." ::ENDWHILE !####################################################################### !# 10. All done, nothing to clean up. # !####################################################################### !EOJ Hope this helps, Bob