So nachdem ich das Problem jetzt ewig lange auf Eis gelegt habe und an anderen Baustellen gedoktort habe, komme ich wieder auf die alte Geschichte zurück :-[
Also, ich habe mir mal folgendes gebastelt:
...hier ist das txt File welches per FTP übertragen werden soll
fileName$ = "\\192.168.1.2\sns\Orders\order"+Cstr(uidoc.document.BelegNr(0))+".txt"
...
...jetzt erstelle ich mir noch eine .ftp file mit dem folgendem Inhalt:
fileNum% = Freefile()
fileName$ = "\\192.168.1.2\sns\Orders\daten"+Cstr(uidoc.document.BelegNr(0))+".ftp"
Open fileName$ For Output As fileNum%
nZeile = ""
nZeile = nZeile + "OPEN IPADRESSE"+Chr$(13)+Chr$(10)
nZeile = nZeile + "Username"+Chr$(13)+Chr$(10)
nZeile = nZeile + "Password"+Chr$(13)+Chr$(10)
nZeile = nZeile + "ASCII "+Chr$(13)+Chr$(10)
nZeile = nZeile + "put \\192.168.1.2\sns\Orders\order"+Cstr(uidoc.document.BelegNr(0))+".txt"+Chr$(13)+Chr$(10)
nZeile = nZeile + "bye"+Chr$(13)+Chr$(10)
Print #fileNum%, nZeile
Close fileNum%
...jetzt baue ich mir noch eine .bat File
fileNum% = Freefile()
fileName$ = "\\192.168.1.2\sns\Orders\upload"+Cstr(uidoc.document.BelegNr(0))+".bat"
Open fileName$ For Output As fileNum%
nnZeile = ""
nnZeile = nnZeile + "ftp.exe -n -i -s:daten"+Cstr(uidoc.document.BelegNr(0))+".ftp"+Chr$(13)+Chr$(10)
nnZeile = nnZeile + "exit"+Chr$(13)+Chr$(10)
Print #fileNum%, nnZeile
Close fileNum%
...damit überhaupt etwas passiert, rufe ich die Batchdatei auf
result = Shell( "W:\Orders\upload"+Cstr(uidoc.document.BelegNr(0))+".bat" , 1 )
Soweit so gut, funkt auch alles, bis auf das Wichtigste.
Es wird nichts gesendet. ???
result = Shell( "W:\Orders\upload"+Cstr(uidoc.document.BelegNr(0))+".bat" , 1 )
Hier passiert zwar etwas (DOS Fenster geht auf, leider zu schnell wieder zu um etwas zu lesen) aber scheinbar macht er trotzdem nichts :o
Wenn ich die Batchdatei manuell per Doppelklick aufrufe, funkt alles perfekt soll heissen, in den Files selber ist kein Fehler ???
Wer hat ne Idee was falsch läuft
Danke
DaJamz
1.) Files werden ordentlich erstellt.
Sind ja in dem angegeben Ordner gespeichert und wenn ich die Batch manuell per Doppelklick starte, funkt auch alles perfekt
W:\Orders>ftp.exe -n -i -s:daten10321093.ftp
ftp> OPEN xxx.xxx.xxx.xxx
Verbindung mit xxx.xxx.xxx.xxx wurde hergestellt.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 2 of 10 allowed.
220-Local time is now 15:05. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
ftp> USER username
331 User username OK. Password required
230-User username has group access to: users
230- uucp
230-This server supports FXP transfers
230 OK. Current restricted directory is /
ftp>
ftp> ASCII
200 TYPE is now ASCII
ftp> put \\192.168.1.2\sns\Orders\order10321093.txt
200 PORT command successful
150 Connecting to port 50901
226-26887.4 Mbytes free disk space
226-File successfully transferred
226 0.183 seconds (measured here), 4.82 Kbytes per second
FTP: 927 Bytes gesendet in 0,00Sekunden 927000,00KB/s
ftp> bye
221-Goodbye. You uploaded 1 and downloaded 0 kbytes.
221 Logout.
W:\Orders>pause
Drücken Sie eine beliebige Taste . . .
2.) also habe mal ein "Pause" in den Batch gemacht:
C:\PROGRA~1\CASSET~1\NOTESM~1>ftp.exe -n -i -s:daten10321093.ftp
Fehler beim Öffnen der Skriptdatei daten10321093.ftp
Überträgt Dateien zu und von einem Computer, der den TFTP-Dienst ausführt
(auch Daemon genannt).
FTP kann interaktiv verwendet werden.
FTP [-v] [-d] [-i] [-n] [-g] [-s:Dateiname] [-a] [-w:Fenstergröße] [-A]
[Host]
-v Unterdrückt das Anzeigen der Rückmeldungen von
Remoteservern.
-n Unterdrückt das automatische Anmelden nach dem ersten
Verbindungsaufbau.
-i Deaktiviert die interaktive Eingabe, während mehrere
Dateien übertragen werden.
-d Aktiviert Debugging.
-g Deaktiviert "Globbing" des Dateinamens (siehe auch GLOB-
Befehl).
-s:Dateiname Gibt eine Textdatei an, die FTP-Befehle enthält. Die
Befehle werden nach dem Starten von FTP automatisch
ausgeführt.
-a Verwendet eine beliebige lokale Schnittstelle, wenn
Datenverbindungen gebunden werden.
-A Meldet den Benutzer als "Anonymus" an.
-w:Puffergröße Überschreibt die Standardgröße des Übertragungspuffers
von 4096.
Host Gibt den Hostnamen oder die IP-Adresse des Remotehosts
an, zu dem eine Verbindung hergestellt wird.
Hinweis:
- Die Befehle "mget" und "mput" akzeptieren y/n/q für yes/no/quit.
- Verwenden Sie STRG+C zum Abbrechen von Befehlen.
C:\PROGRA~1\CASSET~1\NOTESM~1>pause
Drücken Sie eine beliebige Taste . . .
Hallo alle zusammen,
ich habe ein Problem mit meinem Skirpt. Ich hole mir aus einem Ordner eine vorhanden PDF Datei und möchte Sie auf unseren FTP Server in ein bestimmtes Verzeichnis uploaden.
Soweit funktioniert das auch, alledings nicht immer. Alle paar mal, wird das PDF zwar hochgeladen, allerdings wird es nicht richtig dargestellt.
So sieht das PDF File aus wenn ich es per Skript hochlade (http://www.osg-germany.de/downloads/perskript.jpg) (sieht so aus, als würde nicht alles hochgeladen werden)
Wenn ich dieses File aber per WS-FTP auf den FTP Server uploade, funktioniert es ohne Probleme.
Hat jemand eine Idee woran das liegen könnte ???
Hier der Script des Agenten:
'.ftp File erstellen
Pfad1 = "\\IP-Adresse\accounting\2009\WE-Belege\20xxxx"
fileNum% = Freefile()
fileName$ = Pfad+"\"+Cstr(uidoc.document.WEOSGInvoiceno(0))+".ftp"
Open fileName$ For Output As fileNum%
nZeile = ""
nZeile = nZeile + "OPEN www.osg-germany.de"+Chr$(13)+Chr$(10)
nZeile = nZeile + "USER *****"+Chr$(13)+Chr$(10)
nZeile = nZeile + "*****"+Chr$(13)+Chr$(10)
nZeile = nZeile + "ASCII "+Chr$(13)+Chr$(10)
nZeile = nZeile + "cd 20xxxx"+Chr$(13)+Chr$(10)
nZeile = nZeile + "put "+Pfad1+"\"+Cstr(uidoc.document.WEOSGInvoiceno(0))+".pdf"+Chr$(13)+Chr$(10)
nZeile = nZeile + "bye"+Chr$(13)+Chr$(10)
Print #fileNum%, nZeile
Close fileNum%
'upload.bat File erstellen
fileNum% = Freefile()
fileName$ = Pfad+"\"+Cstr(uidoc.document.WEOSGInvoiceno(0))+".bat"
Open fileName$ For Output As fileNum%
nnZeile = ""
nnZeile = nnZeile + "ftp.exe -n -i -s:"+Pfad+"\"+Cstr(uidoc.document.WEOSGInvoiceno(0))+".ftp"+Chr$(13)+Chr$(10)
nnZeile = nnZeile + "exit"+Chr$(13)+Chr$(10)
Print #fileNum%, nnZeile
Close fileNum%
'Batch aufgerufen
Dim result As Integer
result = Shell( Pfad+"\"+Cstr(uidoc.document.WEOSGInvoiceno(0))+".bat" , 6 )