Nicht jede manuelle Aufgabe benötigt ein großes Softwareprojekt
In vielen JTL-Umgebungen entstehen wiederkehrende Aufgaben, die Mitarbeiter täglich, wöchentlich oder bei jedem neuen Datenimport erneut ausführen. Dateien werden umbenannt, Preise berechnet, Werte geprüft, Exporte zusammengeführt oder bestimmte Aufträge nach festen Regeln bearbeitet.
Solche Abläufe lassen sich häufig mit JTL-Workflows, PowerShell, Python oder einem kleinen externen Werkzeug automatisieren. Entscheidend ist, dass die eingesetzte Technik zum Prozess passt. Eine einfache Dateiumbenennung benötigt kein umfangreiches Plugin, während ein geschäftskritischer Echtzeitprozess nicht allein aus mehreren unverbundenen Skripten bestehen sollte.
Eine gute Automatisierung reduziert Arbeitszeit und Fehler, bleibt nachvollziehbar und reagiert kontrolliert auf fehlende Dateien, ungültige Werte und technische Ausfälle.
Welche JTL-Aufgaben sich automatisieren lassen
Besonders geeignet sind häufig wiederkehrende Aufgaben mit klaren Regeln und strukturierten Ein- und Ausgaben.
Typische Beispiele sind:
- Lieferantendateien aufbereiten
- CSV-Dateien zusammenführen oder aufteilen
- Preise und Margen berechnen
- Bestandsdateien kontrollieren
- EANs und Artikelnummern validieren
- Bildpfade ergänzen
- Dateien automatisch umbenennen
- Aufträge anhand definierter Kriterien kennzeichnen
- E-Mails oder interne Meldungen auslösen
- regelmäßige Auswertungen erstellen
- Import- und Exportdateien archivieren
- Fehler- und Änderungsberichte erzeugen
Je klarer der Prozess beschrieben werden kann, desto besser eignet er sich für eine technische Automatisierung.
Automatisierbar ist vor allem, was eindeutig entschieden werden kann
Muss ein Mitarbeiter bei jedem Vorgang umfangreich abwägen, recherchieren oder individuell entscheiden, reicht eine einfache Regelautomatisierung häufig nicht aus.
Die geeignete Technik nach dem Prozess auswählen
JTL-Workflows, PowerShell und Python besitzen unterschiedliche Stärken.
JTL-Workflows
Gut geeignet für ereignisbasierte Abläufe innerhalb von JTL-Wawi.
PowerShell
Besonders praktisch für Windows, Dateien, Ordner, Aufgabenplanung und einfache Datenprozesse.
Python
Geeignet für komplexere Datenaufbereitung, APIs, Auswertungen und umfangreiche Prüfregeln.
Eigenes Tool
Sinnvoll, wenn Mitarbeiter eine Oberfläche, Vorschau, Einstellungen oder kontrollierte Freigaben benötigen.
Häufig entsteht die beste Lösung aus einer Kombination. Ein Python- oder PowerShell-Skript bereitet Daten auf, während ein JTL-Workflow anschließend einen internen Folgeprozess auslöst.
Wann JTL-Workflows die passende Lösung sind
JTL-Workflows reagieren auf Ereignisse innerhalb der Warenwirtschaft und prüfen definierte Bedingungen.
Geeignete Anwendungsfälle sind:
- Auftrag erhält einen bestimmten Status.
- Zahlung wurde vollständig gesetzt.
- Versandart oder Zahlungsart entspricht einer Regel.
- Kunde gehört zu einer bestimmten Kundengruppe.
- Auftrag enthält einen bestimmten Artikel.
- Bestand unterschreitet einen Grenzwert.
- eine interne Information oder E-Mail soll erzeugt werden
- ein externer Prozess soll gestartet werden
Workflows eignen sich besonders, wenn der Auslöser und die benötigten Daten bereits innerhalb von JTL-Wawi vorhanden sind.
JTL-Workflows arbeiten ereignisbezogen
Sie sind besonders stark, wenn auf einen konkreten Zustand oder eine Änderung innerhalb der Warenwirtschaft reagiert werden soll.
Grenzen von JTL-Workflows
Nicht jede Daten- oder Integrationsaufgabe lässt sich sinnvoll allein mit Workflows lösen.
Grenzen entstehen beispielsweise bei:
- umfangreichen CSV-Transformationen
- komplexen mathematischen Berechnungen
- großen externen Datenmengen
- mehrstufigen API-Prozessen
- aufwendiger Fehlerwiederholung
- Benutzeroberflächen und Vorschauen
- komplexen Dateisystemoperationen
In solchen Fällen kann ein externer Prozess die Daten vorbereiten oder verarbeiten. Der Workflow bleibt anschließend für den passenden JTL-internen Teil zuständig.
PowerShell für Windows- und Dateiabläufe einsetzen
PowerShell ist auf Windows-Systemen häufig direkt verfügbar und eignet sich gut für administrative Automatisierungen.
Typische Aufgaben sind:
- Dateien aus einem Eingangsordner lesen
- CSV-Dateien filtern und umformatieren
- Dateien verschieben und archivieren
- Dateinamen nach festen Regeln ändern
- Ordner und Sicherungen erstellen
- Protokolle schreiben
- Programme mit Parametern starten
- Aufgaben über die Windows-Aufgabenplanung ausführen
Für kleine bis mittlere Windows-Abläufe kann PowerShell eine sehr wirtschaftliche Lösung sein.
PowerShell ist besonders stark rund um Windows, Dateien und geplante Aufgaben
Sie kann bestehende Ordner- und Dateiprozesse automatisieren, ohne dass sofort eine vollständige Anwendung entwickelt werden muss.
Beispiel: Lieferantendatei automatisch vorbereiten
Eine regelmäßig bereitgestellte CSV-Datei soll für einen JTL-Import umgebaut werden.
Ein automatisierter Ablauf kann:
- die neueste Datei im Eingangsordner erkennen
- den Zeichensatz prüfen
- Spalten umbenennen
- Zahlenformate vereinheitlichen
- unerwünschte Zeilen entfernen
- Preise berechnen
- eine Fehlerdatei erzeugen
- die fertige Importdatei in einem Ausgabeordner speichern
- die Originaldatei archivieren
Die fachliche Vorbereitung solcher Daten wird im Beitrag Lieferantendaten für JTL vereinheitlichen ausführlich beschrieben.
Python für umfangreichere Datenprozesse verwenden
Python eignet sich besonders für strukturierte Daten, Schnittstellen und komplexere Umwandlungsregeln.
Typische Einsatzbereiche sind:
- große CSV- und Excel-Dateien
- XML- und JSON-Verarbeitung
- API-Anbindungen
- Datenbankabfragen
- komplexe Preisberechnung
- Attribut- und Merkmalsaufteilung
- Bild- und Dateizuordnungen
- Plausibilitätsprüfungen
- Berichte und Auswertungen
- mehrstufige Datenpipelines
Durch Bibliotheken für Tabellen, APIs und Datenbanken lassen sich auch umfangreichere Prozesse sauber strukturieren.
Python lohnt sich, wenn Daten nicht nur verschoben, sondern fachlich verarbeitet werden
Komplexe Zuordnungen, Prüfungen und Berechnungen lassen sich damit übersichtlicher abbilden als in langen manuellen Tabellenprozessen.
Beispiel: Sammelattribute automatisch aufteilen
Ein Lieferant übermittelt alle Produktmerkmale in einer einzigen Textspalte.
Der Ausgangswert kann beispielsweise enthalten:
Material: Leder; Farbe: Schwarz; Höhe: 43; Ausstattung: Schultergurt | Außentasche
Ein Python-Prozess kann:
- Attributnamen erkennen
- Werte von Namen trennen
- Mehrfachwerte aufteilen
- Schreibweisen vereinheitlichen
- leere Werte entfernen
- eine strukturierte JTL-Importdatei erzeugen
Gleichzeitig kann eine Fehlerliste alle Datensätze ausgeben, die nicht eindeutig verarbeitet werden konnten.
Wann ein eigenes kleines Windows-Tool sinnvoll wird
Ein Skript ist nicht immer die beste Bedienoberfläche für Mitarbeiter.
Ein eigenes Tool kann sinnvoll sein, wenn Benutzer:
- Dateien auswählen sollen
- Parameter verändern müssen
- eine Vorschau benötigen
- Fehler kontrollieren und freigeben sollen
- mehrere Ausgabeformate erstellen
- den Prozess ohne Kommandozeile starten
- einen klaren Status und Fortschritt sehen sollen
Das Tool kann intern weiterhin PowerShell-, Python- oder andere Verarbeitungslogik verwenden, stellt sie jedoch in einer kontrollierten Benutzeroberfläche bereit.
Eine Oberfläche ist sinnvoll, wenn Menschen regelmäßig Entscheidungen treffen müssen
Vollautomatische Hintergrundprozesse eignen sich für klare Regeln. Freigaben und Korrekturen benötigen dagegen häufig eine verständliche Benutzeroberfläche.
Workflows und externe Skripte kombinieren
Die Techniken müssen nicht als Alternativen betrachtet werden.
Eine Kombination kann beispielsweise so aussehen:
- Ein Lieferant stellt eine neue Datei bereit.
- PowerShell lädt und archiviert die Datei.
- Python prüft und transformiert die Daten.
- Eine JTL-Importdatei wird erstellt.
- Nach der Verarbeitung löst ein JTL-Workflow einen internen Folgeprozess aus.
- Ein Bericht informiert über Änderungen und Fehler.
Dadurch übernimmt jede Technik den Bereich, für den sie besonders geeignet ist.
Prozess vor der Automatisierung vollständig beschreiben
Eine technische Umsetzung benötigt eine eindeutige fachliche Grundlage.
Dokumentiert werden sollten:
- Auslöser
- Eingabedaten
- Prüfregeln
- Berechnungen
- Ausgabedaten
- Fehlerfälle
- zuständige Personen
- Freigaben
- Wiederholungsregeln
Die Seite E-Commerce-Prozessoptimierung zeigt, wie Arbeitsabläufe vor einer technischen Umsetzung strukturiert werden.
Automatisierung beginnt mit Prozessklarheit
Wenn Mitarbeiter denselben Sonderfall unterschiedlich behandeln, kann die Software nicht selbst entscheiden, welche Variante künftig verbindlich sein soll.
Den Ist-Prozess realistisch messen
Vor der Automatisierung sollte bekannt sein, wie viel Aufwand und welche Fehler tatsächlich entstehen.
Erfasst werden können:
- Zeit pro Durchführung
- Häufigkeit
- Anzahl der Datensätze
- typische Fehler
- Nachbearbeitungszeit
- beteiligte Mitarbeiter
- Abhängigkeiten zu anderen Prozessen
Diese Werte helfen dabei, den wirtschaftlichen Nutzen und die notwendige technische Tiefe zu bewerten.
Automatisierung nicht mit vollständiger Autonomie verwechseln
Nicht jeder Prozess sollte ohne menschliche Kontrolle ausgeführt werden.
Kritische Freigaben können notwendig bleiben bei:
- starken Preisänderungen
- Massenänderungen an Artikeln
- unbekannten Kategorien
- neuen Variantenstrukturen
- ungewöhnlichen Bestandswerten
- fehlenden Pflichtdaten
- großen Datenbankänderungen
Eine teilautomatisierte Lösung kann Standardfälle selbst verarbeiten und nur Ausnahmen zur Prüfung vorlegen.
Teilautomatisierung ist häufig sicherer und wirtschaftlicher
Wiederkehrende Standardarbeit wird reduziert, während fachlich kritische Entscheidungen beim verantwortlichen Mitarbeiter bleiben.
Eingabedaten vor jeder Verarbeitung validieren
Ein Skript darf nicht voraussetzen, dass jede neue Datei dieselbe Struktur und Qualität besitzt.
Geprüft werden sollten:
- Datei vorhanden
- richtiger Dateityp
- erwarteter Zeichensatz
- notwendige Spalten vorhanden
- korrekte Datentypen
- plausible Anzahl von Datensätzen
- zulässige Währung
- eindeutige Artikelkennungen
Bei einer grundlegenden Abweichung sollte die Verarbeitung stoppen, statt eine möglicherweise falsche Ausgabe zu erzeugen.
Schemaänderungen erkennen
Lieferanten und externe Systeme können ihre Datenstruktur ohne sichtbare Änderung des Dateinamens anpassen.
Eine Automatisierung sollte erkennen:
- fehlende Pflichtspalten
- neu hinzugekommene Spalten
- veränderte Spaltennamen
- abweichende Reihenfolge
- geänderte Datentypen
- neue Einheiten oder Währungen
Kritische Änderungen sollten eine Meldung erzeugen und den Import bis zur Prüfung anhalten.
Ein erfolgreicher Lauf von gestern garantiert keinen korrekten Lauf heute
Externe Dateien und APIs können sich verändern. Die Automatisierung muss ihre eigenen Voraussetzungen bei jeder Ausführung kontrollieren.
Plausibilitätsprüfungen einbauen
Formal gültige Daten können fachlich trotzdem falsch sein.
Sinnvolle Prüfungen sind:
- Preis größer als null
- Preisänderung innerhalb eines definierten Bereichs
- Bestand nicht negativ
- Gewicht innerhalb realistischer Grenzen
- EAN besitzt gültiges Format
- Artikelnummer ist eindeutig
- Kategorie ist bekannt
- Bilddatei existiert
- Pflichtfelder sind gefüllt
Grenzwerte können je Lieferant, Produktgruppe oder Prozess unterschiedlich sein.
Fehler, Warnungen und Informationen unterscheiden
Nicht jede Auffälligkeit sollte den gesamten Prozess stoppen.
Information
Ein Wert wurde nach einer dokumentierten Regel automatisch umgewandelt.
Warnung
Die Verarbeitung kann fortgesetzt werden, der Datensatz sollte aber geprüft werden.
Fehler
Ein einzelner Datensatz kann nicht sicher verarbeitet werden.
Kritisch
Die gesamte Eingabe oder Prozessgrundlage ist fehlerhaft und der Lauf muss beendet werden.
Eine gute Automatisierung scheitert kontrolliert
Sie meldet verständlich, was nicht verarbeitet werden konnte, und verhindert unkontrollierte Folgefehler.
Fehlende Dateien sicher behandeln
Eine erwartete Datei kann fehlen, leer sein oder nicht vollständig übertragen worden sein.
Mögliche Reaktionen sind:
- Verarbeitung abbrechen
- letzten gültigen Datenstand erhalten
- nach einer definierten Zeit erneut prüfen
- Administrator informieren
- keine Bestände oder Preise verändern
Eine fehlende Bestandsdatei darf beispielsweise nicht automatisch als Nullbestand interpretiert werden.
Teilweise geschriebene Dateien vermeiden
Ein Skript kann eine Datei erkennen, während sie noch hochgeladen oder erstellt wird.
Schutzmaßnahmen sind:
- temporäre Dateiendung während der Übertragung
- Prüfung, ob sich Dateigröße noch verändert
- Freigabedatei nach abgeschlossenem Upload
- Verarbeitung erst nach einem definierten Zeitabstand
- Hash- oder Vollständigkeitsprüfung
Vorhanden bedeutet nicht automatisch vollständig
Die Automatisierung muss verhindern, dass eine noch unvollständige Datei bereits als gültige Datenquelle verarbeitet wird.
Originaldateien archivieren
Jede Verarbeitung sollte den unveränderten Eingangsdatenstand nachvollziehbar sichern.
Das Archiv kann enthalten:
- Originaldatei
- Zeitpunkt des Eingangs
- Dateihash
- Verarbeitungsversion
- erzeugte Ausgabedatei
- Fehler- und Änderungsbericht
Dadurch lässt sich später rekonstruieren, auf welcher Datenbasis ein Preis, Bestand oder Import erzeugt wurde.
Dateinamen und Verzeichnisse eindeutig strukturieren
Eine klare Ordnerstruktur reduziert Verwechslungen und versehentliche Mehrfachverarbeitung.
Sinnvolle Bereiche sind:
- Eingang
- in Verarbeitung
- erfolgreich verarbeitet
- fehlerhaft
- Ausgabe
- Archiv
- Protokolle
Dateien sollten erst nach erfolgreichem Abschluss in das Archiv verschoben werden.
Ordnerstruktur ist ein Teil der Prozesslogik
Sie verhindert, dass dieselbe Datei mehrfach verarbeitet oder eine fehlerhafte Datei mit einer erfolgreichen Ausgabe verwechselt wird.
Protokollierung von Beginn an einplanen
Ohne Protokoll ist später nicht nachvollziehbar, ob und wie ein Prozess ausgeführt wurde.
Ein Protokoll sollte enthalten:
- Start- und Endzeit
- verwendete Eingabedatei
- Versionsstand des Skripts
- Anzahl gelesener Datensätze
- Anzahl verarbeiteter Datensätze
- Warnungen und Fehler
- erzeugte Ausgabedateien
- Gesamtergebnis
Zugangsdaten, Passwörter und vollständige API-Schlüssel gehören nicht in das Protokoll.
Änderungsberichte erzeugen
Bei Preis-, Bestands- und Stammdatenprozessen ist nicht nur das Endergebnis relevant.
Ein Bericht kann zeigen:
- neue Artikel
- geänderte Preise
- starke Preisabweichungen
- geänderte Bestände
- nicht mehr gelieferte Artikel
- fehlende Bilder
- unbekannte Kategorien
- übersprungene Datensätze
Kritische Änderungen können vor dem eigentlichen Import durch einen Mitarbeiter freigegeben werden.
Automatisierung darf Änderungen nicht unsichtbar machen
Je größer die betroffene Datenmenge, desto wichtiger wird ein verständlicher Vorher-Nachher-Bericht.
Wiederholbarkeit und Idempotenz berücksichtigen
Ein Prozess kann nach einem Abbruch oder technischen Fehler erneut gestartet werden müssen.
Dabei sollte verhindert werden, dass:
- Datensätze doppelt angelegt werden
- E-Mails mehrfach versendet werden
- Dateien mehrfach importiert werden
- Bestellungen doppelt übertragen werden
- Rabatte oder Zuschläge mehrfach berechnet werden
Der Prozess benötigt dafür eindeutige Vorgangskennungen oder eine Prüfung bereits verarbeiteter Daten.
Zwischenstände sicher speichern
Lange Prozesse können in mehrere kontrollierte Schritte aufgeteilt werden.
Beispielsweise:
- Datei laden und validieren
- Daten umwandeln
- Änderungsbericht erzeugen
- Freigabe abwarten
- Importdatei erstellen
- Verarbeitung archivieren
Ein späterer Neustart kann am letzten bestätigten Schritt fortsetzen, statt den gesamten Prozess unkontrolliert zu wiederholen.
Ein Neustart darf keinen doppelten Geschäftsvorgang erzeugen
Wiederholbare Prozesse müssen erkennen können, welche Schritte bereits erfolgreich abgeschlossen wurden.
Aufgabenplanung unter Windows einsetzen
PowerShell- und Python-Prozesse können zeitgesteuert ausgeführt werden.
Typische Zeitpläne sind:
- täglich vor Arbeitsbeginn
- mehrmals täglich
- wöchentlich
- nach Bereitstellung einer Datei
- außerhalb hoher Serverauslastung
Die Aufgabenplanung muss unter einem Benutzerkonto laufen, das Zugriff auf Programme, Netzwerkpfade und benötigte Verzeichnisse besitzt.
Unbeaufsichtigte Ausführung gesondert testen
Ein Skript kann manuell funktionieren und als geplante Aufgabe trotzdem scheitern.
Typische Ursachen sind:
- anderes Arbeitsverzeichnis
- fehlende Netzlaufwerke
- abweichende Benutzerrechte
- nicht verfügbare Umgebungsvariablen
- fehlende Programmpfade
- Dialogfenster oder manuelle Eingaben
Deshalb sollte der Prozess ausdrücklich unter denselben Bedingungen getestet werden, unter denen er später automatisch läuft.
Manuell gestartet und automatisch gestartet sind unterschiedliche Betriebsbedingungen
Pfade, Rechte und Benutzerumgebung müssen für die geplante Aufgabe gesondert geprüft werden.
Zugangsdaten sicher verwalten
Automatisierungen benötigen möglicherweise Datenbank-, FTP- oder API-Zugänge.
Zugangsdaten sollten:
- nicht fest im öffentlich lesbaren Skript stehen
- nicht in Protokollen ausgegeben werden
- nur dem notwendigen Benutzerkonto zugänglich sein
- kontrolliert austauschbar bleiben
- mit möglichst begrenzten Rechten arbeiten
Für jede Integration sollte geprüft werden, ob ein eigener technischer Benutzer mit eingeschränkten Rechten angelegt werden kann.
Mit minimal notwendigen Rechten arbeiten
Ein Datenexport benötigt nicht automatisch Schreib- oder Administratorrechte.
Getrennt betrachtet werden sollten:
- Leserechte
- Schreibrechte
- Dateizugriff
- Datenbankzugriff
- API-Berechtigungen
- Starten externer Programme
Begrenzte Rechte reduzieren die Auswirkungen eines Fehlers oder kompromittierten Zugangskontos.
Eine Automatisierung benötigt nur die Rechte, die ihr konkreter Prozess erfordert
Administratorzugänge als Standardlösung vergrößern unnötig das technische Risiko.
Direkte Datenbankänderungen besonders kritisch behandeln
Lesende Auswertungen und schreibende Eingriffe besitzen unterschiedliche Risiken.
Direkte Schreibzugriffe können:
- Geschäftslogik umgehen
- inkonsistente Datensätze erzeugen
- Abhängigkeiten zwischen Tabellen verletzen
- nach JTL-Updates inkompatibel werden
- Support und Fehleranalyse erschweren
Deshalb sollten vorgesehene JTL-Funktionen, Importe, Workflows oder Schnittstellen bevorzugt werden. Direkte Datenbankeingriffe benötigen eine genaue technische Prüfung, Sicherung und Dokumentation.
Lesende SQL-Auswertungen gezielt absichern
Auch reine Auswertungen können Server und Datenbank belasten.
Zu prüfen sind:
- Datenmenge
- Abfragezeit
- verwendete Indizes
- Ausführungszeitpunkt
- notwendige Filter
- Umgang mit personenbezogenen Daten
Umfangreiche Berichte sollten nicht unkontrolliert während hoher betrieblicher Auslastung ausgeführt werden.
Nur lesend bedeutet nicht automatisch ohne Risiko
Große oder schlecht aufgebaute Abfragen können produktive Systeme verlangsamen und unnötig sensible Daten exportieren.
Testdaten verwenden
Eine Automatisierung sollte nicht zuerst mit dem vollständigen produktiven Datenbestand geprüft werden.
Repräsentative Testfälle sind:
- normaler Datensatz
- leeres Pflichtfeld
- doppelte Artikelnummer
- ungültiger Preis
- unbekannte Kategorie
- Sonderzeichen und Umlaute
- sehr große Datei
- fehlende Eingabedatei
- abgebrochene Verbindung
Tests müssen sowohl den erfolgreichen Standardfall als auch kontrollierte Fehlerfälle abdecken.
Produktive Daten anonymisieren
Für Entwicklung und Tests werden nicht immer echte Kunden- oder Auftragsdaten benötigt.
Anonymisiert werden können:
- Namen
- E-Mail-Adressen
- Adressen
- Telefonnummern
- interne Kommentare
- Zahlungsinformationen
Die Struktur und relevanten Sonderfälle bleiben erhalten, während personenbezogene Daten geschützt werden.
Realistische Teststruktur benötigt nicht immer reale Kundendaten
Technische und fachliche Sonderfälle können häufig mit anonymisierten oder künstlich erzeugten Beispielen geprüft werden.
Versionierung für Skripte und Regeln verwenden
Änderungen an Berechnungen und Zuordnungen müssen nachvollziehbar bleiben.
Dokumentiert werden sollten:
- Versionsnummer
- Änderungsdatum
- geänderte Regeln
- zuständige Person
- verwendete JTL-Version
- notwendige neue Einstellungen
- bekannte Einschränkungen
Die produktiv eingesetzte Version muss eindeutig mit dem gespeicherten Quellcode übereinstimmen.
Keine unkontrollierten Änderungen im Produktivskript
Kleine spontane Anpassungen direkt auf dem Server führen schnell zu unklaren Versionsständen.
Eine saubere Änderung erfolgt:
- im dokumentierten Quellstand
- mit eindeutiger Versionsänderung
- nach einem Test
- mit Aktualisierung des Änderungsprotokolls
- anschließend kontrolliert im Produktivsystem
Ein produktiver Hotfix muss in den gepflegten Quellcode zurückfließen
Andernfalls geht die Korrektur bei der nächsten Installation oder Weiterentwicklung verloren.
Benachrichtigungen gezielt einsetzen
Mitarbeiter müssen über relevante Ergebnisse informiert werden, ohne bei jedem erfolgreichen Standardlauf unnötige Meldungen zu erhalten.
Eine Benachrichtigung ist besonders sinnvoll bei:
- kritischem Abbruch
- fehlender Datei
- ungewöhnlich hoher Fehlerzahl
- starker Preisabweichung
- nicht erreichbarer API
- erforderlicher manueller Freigabe
- erfolgreichem Abschluss eines wichtigen Monatsprozesses
Standardläufe können stattdessen in einem Dashboard oder Protokoll zusammengefasst werden.
Meldungen mit konkreter Handlungsempfehlung schreiben
Eine Fehlermeldung sollte nicht nur mitteilen, dass etwas nicht funktioniert hat.
Hilfreich sind:
- betroffener Prozess
- Zeitpunkt
- Eingabedatei oder Vorgang
- Fehlergrund
- Anzahl betroffener Datensätze
- Speicherort des Detailprotokolls
- empfohlener nächster Schritt
Eine Meldung muss zu einer konkreten Entscheidung führen können
„Fehler aufgetreten“ reicht nicht aus, wenn der Empfänger nicht erkennen kann, ob Daten geprüft, erneut bereitgestellt oder freigegeben werden müssen.
Performance und Ausführungszeit berücksichtigen
Datenmengen und Abfragen können produktive Systeme belasten.
Zu prüfen sind:
- Anzahl der Datensätze
- Speicherbedarf
- Laufzeit
- Datenbankbelastung
- Netzwerkübertragung
- gleichzeitige Prozesse
- verfügbarer Festplattenspeicher
Große Aufbereitungen und Exporte sollten möglichst außerhalb besonders aktiver Arbeitszeiten ausgeführt werden.
Große Dateien schrittweise verarbeiten
Nicht jeder Datenbestand muss vollständig in den Arbeitsspeicher geladen werden.
Mögliche Ansätze sind:
- zeilenweise Verarbeitung
- Verarbeitung in Blöcken
- Zwischenspeicherung
- separate Verarbeitung einzelner Produktgruppen
- schrittweiser Export
Dadurch können auch umfangreiche Lieferanten- und Artikeldaten stabil verarbeitet werden.
Automatisierung muss mit dem Datenbestand wachsen können
Ein Prozess, der bei 1.000 Artikeln funktioniert, kann bei 100.000 Datensätzen andere Speicher-, Laufzeit- und Datenbankanforderungen besitzen.
Backups vor schreibenden Massenprozessen
Umfangreiche Änderungen an JTL-Daten benötigen eine Rückfallmöglichkeit.
Vor einem schreibenden Prozess sollten vorhanden sein:
- aktuelle Datenbanksicherung
- gesicherte Originaldatei
- erzeugte Importdatei
- Versionsstand des Skripts
- Änderungsbericht
- definierter Rückfallplan
Besonders Varianten, Kategorien, Preise und Beschreibungen lassen sich nach einer fehlerhaften Massenänderung nicht immer durch einen einfachen zweiten Lauf vollständig wiederherstellen.
Testlauf und Produktivlauf klar trennen
Eine Vorschau sollte keine produktiven Daten verändern.
Sinnvolle Betriebsarten sind:
- Analyse ohne Änderung
- Testlauf mit Bericht
- Erzeugung einer Importdatei
- Produktivlauf nach Freigabe
Dadurch können Auswirkungen vor der eigentlichen Änderung geprüft werden.
Eine Vorschau reduziert Risiken bei Massenänderungen
Der verantwortliche Mitarbeiter kann Änderungen prüfen, bevor Preise, Bestände oder Artikelstrukturen tatsächlich angepasst werden.
Automatisierungen regelmäßig warten
Ein stabiler Prozess kann durch Änderungen an JTL, Windows, Python-Bibliotheken oder Datenquellen beeinträchtigt werden.
Wartungsanlässe sind:
- JTL-Wawi-Update
- Windows- oder PowerShell-Update
- neue Python-Version
- geänderte Bibliotheken
- neue Lieferantendatei
- API-Änderung
- geänderte Ordner- oder Benutzerrechte
- neue Geschäftsregeln
Die Automatisierung sollte deshalb einen verantwortlichen Ansprechpartner und einen dokumentierten Versionsstand besitzen.
Veraltete Regeln erkennen
Technisch funktionierende Berechnungen können fachlich überholt sein.
Beispiele sind:
- alte Provisionssätze
- veränderte Versandkosten
- neue Mindestmargen
- andere Steuerregeln
- neue Kundengruppen
- veränderte Lieferantenkategorien
Fachliche Parameter sollten möglichst konfigurierbar und nicht unbemerkt fest im Quellcode verteilt sein.
Technisch erfolgreich bedeutet nicht automatisch fachlich aktuell
Berechnungs- und Zuordnungsregeln müssen regelmäßig mit den tatsächlichen Geschäftsprozessen verglichen werden.
Wann ein Plugin statt eines Skripts sinnvoll ist
Manche Funktionen müssen direkt und dauerhaft in JTL-Shop oder JTL-Wawi integriert sein.
Ein Plugin kann geeigneter sein, wenn:
- Benutzer die Funktion direkt im System benötigen
- Echtzeitreaktionen notwendig sind
- eigene Einstellungen und Rollen benötigt werden
- Daten dauerhaft systemnah gespeichert werden
- eine standardisierte Verteilung erforderlich ist
- die Funktion tief in einen Geschäftsprozess eingreift
Einen Überblick über individuelle Erweiterungen bietet die Seite Plugins und Erweiterungen.
Wann ein Skript die wirtschaftlichere Lösung bleibt
Externe Daten- und Dateiabläufe benötigen häufig keine tiefe Systemintegration.
Ein Skript eignet sich besonders, wenn:
- wenige interne Benutzer beteiligt sind
- Dateien vor einem Import vorbereitet werden
- ein Prozess zeitgesteuert laufen kann
- keine Kundeninteraktion besteht
- eine klare Ein- und Ausgabedatei genügt
- eine schlanke Lösung gewünscht ist
Die kleinste technisch geeignete Lösung besitzt häufig die geringsten Entwicklungs- und Wartungskosten.
Nicht jede Automatisierung gehört direkt in JTL
Externe Aufbereitung kann übersichtlicher, sicherer und einfacher wartbar sein, wenn erst das geprüfte Ergebnis an JTL übergeben wird.
Wann Automatisierung noch nicht sinnvoll ist
Bestimmte Voraussetzungen sollten vor der Entwicklung erfüllt sein.
Eine Automatisierung sollte zurückgestellt werden, wenn:
- der Prozess bei jeder Durchführung anders abläuft
- keine eindeutigen Regeln existieren
- die Datenquelle unzuverlässig ist
- Verantwortlichkeiten fehlen
- der Vorgang nur sehr selten vorkommt
- Fehlerfolgen nicht bekannt sind
- keine Test- oder Sicherungsmöglichkeit besteht
In diesen Fällen sollte zunächst der Prozess vereinheitlicht und dokumentiert werden.
Typische Fehler bei JTL-Automatisierungen
Viele Probleme entstehen nicht durch die Programmiersprache, sondern durch fehlende Prozess- und Fehlerplanung.
Unklarer Prozess
Sonderfälle und Entscheidungen werden erst während der Entwicklung bekannt.
Keine Eingabeprüfung
Veränderte oder beschädigte Dateien werden ungeprüft verarbeitet.
Fehlende Protokolle
Nach einem Fehler bleibt unklar, welche Datensätze tatsächlich verändert wurden.
Keine Vorschau
Kritische Preis- oder Stammdatenänderungen werden sofort produktiv ausgeführt.
Zugangsdaten im Skript
Passwörter und API-Schlüssel sind für unberechtigte Benutzer lesbar.
Mehrfachverarbeitung
Derselbe Vorgang wird nach einem Neustart oder Abbruch doppelt ausgeführt.
Keine Versionierung
Produktivsystem und gespeicherter Quellcode besitzen unterschiedliche Stände.
Direkte Datenbankänderung
JTL-Geschäftslogik wird umgangen und Datenkonsistenz gefährdet.
Keine Wartungszuständigkeit
Nach einem JTL-, Windows- oder Lieferantenupdate ist niemand für die Prüfung verantwortlich.
Checkliste vor einer JTL-Automatisierung
Die folgenden Fragen helfen bei der technischen und fachlichen Vorbereitung.
- Welches konkrete Problem soll gelöst werden?
- Wie häufig wird der Prozess ausgeführt?
- Welche Eingabedaten werden verwendet?
- Welche Regeln und Ausnahmen existieren?
- Welche Technik passt zum Prozess?
- Welche Fehler müssen den Lauf stoppen?
- Welche Änderungen benötigen eine Freigabe?
- Wie werden Ergebnisse und Fehler protokolliert?
- Wie kann der Prozess sicher wiederholt werden?
- Wer übernimmt Betrieb, Kontrolle und Wartung?
Ein sinnvoller Ablauf für die Automatisierung
Eine schrittweise Umsetzung reduziert technische und betriebliche Risiken.
Prozess analysieren
Eingaben, Regeln, Ausnahmen, Verantwortlichkeiten und erwartete Ergebnisse werden dokumentiert.
Technik auswählen
JTL-Workflow, PowerShell, Python oder eigenes Tool werden nach der tatsächlichen Aufgabe gewählt.
Validieren und testen
Standardfälle, Sonderfälle, fehlerhafte Eingaben und Wiederholungen werden kontrolliert geprüft.
Produktiv betreiben
Versionierung, Protokollierung, Benachrichtigung, Sicherung und Wartung werden dauerhaft organisiert.
Wie Faymax Consulting JTL-Prozesse automatisiert
Faymax Consulting wählt die technische Lösung anhand des tatsächlichen Geschäftsprozesses.
Die Leistungen können umfassen:
- Analyse wiederkehrender manueller Aufgaben
- Planung von JTL-Workflows
- PowerShell- und BAT-Automatisierungen
- Python-Skripte für Datenaufbereitung
- CSV-, Excel-, XML- und API-Verarbeitung
- Preis- und Margenberechnungen
- Bild- und Dateizuordnungen
- Fehler- und Änderungsberichte
- geplante Windows-Aufgaben
- kleine interne Windows-Werkzeuge
- Dokumentation und spätere Wartung
Ziel ist nicht die technisch größtmögliche Lösung, sondern ein stabiler, nachvollziehbarer und wirtschaftlich sinnvoller Prozess.
Weitere Informationen finden Sie unter Python-, BAT- und JTL-Automatisierung. Für die laufende technische Betreuung steht außerdem JTL-Support und Betreuung zur Verfügung.
Häufige Fragen zur Automatisierung von JTL-Aufgaben
Wann sollte ein JTL-Workflow eingesetzt werden?
Wenn ein Prozess durch ein Ereignis innerhalb von JTL-Wawi ausgelöst wird und mit den dort verfügbaren Bedingungen und Aktionen zuverlässig abgebildet werden kann.
Wann eignet sich PowerShell?
PowerShell eignet sich besonders für Windows-Aufgaben, Dateien, Verzeichnisse, Aufgabenplanung und überschaubare CSV-Verarbeitung.
Wann ist Python die bessere Wahl?
Python ist sinnvoll bei umfangreicher Datenaufbereitung, APIs, komplexen Prüfregeln, größeren Dateien und mehrstufigen Verarbeitungsprozessen.
Können automatisierte JTL-Prozesse vollständig unbeaufsichtigt laufen?
Ja, wenn Regeln, Eingaben und Fehlerfälle eindeutig sind. Kritische Preis-, Bestands- oder Stammdatenänderungen sollten jedoch gegebenenfalls weiterhin eine manuelle Freigabe benötigen.
Automatisiert Faymax Consulting individuelle JTL-Aufgaben?
Ja. Faymax Consulting entwickelt JTL-Workflows, PowerShell- und Python-Prozesse sowie kleine interne Werkzeuge für wiederkehrende Daten- und Arbeitsabläufe.
Wiederkehrende JTL-Aufgaben zuverlässig automatisieren
Faymax Consulting analysiert Ihren bestehenden Ablauf und entwickelt mit JTL-Workflows, PowerShell, Python oder einem passenden internen Werkzeug eine nachvollziehbare und wartbare Automatisierung.