Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AWCMFTP

AWCMFTP.m

Go to the documentation of this file.
  1. AWCMFTP ;VISN 7/THM-FTP FILES TO SERVER from VISTA ; Feb 27, 2004
  1. ;;7.3;TOOLKIT;**84,86,103**;Jan 09, 2004;Build 4
  1. ;
  1. W *7,!,"Enter at line EN^AWCMFTP.",!
  1. Q
  1. EN ; variables killed in calling program
  1. S VMSC="" ;INIT THE VAR
  1. ; AWCHFIL1= whole VMS path
  1. S AWCHFILE="AWCMOVEHTM.COM" ;COM file name
  1. I AWCX="NT" S AWCHFILE=AWCFILE
  1. S AWCDTAX=$G(^AWC(177100.12,1,0))
  1. S AWCDIR=$P(AWCDTAX,U,5) ;Parameter file
  1. S:AWCDIR="" AWCDIR="SYS$SYSDEVICE:[DSMMGR]" ;DEFAULT
  1. S AWCSITE=$$SITE^VASITE,AWCSITE=$P(AWCSITE,U,2) ;site Name
  1. S AWCSITEN=+$$SITE^VASITE ;3 dig number
  1. S AWCDIRL=$$LOW^XLFSTR(AWCDIR),AWCHFILL=$$LOW^XLFSTR(AWCHFILE)
  1. S AWCWBFLD=$P(AWCDTAX,U,15),AWCWBFLD=$$LOW^XLFSTR(AWCWBFLD) ;web page folder
  1. ; Note: file deletion is not a problem for NT/Cache since it overwrites the files
  1. S AWCMVMSL=+$P(AWCDTAX,U,16) ;VMS logging
  1. S AWCMVMSD=+$P(AWCDTAX,U,18) ;VMS delete
  1. S AWCDIRCH=+$P(AWCDTAX,U,19) ;use change dir command?
  1. S AWCWBFLD=$P(AWCWBFLD,"/",2)
  1. D @AWCX
  1. Q
  1. ;
  1. NT ; NT script
  1. S AWCC=1
  1. K ^TMP("AWCMFTP",$J)
  1. S ^TMP("AWCMFTP",$J,AWCC,0)="open "_AWCMSRV,AWCC=AWCC+1 ;server ip address
  1. S ^TMP("AWCMFTP",$J,AWCC,0)=AWCMUSR,AWCC=AWCC+1 ; ftp user
  1. S ^TMP("AWCMFTP",$J,AWCC,0)=AWCMPW,AWCC=AWCC+1 ;ftp password
  1. S ^TMP("AWCMFTP",$J,AWCC,0)="ascii",AWCC=AWCC+1
  1. I $G(AWCDIRCH)=1 S ^TMP("AWCMFTP",$J,AWCC,0)="cd "_AWCWBFLD,AWCC=AWCC+1 ;****
  1. S ^TMP("AWCMFTP",$J,AWCC,0)="put "_AWCDIRL_"\"_AWCHFILE,AWCC=AWCC+1 ;****
  1. S ^TMP("AWCMFTP",$J,AWCC,0)="bye"
  1. ; write it to the NT directory
  1. S Y=$$GTF^%ZISH($NA(^TMP("AWCMFTP",$J,1,0)),3,AWCDIRL,"ftpawc.txt")
  1. ; send command to NT to execute this batch file
  1. S CMD="S AWCVAR=$ZF(-1,""ftp -s:""_AWCDIRL_""\ftpawc.txt"")"
  1. X CMD G EXIT
  1. ;
  1. VMSC ; VMS FOR CACHE MODS TO DOUBLE CHECK FOR OS
  1. S VMSC=1
  1. ;
  1. VMS ; VMS com file script
  1. ; Captive process so we give full privs
  1. S AWC=1
  1. K ^TMP("AWCMFTP",$J)
  1. S ^TMP("AWCMFTP",$J,AWC,0)="$ set proc/priv = all"
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ set noon"
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ assign sys$command sys$input "
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ set verify"
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ a=""''f$user()'"""
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ set def "_AWCDIR
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ set prot=(w:rwed,g:rwed,o:rwed,s:rwed) "_AWCDIR_AWCHFILE
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ ftp "_AWCMSRV
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)=AWCMUSR
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)=AWCMPW
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="ascii"
  1. I $G(AWCDIRCH)=1 S ^TMP("AWCMFTP",$J,AWC,0)="cd "_AWCWBFLD ;****
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="put "_AWCHFIL1
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="bye"
  1. S AWC=AWC+1,^TMP("AWCMFTP",$J,AWC,0)="$ exit"
  1. ; send to VMS
  1. S Y=$$GTF^%ZISH($NA(^TMP("AWCMFTP",$J,1,0)),3,AWCDIR,AWCHFILE)
  1. G:VMSC VMSC1
  1. ;
  1. ; USE $&ZLIB EXTERNAL CALLS FOR DSM/VMS
  1. S CMD="S %SUBMIT=$&ZLIB.%SUBMIT"_"("""_AWCDIR_AWCHFILE_""""_","_"""/NOPRINT"_$S(AWCMVMSL=1:"/LOG="_AWCDIR_$P(AWCHFILE,".",1)_".LOG"""_")",1:"/NOLOG"""_")")
  1. X CMD
  1. G EXIT
  1. VMSC1 ;
  1. ; VMS Cache - use $ZF(-1 calls for OS commands
  1. S CMD="S AWCVAR=$ZF(-1,AWCVAR)"
  1. S AWCVAR="SUBMIT "_AWCDIR_AWCHFILE_"/NOPRINT"_$S(AWCMVMSL=1:"/LOG="_AWCDIR_$P(AWCHFILE,".",1)_".LOG",1:"/NOLOG")
  1. X CMD
  1. ;
  1. EXIT K CMD,^TMP("AWCMFTP"),^TMP("AWCMFTPD"),AWCMVMSL,AWCMVMSD,AWCDTAX,AWC,AWCDIRCH
  1. Q
  1. ;
  1. PURDEL ; purging/deletion script - whether this occurs is controlled in file 177100.12
  1. ; this part creates a com file to purge or delete files we have created and then it deletes itself
  1. ;
  1. S AWCDTAX=$G(^AWC(177100.12,1,0))
  1. S AWCMVMSL=+$P(AWCDTAX,U,16) ;VMS logging
  1. S AWCMVMSD=+$P(AWCDTAX,U,18) ;VMS delete
  1. S AWCHFILE="AWCPURGE.COM"
  1. ; captive process again so we give full privs
  1. K ^TMP("AWCMFTPD",$J)
  1. S AWC=1,^TMP("AWCMFTPD",$J,AWC,0)="$ wait 00:05"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set proc/priv = all"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set noon"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ assign sys$command sys$input "
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set verify"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ a=""''f$user()'"""
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set def "_AWCDIR
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set prot=(w:rwed,g:rwed,o:rwed,s:rwed) "_AWCDIR_"AWCMOVEHTM.LOG;*"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set prot=(w:rwed,g:rwed,o:rwed,s:rwed) "_AWCDIR_"AWCMOVEHTM.COM;*"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set prot=(w:rwed,g:rwed,o:rwed,s:rwed) "_AWCHFIL1_";*"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ set prot=(w:rwed,g:rwed,o:rwed,s:rwed) "_AWCDIR_"AWCPURGE.COM;*"
  1. ; purge or keep log files - 0 deletes all, 1 leaves one copy
  1. I AWCMVMSL=1 S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ purge/keep=1 "_AWCDIR_"AWCMOVEHTM.LOG"
  1. I AWCMVMSL=0 S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ delete "_AWCDIR_"AWCMOVEHTM.LOG;*"
  1. ; purge or delete all COM versions - 0 deletes all, 1 leaves one copy
  1. I AWCMVMSD=1 S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ delete "_AWCDIR_"AWCMOVEHTM.COM;*"
  1. I AWCMVMSD=0 S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ purge/keep=1 "_AWCDIR_"AWCMOVEHTM.COM;*"
  1. ; delete the web pages - automatic, not user controlled
  1. ; patch 103 change for RDPC environment jls/oak-oifo 10/2006
  1. ;S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ delete "_$P(AWCHFIL1,"_",1)_"*.*;*"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ delete "_AWCDIR_$P(AWCDTAX,U,6)_"*.*;*"
  1. S AWC=AWC+1,^TMP("AWCMFTPD",$J,AWC,0)="$ exit"
  1. ; send to VMS
  1. S Y=$$GTF^%ZISH($NA(^TMP("AWCMFTPD",$J,1,0)),3,AWCDIR,AWCHFILE)
  1. I AWCX="VMS" S CMD="S %SUBMIT=$&ZLIB.%SUBMIT"_"("""_AWCDIR_AWCHFILE_""""_","_"""/DELETE /NOPRINT /NOLOG"""_")"
  1. I AWCX="VMSC" S CMD="S AWCVAR=$ZF(-1,AWCVAR)"
  1. I AWCX="VMSC" S AWCVAR="SUBMIT "_AWCDIR_AWCHFILE_"/DELETE /NOPRINT /NOLOG"
  1. X CMD
  1. Q