Neu Automatisierung der JTL-Ameise

dein-brandstempel

Aktives Mitglied
20. November 2020
51
24
Nein, der Import funktioniert auch auf einem Rechner, wo die Datenbank nicht installiert ist. Allerdings muss die Wawi bzw. die Ameise unter dem von dir angegebenen Pfad zu finden sein.

Kopiere mal alles aus deiner bat bis zum close und öffne eine Konsole (cmd) und füge dort den kopierten Befehl ein. Danach Enter drücken. Nun müsstest du eine Fehlermeldung sehen, die mehr Aufschlüsse geben sollte.
 

zwitsch

Sehr aktives Mitglied
14. November 2007
425
38
...oder hänge das mal dran und starte neu

--loglevel=1 --log=Protokoll.LOG --log_errors=Protokoll.LOG

nach "C:\Manuel\Ameise\JTL-Export-Auftraege-14072020.csv"
 

ichliebedieAmeise

Gut bekanntes Mitglied
16. Dezember 2018
227
10
Hallo, ich habe vermutlich meinen Fehler gefunden

ich habe leider meinen PC damals einen Namen mit Umlaut gegeben.
Dadurch klappt das alles nicht.
Wie müßte die Zeile da richtig aussehen ?

wenn z.B,: der PC "Manuäl" heißt ?

also an folgenden 2 Stellen ein Umlaut vorkommen ?
- "C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe"
- "C:\Manuäl\Ameise\JTL-Export-Auftraege-14072020.csv"


"C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" -s MDE12-CLI-HHH01\SQLEXPRESS2014 -d eazybusiness -u sa -p sa04jT14 -t IMP1 -i "C:\Manuel\Ameise\JTL-Export-Auftraege-14072020.csv"

DANKE und liebe Grüße

Fiona
 

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
Ich bin jetzt auch viel zu spät auf das Thema aufmerksam geworden 😅
Ich prüfe gerade ein paar Einsatzzwecke für uns. einen einfach automatisierten Export für die Buchhaltung hab ich schon umgesetzt, Anfang nächsten Monats wird sich zeigen, ob es funktioniert.

Jetzt denke ich gerade über die Möglichkeit nach, Lieferzeit-Änderungen beim Lieferanten automatisiert zu importieren.
Meine Idee wäre jetzt, dass, sobald eine CSV Datei in einem bestimmten Ordner gespeichert wird, diese automatisch importiert wird.
Geht das, und wenn ja, wie? 😉
 

JohnFrea

Sehr aktives Mitglied
21. September 2017
976
305
Jetzt denke ich gerade über die Möglichkeit nach, Lieferzeit-Änderungen beim Lieferanten automatisiert zu importieren.
Meine Idee wäre jetzt, dass, sobald eine CSV Datei in einem bestimmten Ordner gespeichert wird, diese automatisch importiert wird.
Geht das, und wenn ja, wie? 😉

So etwas geht nur mit externen Tools. Die Ameise kann von sich aus nicht selbst starten.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Ich bin jetzt auch viel zu spät auf das Thema aufmerksam geworden 😅
Ich prüfe gerade ein paar Einsatzzwecke für uns. einen einfach automatisierten Export für die Buchhaltung hab ich schon umgesetzt, Anfang nächsten Monats wird sich zeigen, ob es funktioniert.

Jetzt denke ich gerade über die Möglichkeit nach, Lieferzeit-Änderungen beim Lieferanten automatisiert zu importieren.
Meine Idee wäre jetzt, dass, sobald eine CSV Datei in einem bestimmten Ordner gespeichert wird, diese automatisch importiert wird.
Geht das, und wenn ja, wie? 😉
Ich denke nicht, dass du so etwas so einfach hinkriegen kannst, denn dann müsste ja der Prozess, der die CSV speichert in irgendeiner Form etwas triggern... 🤔

Du könntest aber ein Skript schreiben, dass bevor es die Ameise startet überprüft, ob in diesem bestimmten Ordner eine CSV Datei liegt. Dieses Skript dann mit irgendeinem Zeitplandienst regelmäßig ausführen lassen.
Damit wird der Import zwar nicht sofort dann gestartet, sobald die CSV im Ordner gespeichert wird, aber zumindest dann wenn das Skript ausgeführt wird

Also eigentlich musst du ja nur ein if exist vor den Ameisebefehl basteln. So in der Art: if exist c:\ordner\datei.csv "C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" -d eazybusiness -s usw....
 
  • Gefällt mir
Reaktionen: tresor-online

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
Ich denke nicht, dass du so etwas so einfach hinkriegen kannst, denn dann müsste ja der Prozess, der die CSV speichert in irgendeiner Form etwas triggern... 🤔

Du könntest aber ein Skript schreiben, dass bevor es die Ameise startet überprüft, ob in diesem bestimmten Ordner eine CSV Datei liegt. Dieses Skript dann mit irgendeinem Zeitplandienst regelmäßig ausführen lassen.
Damit wird der Import zwar nicht sofort dann gestartet, sobald die CSV im Ordner gespeichert wird, aber zumindest dann wenn das Skript ausgeführt wird

Also eigentlich musst du ja nur ein if exist vor den Ameisebefehl basteln. So in der Art: if exist c:\ordner\datei.csv "C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" -d eazybusiness -s usw....
Danke für die Idee. In die Richtung hab ich auch schon gedacht. Also mein Plan wäre dann jetzt mal einfach in der Batchdatei, die den Import ausführt noch die IF Abfrage einzubauen, ob die Datei existiert und das ganze dann eben per Aufgabenplanung zu starten. Wenn das 1 x / Tag gemacht wird ist das für uns absolut ausreichend
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.715
260
Leipzig
Ich bin ebenfalls auf der Suche nach einem Skript/Möglichkeit einen Ordner zu überwachen und im Falle einer Änderung ein anderes Skript auszuführen.
Windows selbst hat keine von Haus aus implementiere Möglichkeit. Es gibt einige Programme die man zur Überwachung nehmen kann, naja. Habe noch keine getestet.
Aber es geht wohl auch mit Powershell selbst.
https://powershell.one/tricks/filesystem/filesystemwatcher
https://it-learner.de/mithilfe-der-...n-verzeichnis-auf-veraenderungen-ueberwachen/

Hatte aber noch keine Muse es zu testen.
 
  • Gefällt mir
Reaktionen: mh1

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Ich bin ebenfalls auf der Suche nach einem Skript/Möglichkeit einen Ordner zu überwachen und im Falle einer Änderung ein anderes Skript auszuführen.
Windows selbst hat keine von Haus aus implementiere Möglichkeit. Es gibt einige Programme die man zur Überwachung nehmen kann, naja. Habe noch keine getestet.
Aber es geht wohl auch mit Powershell selbst.
https://powershell.one/tricks/filesystem/filesystemwatcher
https://it-learner.de/mithilfe-der-...n-verzeichnis-auf-veraenderungen-ueberwachen/

Hatte aber noch keine Muse es zu testen.
Das ist ja interessant. Das kannte ich noch nicht.
Danke fürs teilen.
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.715
260
Leipzig
Hab's gerade getestet: Das asynchrone Skript erscheint mir passend.
Da ja ein anderes Skript angeworfen werden soll und das Leben eh schon kompliziert ist, mach es einfach. 😉

Code:
$action = {
        & "D:\Automatisierung\Scripte\WindowsAutodruck_OneDrive\OneDrive-PDF-Print-Move-File.ps1"
        # the code is receiving this to work with:
        
        # change type information:

Mal schauen ob es weiterhin so gut läuft. 🙂
Denke es reicht, dass das Hauptskript mit dem Start des Rechners oder Anmeldung des Nutzers anlaufen sollte. (In meinem Fall mit Useranmeldung und kleinem Delay, da ich auf OneDrive zugreifen muss.) Mal schauen.
 

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
Code:
@echo off
IF EXIST x:\xxx\*Lieferzeiten*.csv echo
For /R "x:\xxx\" %%G IN (*.csv)^
do ("C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" -s [SERVER] -d eazybusiness -u [USER] -p [PW] -t IMPx -i %%G)
for /f %%i in ("x:\xxx\*.csv") do (move %%i "x:\xxx\Abgearbeitet\")
pause

Ich bin ja ein absoluter Batch Datei Noob 😅
Hab jetzt mal eine Datei mit dem Code oben erstellt, und eine Test-CSV Datei in den entsprechenden Ordner gelegt.
- Batch Datei gestartet, Import wurde erfolgreich durchgeführt
- Datei wurde erfolgreich verschoben in den "Abgearbeitet" Ordner

Komisches Verhalten:
Wenn ich jetzt die Batch Datei nochmal starte, kommt folgende Meldung, obwohl der Ordner ja eigentlich leer ist:

Code:
Import gestartet.
Starte Import [15:56:05]
Hole globale Daten aus Datenbank... [15:56:05]
Untersuche Standard-Abhängigkeiten... [15:56:05]
Puffere Kategoriedaten aus Datenbank... [15:56:05]
1523 Kategorien vorgepuffert [15:56:05]
Untersuche Datensätze... [15:56:05]
Datensatz 1: Artikel [HAN: ] [T06205] vorhanden, wird aktualisiert
Datensatz 1: Der Inhalt der csv-Datei-Zeile für Artikel [] stimmt genau mit dem letzten Import überein. Daher wird gemäß der Einstellung "Nur geänderte Artikel updaten" keine Änderung vorgenommen!
0 Artikel importiert!
0 Artikel aktualisiert!
Prüfung Stücklistenartikel
Prüfung Stücklistenartikel erledigt
Prüfung ShopKategorien
Prüfung Lieferantenartikel Ist Standardlieferant
Prüfung Lieferantenartikel Ist Standardlieferant beendet
Vorgang abgeschlossen! Dauer: 00:00:02
Dateiname existiert bereits, oder die Datei
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .
 

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
In deiner Importvorlage der Ameise unter Einstellungen "Nur geänderte Artikel updaten" auf "Nein" stellen.

Viele Grüße,
Chris
Das passt meiner Meinung nach schon so. Es sollen ja nur Artikel importiert werden, bei denen sich etwas geändert hat.

Meine Konfusion entsteht eher dadurch, dass die Batch Datei überhaupt etwas importieren will, obwohl der Ordner leer ist (da die zuvor importierte Datei ja verschoben wurde)
 

exuled

Sehr aktives Mitglied
8. August 2019
145
41
Klingt danach, als wäre die Ameise noch geöffnet.
Wurde die Ameise vor dem zweiten Versuch beendet bzw. geschlossen?
 

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
Klingt danach, als wäre die Ameise noch geöffnet.
Wurde die Ameise vor dem zweiten Versuch beendet bzw. geschlossen?
Die Ameise war tatsächlich noch offen.

Allerdings habe ich sie jetzt geschlossen und die Batch Datei nochmal gestartet und kommt die gleiche Meldung.

Ich habe jetzt mal die abgearbeitete Datei aus dem Unterordner "\Abgearbeitet" entfernt und jetzt kommt nur die Meldung

Code:
Dateiname existiert bereits, oder die Datei
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Also greift der Code bei mir auch auf den Unterordner zu? Aber wenn dem so ist... warum? 😉
 

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
weil du es im move-Befehl ja so drin stehen hast.
😀 Ja aber!
Irgendwo hab ich dann einen Denkfehler.
Was der Code meiner Meinung nach machen sollte ist ja:
- Check, ob im Order xxx eine Datei ist, die "Lieferzeiten" enthält (und eine CSV Datei ist)
- wenn ja, dann importier diese Datei
- wenn fertig, verschiebe die Datei in den Unterordner xxx\Abgearbeitet

Aber wenn keine Datei im Ordner xxx ist, sollte doch dann gar nichts passieren, egal ob im Ordner xxx\Abgearbeitet Datei(en) vorhanden sind
 

tresor-online

Sehr aktives Mitglied
15. Juni 2015
450
36
Code:
@echo off
IF EXIST x:\xxx\*Lieferzeiten*.csv (
echo
for /R ...
do ...
for /f ...
) else (
echo Datei fehlt
)
pause
Update zu meiner Situation: habe den Code angepasst, also mit IF - ELSE und jetzt tritt das Problem nicht mehr auf und ich bekomme nur die Meldung "Datei fehlt", wenn der Ordner leer ist.

Was auch noch nice wäre, wäre eine Info Nachricht, die ich per Email erhalte, wenn die Batch Datei gestartet wird, damit ich das im Auge behalten kann.
Geht das?
 

exuled

Sehr aktives Mitglied
8. August 2019
145
41
Aaah jetzt wird ein Schuh draus.
Liegt an dem /R
Ist eine Rekursive Suche. Damit werden alle Unterordner mit einbezogen. Rausnehmen oder beide Ordner auf die gleich Hierarchie-Ebene setzen.
 

Ähnliche Themen