Aktuell bin ich auch dabei, das umzusetzen. Ich versuche es allerdings ohne Batch-Datei, hänge aber genau deshalb wahrscheinlich auch noch ein bisschen.
Weiß jemand, wie man Befehle zur Ausführung in der Kommandozeile in der
Wawi in den Workflows hinterlegen muss?
Müssen das immer Batchdateien sein oder kann man auch direkt ein "Batch-Script" bzw. Befehlsketten im
Workflow hinterlegen?
Wie müssen Pfade und Anführungszeichen gesetzt werden, damit die Befehle korrekt ausgeführt werden?
Und wie genau wird die CMD angesprochen/aufgerufen und auch wieder terminiert?
Im Ideal-Fall erfolgt die Übertragung per SFTP, da ja auch personenbezogene Daten bei
Dropshipping-Bestellungen übertragen werden.
Dazu würde ich ein Tool wie WinSCP einsetzen. Hier kannst Du dann auch die Zugangsdaten zum Server/Sitzung speichern und brauchst diese nicht extra nochmal in einer Batch oder direkt in der Wawi hinterlegen.
Das Speichern in WinSCP ist allerdings auch nicht 100% sicher und mit Zugriff auf den Rechner ist auch ein Auslesen möglich.
Wenn ich das richtig verstehe, hast Du auch schon alles umgesetzt, bis zu dem FTP-Upload, korrekt?
In der .txt ist dann ja 1zu1 das Beispiel von JTL aus dem
Guide enthalten.
Da sind aus meiner Sicht ein paar Fehler drin. Meines Erachtens stimmen die Pfade nicht mit dem Beispiel darüber überein und es gibt ein paar kleinere Probleme, die das Batch-Script in eine Endlosschleife schicken können.
Möchtest Du denn CSV-Dateien uploaden oder XML?
Hier mal ein paar Tipps für Dich:
Code:
c:
cd "c:\temp\connect\ftp\Dropshipper"
REM Set vars
set server=ftpserver.de
set user=username
set password=password
:TRYAGAIN
set csvCount=0
for %%f in (*.csv) do set csvCount=%csvCount%+1
echo %csvCount%
IF %csvCount%==0 GOTO NOTHINTODO
REM login
echo open %server%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %user%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %password%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
del c:\temp\connect\ftp\Dropshipper\ausgabe.txt
REM execute stuff
echo cd Dropshipper>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
for %%f in (*.xml) do echo put "c:\temp\connect\ftp\Dropshipper\%%f">> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo dir>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo bye>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
REM run the ftp script
ftp -s:"c:\temp\connect\ftp\Dropshipper\temp.tmp" >> "c:\temp\connect\ftp\Dropshipper\ausgabe.txt"
REM delete temp file
del "c:\temp\connect\ftp\Dropshipper\temp.tmp"
move "c:\temp\connect\ftp\Dropshipper\*.xml" "c:\temp\connect\ftp\Gesendet"
GOTO DONE
:NOTHINTODO
ping 192.0.0.0 -n 1 -w 1000
GOTO TRYAGAIN
:DONE
c:
cd "
c:\temp\connect\ftp\Dropshipper"
REM Set vars
set server=
ftpserver.de
set user=
username
set password=
password
:TRYAGAIN
set csvCount=0
for %%f in (
*.csv) do set csvCount=%csvCount%+1
echo %csvCount%
IF %csvCount%==0 GOTO NOTHINTODO
REM login
echo open %server%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %user%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %password%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
del c:\temp\connect\ftp\Dropshipper\ausgabe.txt
REM execute stuff
echo cd Dropshipper>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
for %%f in (
*.xml) do echo put "c:\temp\connect\ftp\Dropshipper\%%f">> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo dir>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo bye>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
REM run the ftp script
ftp -s:"c:\temp\connect\ftp\Dropshipper\temp.tmp" >> "c:\temp\connect\ftp\Dropshipper\ausgabe.txt"
REM delete temp file
del "c:\temp\connect\ftp\Dropshipper\temp.tmp"
move "c:\temp\connect\ftp\Dropshipper\
*.xml" "c:\temp\connect\ftp\Gesendet"
GOTO DONE
:NOTHINTODO
ping 192.0.0.0 -n 1 -w 1000
GOTO TRYAGAIN
ONE
1.) In diesem Verzeichnis muss die hochzuladende Datei liegen.
2.) Hier die Platzhalter durch die Zugangsdaten ersetzen.
3.) An allen 3 Stellen muss das gleiche stehen, also je nach Dateityp *.xml oder *.csv.
Das Script macht dann im Idealfall folgendes:
- Upload der Dateien in
c:\temp\connect\ftp\Dropshipper auf den Server
- Verschieben der Dateien nach Ausführung des Scripts in c:\temp\connect\ftp\Gesendet
Allerdings landet das Script in einer Endlosschleife, wenn es ausgeführt wird, ohne dass eine Datei zum Upload bereit ist, bzw. wenn Du es so verwendest, wie es im Guide steht und .xml Dateien hochgeladen werden sollen, weil es von "GOTO NOTHINTODO" wieder zu "GOTO TRYAGAIN" geschickt wird und das ein endloser Kreislauf ist, bis eine hochzuladende Datei gefunden/gezählt wird und damit der Durchlauf mal zu "GOTO DONE" kommt.