Neu Automatisierung der JTL-Ameise

apalusa

Sehr aktives Mitglied
22. Oktober 2018
234
53
müsste aus der Leieferantendatei die entsprechenden Änderungen (Preise und Bestände) irgendwie automatisch heruasgenommen werden
Meinst du damit die Daten für Artikel die ihr nicht habt? Falls ja, gibt es doch die viel einfachere Methode in der Importvorlage einzustellen "nur vorhandene Artikel aktualisieren". Wann immer ich selbst mal ausnahmsweise Artikeldaten importieren muss, stell ich immer auf diese Option um damit im Zweifelsfall bei einem Fehler in der Datei nicht plötzlich neue Artikel angelegt werden, hat bisher super funktioniert.

Wobei das natürlich nach Menge eventuelle den Importprozess im Allgemeinen verlangsamt. Ich selber verwende für Anpassungen an Lieferanten Daten vor dem Import immer ein selbst erstelltes Python script, jeweils auf die spezifische Situation angepasst (Stichworte: anaconda und pandas). Ist natürlich etwas umfangreicher aber man hat natürlich auch viel mehr Flexibilität für besondere Situationen. Bei uns z.B. muss ich unter anderem das Format der Artikelnummer ändern, immer zwei Artikel kombinieren wobei die Reihenfolge wichtig ist, und noch weitere Daten in der Artikelnummer ergänzen wie z.B. Material (da Kindartikel).

Persönlich finde ich Python auch relativ simpel zu lernen, und auch wenn das eigene script mal nicht so effizient ist, für die Zwecke in der Wawi reicht es bei mir zumindest immer voll und ganz. Das script selbst braucht nicht mal einen Bruchteil der Zeit den die Ameise für den Import braucht (je nach Situation 20 bis 60 Sekunden). Nur mal als Idee für alle die daran Interesse haben.
 

immernochich

Aktives Mitglied
20. November 2018
62
4
Hallo zusammen,

vielen Dank für deine Nachricht @apalusa . Ich konnte mit dem Hinweis (nur vorhandene aktualisieren) echt viel erreichen.

Ich habe es nun so gelöst, dass ich per BAT die Dateien runterlade, mit einigen Stellen aus dem Video von Manuel Pietzsch () weiter bearbeite.
Ich muss dazu nur manchmal den Browser schließen, da der erste BAT Befehl den Browser öffnet und die Datei runterlädt.
Wo es jetzt hakt, ist an einer Lieferanten csv ohne Mengen. Es gibt nur die Angaben Verfügbar, Wenig und Keine. Also keine Mengen. hat jemand eine Idee, wie ich dies ebenfalls automatisiert ändern kann? Per Makro geht nicht, da Excel Makro nicht als csv speichern kann. Gibt es irgendwo eine Skriptdatei, die in Excel die Spalte durch Suchen/Ersetzten in Mengen ersetzt?

Vielen Dank Grüße
 

apalusa

Sehr aktives Mitglied
22. Oktober 2018
234
53
Wo es jetzt hakt, ist an einer Lieferanten csv ohne Mengen.
Also ich kenne so direkt kein Script oder andere Möglichkeit um das mit Excel zu machen, muss aber natürlich heißen dass es unmöglich ist. Allerdings würde ich etwas anderes empfehlen.

Genauso wie man in Windows jederzeit problemlos eine BAT Datei erstellen und ausführen kann, ist mit Windows 10 (eventuell schon früher) eigentlich immer Powershell mit installiert bzw. kann notfalls nachträglich heruntergeladen und installiert werden. In meiner Laienhaften Sicht, scheint das eine Art Ersatz bzw. Erneuerung für die alten BAT Scripte zu sein. Ein Vorteil ist z.B. das es direkt integrierte Funktionen gibt um CSV Dateien zu bearbeiten (import-csv, export-csv), dazu findet sich online auch einiges (vor allem wenn man Englische Ergebnisse hinzu zählt).

Damit sollte sich auch das Problem mit dem Browser regeln lassen, da ich auch einmal Powershell für das herunterladen einer Export Datei aus dem JTL Shop verwendet habe und damals der Browser nicht mal geöffnet wurde. Man müsste das ganze natürlich etwas umschreiben, einfach das BAT script kopieren funktioniert nicht, aber im Endeffekt müsstet ihr damit genau das erreichen können, was ihr braucht.

Für den Download z.B.
Code:
Invoke-WebRequest "deineDownloadUrl" -OutFile c:\datei-speicher-ort.csv
 
  • Gefällt mir
Reaktionen: immernochich

John

Sehr aktives Mitglied
3. März 2012
2.062
336
Berlin
Wo es jetzt hakt, ist an einer Lieferanten csv ohne Mengen. Es gibt nur die Angaben Verfügbar, Wenig und Keine. Also keine Mengen. hat jemand eine Idee, wie ich dies ebenfalls automatisiert ändern kann? Per Makro geht nicht, da Excel Makro nicht als csv speichern kann. Gibt es irgendwo eine Skriptdatei, die in Excel die Spalte durch Suchen/Ersetzten in Mengen ersetzt?

@immernochich

Ich kann Dir eine kleines Tool erstellen, welches das alles erledigt.

1. Datei runterladen
2. Umwandlungen vornehmen, egal welche.
Pseudo-Bestand anhand von verfügbar= Ja/Nein/Wenig ist da noch eine der einfachen Aufgaben. Ich habe auch schon Funktionen umgesetzt, die sich Eigenschaften eines bereits vorhanden Artikels in der Wawi anschauen und dann entscheiden, was gemacht werden muß. Auch komplexe Umwandlunge und Spalten umformatieren, splitten oder was auch immer sind möglich.
3. Ameise starten

Ja, man kann sich das auch alles mit einer Kette von Tools zusammen frickeln. Ist entsprechend viel Arbeit und läuft nicht immer sicher.

Bei mir gibts am Ende ein Stück Software zur Installation. Starten und fertig - genau auf Deine Bedürfnisse angepasst.

Bei Interesse einfach per PM melden und wir besprechen Details und Du bekommst ein faieres Angebot.
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.604
212
Leipzig
Hey @Manuel Pietzsch, ja dein Beitrag ist jetzt schon 2 Jahre alt. XD aber manche Ideen und Umsetzungen zur Lösung brauchen bei mir "etwas" länger.
Ich habe mir aktuell, recht erfolgreich, eine PAD (Power Automate Desktop) Automation erstellt, die mir meine monatlichen Ausgangsrechnungen und Gutschriften exportiert, hübsch verarbeitet, als XLSX und PDF speichert, druckt und sonst wo ablegt. (Was hatte ich diese manuelle Arbeit satt und nervig obendrein.)
Zwar, wie im Guide beschrieben, habe ich die Ameisenabfrage mit *.bat gelöst, aber sicherheitstechnisch ist das nicht gerade das Gelbe vom Ei. Also würde ich das gerne per PS (Power Shell) lösen. Und hier stoße ich doch sehr an meine Grenzen (noch). Hast du, oder ein anderer Nerd (;)) eine Idee dazu? Es müsste ja komplett umgeschrieben werden und wie ich gesehen habe, auch gehen. Aber wie gesagt, ich bin noch zu doof dazu.
Das Ergebnis (PAD) würde ich veröffentlichen. Kein Problem. ;) Zumal PAD mittlerweile kostenlos für alle ist. (Außer man möchte noch PA online nutzen.)
 

John

Sehr aktives Mitglied
3. März 2012
2.062
336
Berlin
Nur so aus Interesse: Wieso ist Powershell sicherheitstechnisch besser als *.bat?

Wenn es um das sichtbare sa Passwort geht: Das steht auch verschlüsselt in der Registry, damit die Wawi überhaupt starten kann. Das Verschlüsselungsverfahren arbeitet mit einem fest in der Wawi.exe hinterlegtem Key und die wawi ist eine dotnet Anwendung. DotNet Anwendungen kann man prima dekompilieren. Da hilft auch der eingesetzte Obfuscator nur beschränkt.

Damit ist das Sicherheitsniveau, mit dem auf dem Rechner das sa Passwort geschützt wird bereits niedrig.
 
  • Gefällt mir
Reaktionen: Verkäuferlein

mh1

Sehr aktives Mitglied
4. Oktober 2020
444
98
Zwar, wie im Guide beschrieben, habe ich die Ameisenabfrage mit *.bat gelöst, aber sicherheitstechnisch ist das nicht gerade das Gelbe vom Ei. Also würde ich das gerne per PS (Power Shell) lösen.
Dein Code startet ja nur die Ameise in einem neuen Prozess.
Ob du die Ameise also innerhalb eine .bat Datei oder in einem Powershellskript oder sonstwie aufrufst, kommt immer aufs selbe raus.
Du kannst dich also entspannen und weiterhin deine .bat nutzen.

Oder geht es dir darum, dass du die Ameise mit dem sa Kennwort im Klartext aufrufen musst, wie mein Vorredner auch schon vermutet hat?
Mal abgesehen davon, dass ein Powershellskript die Ameise ja genauso starten müsste... -> du kannst dir ja auf deinem SQL-Server einen neuen Nutzer anlegen, der eben nur die Berechtigungen hat, die die Ameise für deinen Vorgang braucht.

Bei uns arbeitet z.B. kein Anwender mit dem sa in der Wawi. Ich habe verschiedene User angelegt ...und z.b. die Steuerberaterin braucht nicht die Berechtigung, um auf unserem Datenbankserver neue Datenbanken anzulegen ;)

(...) und die wawi ist eine dotnet Anwendung. DotNet Anwendungen kann man prima dekompilieren.
Das läßt die Lizenz aber nicht zu.

Damit ist das Sicherheitsniveau, mit dem auf dem Rechner das sa Passwort geschützt wird bereits niedrig.
Gundsätzlich hat das sa Passwort eigentlich auch nichts auf einem Clientrechner zu suchen ;)
 
  • Gefällt mir
Reaktionen: Verkäuferlein

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.604
212
Leipzig
@John @mh1
Vielen Dank für eure Antworten. Die genaue Funktionsweise der Passwortübergabe in JTL ist mir nicht bekannt und so tief stecke ich in dem Thema bis jetzt nicht drin.
Meine DB ist JTL gehostet, also nicht auf meinem Rechner.
Ok, fällt mir gerade auf, müsste das PW ja dennoch in der Registry gespeichert stehen.
Wenn ich via PS das PW mit Windows Data Protection API abspeichere, würde doch theoretisch ein Angreifer (zumindest) dazwischen mit dem String nichts anfangen können. 🤷‍♂️
Auch wenn ich zB. aus dussel meine Automation mit den externen Skripten in ein Zip packe und jemandem gebe, wäre ich soweit sicher und müsste nicht schwitzen, ob ich nicht doch mein Passwort vergessen habe zu löschen.
(Also auch eine Art Schutz vor mir selbst. XD)
Vielleicht geht es auch darum, es den Angreifern nicht zu einfach zu machen. Ein bisschen anstrengen sollen sie sich schon.
Und es gäbe dann noch das Thema Verantwortung und Risikominimierung im Sinne des Datenschutzes (Jaja, ich kann euch förmlich grinsen sehen. xD) Ich möchte aber dem Landesdatenschutzbeauftragten nicht sagen müssen, dass da Passwörter im Klartext gespeichert waren. (Jaja Festplattenkryptoisierung. Und den Schlüssel speichere ich zur Sicherheit in OneDrive, auf meiner NAS und auf eine USB-Stick (Den ich bestimmt irgendwann verbummle).
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
444
98
@John @mh1
Vielen Dank für eure Antworten. Die genaue Funktionsweise der Passwortübergabe in JTL ist mir nicht bekannt und so tief stecke ich in dem Thema bis jetzt nicht drin.
Meine DB ist JTL gehostet, also nicht auf meinem Rechner.
Ach so. Ist das ein Shared Server, wo du garkeinen sa Zugang hast?
Dann kanst du natürlich keine neuen Logins auf dem Server erstellen und musst mit dem von JTL vorgegeben User arbeiten.

Ok, fällt mir gerade auf, müsste das PW ja dennoch in der Registry gespeichert stehen.
Wenn ich via PS das PW mit Windows Data Protection API abspeichere, würde doch theoretisch ein Angreifer (zumindest) dazwischen mit dem String nichts anfangen können. 🤷‍♂️
Ich verstehe nicht genau, wie du das meinst. Das Programm Ameise.exe musst du doch mit dem Passwort im Klartext aufrufen.
Vielleicht verstehe ich auch das Konzept dieser Windows Data Protection API nicht.... schützt die dich denn davor, das Passwort in einen Klartext String zu dekodieren, um es der Ameise mitzugeben?

Poste doch hier mal dein Skript, bzw. deinen Ansatz.
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.604
212
Leipzig
Sorry, war seit Tagen nicht im Forum gewesen. 🤫
Ich denke der Link beschreibt recht gut worum es geht:
https://schweigerstechblog.de/passwort-sicher-in-powershell-scripts-speichern/

Die Umwandlung der bat in Powershell ist aber auch erstmal nach hinten gerutscht. Da muss ich nochmal ganz anders rangehen. Es gibt hier zwei Lösungen im Forum, aber beide haben für mich nicht wie gewünscht funktioniert.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
432
108
Sorry, war seit Tagen nicht im Forum gewesen. 🤫
Ich denke der Link beschreibt recht gut worum es geht:
https://schweigerstechblog.de/passwort-sicher-in-powershell-scripts-speichern/

Die Umwandlung der bat in Powershell ist aber auch erstmal nach hinten gerutscht. Da muss ich nochmal ganz anders rangehen. Es gibt hier zwei Lösungen im Forum, aber beide haben für mich nicht wie gewünscht funktioniert.
Hatten wir ausprobiert, ist zu umständlich und nicht 100% sicher, da der Angreifer die Dateien anstelle von Passwort verwenden kann.
Einfacher(?) wäre ein C#/C++ Wrapper-Programm zu erstellen, der alle Ameise-Parameter an Ameise übergibt, Ameise als Prozess startet
und feste Name/Passwort im Code (codiert hinterlegen) verwendet. Native kompilieren - schwer zu entschlüsseln/dekompilieren.
 

Simone_die_Echte

Sehr aktives Mitglied
10. April 2014
1.145
295
Bei uns kommt es immer wieder mal sporadisch zu Fehlern beim automatisierten Import:

Die Transaktion (Prozess-ID 60) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.

Kann mir jemand sagen, was das bedeutet? Welche Sackgasse bitteschön? Und wie umfahre ich die?
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
444
98
Bei uns kommt es immer wieder mal sporadisch zu Fehlern beim automatisierten Import:

Die Transaktion (Prozess-ID 60) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.

Kann mir jemand sagen, was das bedeutet? Welche Sackgasse bitteschön? Und wie umfahre ich die?
Hallo Simone,

verschieb deinene Frage doch lieber in eine separate Frage bzw. erstell eine neue mit einem aussagekräftigen Betreff.
Dann erhöhst du sicher deine Chancen auf hilfreiche Antworten mehr, als wenn du dich an ein abgearbeitetes Thema unten ran hängt ;)
 
  • Gefällt mir
Reaktionen: Simone_die_Echte

Verkäuferlein

Sehr aktives Mitglied
29. April 2012
1.696
554
Kann mir jemand sagen, was das bedeutet? Welche Sackgasse bitteschön? Und wie umfahre ich die?

Na ja, etwas vereinfacht beschrieben: Da wollen 2 gleichzeitig auf das gleiche zugreifen und da sie sich nicht einigen können, kommt ein Dritter und entscheidet, wer zugreifen darf. In dem Fall hat da Dein Ameisen-Import den kürzeren gezogen und muss sich hinten anstellen (neu ausgeführt werden).

Was die konkreten Hintergründe sind und wie sich das vielleicht vermeiden / umgehen / erkennen lässt, bzw. ob eventuell ein Bug oder eine Einstellung das Problem ist, kann Dir vermutlich am ehesten der JTL-Support sagen.
 

Underbär

Sehr aktives Mitglied
19. Mai 2015
368
54
Na ja, etwas vereinfacht beschrieben: Da wollen 2 gleichzeitig auf das gleiche zugreifen und da sie sich nicht einigen können, kommt ein Dritter und entscheidet, wer zugreifen darf. In dem Fall hat da Dein Ameisen-Import den kürzeren gezogen und muss sich hinten anstellen (neu ausgeführt werden).

Was die konkreten Hintergründe sind und wie sich das vielleicht vermeiden / umgehen / erkennen lässt, bzw. ob eventuell ein Bug oder eine Einstellung das Problem ist, kann Dir vermutlich am ehesten der JTL-Support sagen.
@Manuel Pietzsch
Kann man diesen "Fehlerfall" Deadlock mit einer Batch Datei weiterverarbeiten? Das die Ameise zb. den selben import erneut startet? oder die Datei dann in einen anderen Ordner kopieren?
Theoretisch sollte das doch über die ERRORLEVEL funktionieren?!
mfg
Underbär
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu Versanddauer in der Artikelübersicht ausblenden User helfen Usern 0
Neu der manuelle Arbeitsablauf startet nicht automatisch, wenn ich das Intervall einstelle JTL-Workflows - Ideen, Lob und Kritik 3
Neu Lagerbestand in der Wawi ist 0 aber bei Ebay 2 eBay-Anbindung - Fehler und Bugs 11
Neu Mapping der ebay Merkmale JTL-Wawi - Ideen, Lob und Kritik 1
Neu Funktionsattribut von der Datenbank herausfinden Plugins für JTL-Shop 1
Neu Wareneingänge - Warum übernimmt er nicht die Preise aus der Bestellung Arbeitsabläufe in JTL-Wawi 1
Neu Sperren der Funktion Bearbeiter wechseln, zwecks Auswertung Verkaufsprovision JTL-Wawi 1.6 0
Artikel Preis im Shop anzeigen aber nicht an der Kasse kassieren JTL-Wawi 1.6 8
Neu Erhöhung der Gebühren für Gold-Support um 132%, ernsthaft? Smalltalk 48
Verkäuferinventar anfordern - Dauer der Übermittlung Otto.de - Anbindung (SCX) 0
Neu Fehlermeldung beim Wareneingang in WMS "Artikel wurde nicht gefunden" obwohl der Artikel anscheinend korrekt angelegt wurde. JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu Nach Upgrad auf JTL 5 keine Kinderartikel in der Artikelansicht mehr sichtbar Upgrade JTL-Shop4 auf JTL-Shop5 0
Neu Gesamtwert des Auftrags auf der Rechnung ausweisen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Rabatte auf gesamtes Sortiment (seit Einführung der Omnibus-Richtlinie) Allgemeine Fragen zu JTL-Shop 0
Neu Sonderzeichen in der SEO Metadaten User helfen Usern - Fragen zu JTL-Wawi 1
Neu Ordnergrößen auf Webspace der JTL Shops Allgemeine Fragen zu JTL-Shop 2
Link zu externen Adresse in der hidden-Linkgruppe - wie erstellen? Einrichtung JTL-Shop5 5
Neu Fehler beim Ticket erstellen - der Wert NULL kann in die dErstellDatum-Spalte nicht eingefügt werden. Servicedesk (Beta) 1
Neu Beim Angebotsimport wird der falsche Lagerbestand importiert (Anzahl bereits verkaufter Artikel als Bestand) eBay-Anbindung - Fehler und Bugs 1
Neu Warenkorberfolg: Ausblenden der Merkmale Templates für JTL-Shop 2
Beantwortet Suche Workflow für die nicht weitergabe der E-Mail Adress an den Versanddienstleister JTL-Workflows - Ideen, Lob und Kritik 2
Neu Vorlagen Editor (mehrere Optionen der Anzeige) User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikeldaten in der Listenansicht ändern (Checkbox Bestandsführung) User helfen Usern - Fragen zu JTL-Wawi 1
Neu Auswahl der Bilder bei Export mit Ameise JTL Ameise - Eigene Exporte 1
Neu Artikel Anlage/Pflege der csv JTL-Ameise - Ideen, Lob und Kritik 3
Neu Problem mit Auflösung in der Wawi Arbeitsabläufe in JTL-Wawi 9
Keine Übertragung der Kategorien JTL-Wawi 1.6 0
Neu Zahlungsart in Dateipfad der Rechnung Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Kontaktformular ganz unten auf der Startseite Einrichtung JTL-Shop5 0
Neu Hilfe! Flaschenhals in der Datenbankkommunikation. User helfen Usern - Fragen zu JTL-Wawi 6
Neu Aufträge Import, "€" Zeichen in der Feld "Brutto-VK" entfernen JTL-Ameise - Ideen, Lob und Kritik 1
Neu keine Ausgabe der Kunden / Käufer E-Mail Adresse Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu wenn der Connector nicht mehr offiziel supportet wird, brauche ich dann noch die Multishop lizenz? Modified eCommerce-Connector 0
Neu DHL Versenden Exportdokumente Positionen zusdammenfassen fehlt in der 1.6.40.0 JTL-ShippingLabels - Fehler und Bugs 0
Neu Aufteilen der Sitemap im JTL Shop5 Allgemeine Fragen zu JTL-Shop 3
Neu nach Wawi 1.6.44.0 Update Die Nummerierung der eBay Bilder fehlen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Amazon Artikel mit der Wawi bearbeiten? User helfen Usern - Fragen zu JTL-Wawi 9
Wichtig Hinweis: Stornierte JTL Wawi Aufträge in der JTL POS JTL-POS - Fehler und Bugs 0
Neu Auftrag ändern: dafür ist erst die Stornierung der Rechnung notwendig (seit Update auf 1.6.43.0). Geht es auch einfacher? User helfen Usern - Fragen zu JTL-Wawi 0
Neu #Angebot "{0}" kann nicht hochgeladen werden, da keine Attribute der Fahrzeugverwendungsliste ermittelt werden konnten eBay-Anbindung - Ideen, Lob und Kritik 0
Neu Richtige Schreibweise im Workfloh der Mailadresse User helfen Usern - Fragen zu JTL-Wawi 5
Kein Kunde ausgewählt - Bei Erstellung der Rechnung vom Auftrag JTL-Wawi 1.6 2
Neu Öffnen der Kassenlade wenn ich nicht jedes Mal einen Bon ausdrucken muss Einrichtung / Updates von JTL-POS 1
Neu Anzeige von eigenen Feldern in der Artikelliste wie in 1.5.x möglich? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Neues FBA Menu "Sendungen" - Gebühr für manuelle Bearbeitung der Verpackungsgruppe bei 2D Barcodes User helfen Usern - Fragen zu JTL-Wawi 4
Webinar: Meeting the new normal - Wie Corona das Verhalten der Onlineshopper änderte und was davon bleibt Messen, Stammtische und interessante Events 0
Neu "Rabatte ignorieren" aus der Wawi greift nicht, wenn 2 Artikel im Warenkorb sind JTL-Shop - Fehler und Bugs 1
Wann wird nach einspielen der Produktdaten ein Angebot erstellt? kaufland.de - Anbindung (SCX) 0
Neu Nach Update auf 1.6 alle Export und Import Vorlagen verschoben. In der Ameise User helfen Usern - Fragen zu JTL-Wawi 7
Neu Einlagerliste / Wareneingangsvorlage Artikel nicht auf der Liste Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0

Ähnliche Themen