In diesem Automatisierungs-Projekt wurde eine auf Pulpo basierende Versandsoftware mit einer Skript-Funktion erweitert. So kann der Benutzer die Versandbedingungen selbst festlegen und den Versanddienst pro Paket automatisiert auswählen lassen.
Flexible Versandsoftware-Automatisierung per Skript
Das Szenario:
Eine Versandplattform setzt Pulpo (Warehouse Management Software, kurz WMS) ein, um Aufträge verschiedene Online-Plattformen wie Shopify, Billbee etc. zu verarbeiten. Dabei ist wichtig, den pro Kunde und Auftrag passenden Versandtarif bzw. Versanddienstleister zu finden. Hierbei spielen verschiedene Parameter eine Rolle, z.B.
- Land und PLZ des Empfängers.
- Abmessungen und Gewicht des Pakets.
- Der Inhalt des Pakets.
Die Lösung:
Über einen in der Versandsoftware integrierten Editor kann pro Kunde ein Skript hinterlegt werden, welches die o.g. Parameter in einem frei definierbaren Regelwerk verwendet. So wird am Ende des Skripts der passende Versanddienstleister (DHL etc.) und die passende Versandart, wie z.B. Paket national, international, Warenpost oder Kleinpaket ermittelt.

Syntax-Highlighting und Intellisense sorgen für Sicherheit bei der Eingabe im Skript-Editor:

Das Ergebnis wird dann im Workflow an die Automatisierungs-Software übergeben, welche dann über die passende Dienstleister-API Versandauftrag und Labeldruck übernimmt.

Das Versandsoftware-Skript unter der Haube
Die Versand-Automatisierung wurde in Python umgesetzt. Da sich Python jedoch nur bedingt für benutzerdefinierte Skripts eignet, werden diese in einer leicht erlernbaren, BASIC-ähnlichen Sprache erfasst. Kenntnisse über Python oder das für Python typische Einrücken von Code sind nicht notwendig.
Beim Speichern erzeugt ein Python-Transpiler aus dem BASIC-Code reinen Python-Code, der sich nahtlos in den bestehenden Workflow einfügt. Fehler bei der Eingabe werden dabei zuverlässig erkannt und ausgegeben.
So wird aus diesem BASIC-Code:
|
1 2 3 4 5 |
If LKZ = "DE" Then Carrier = "DHL" Else Carrier = "WWV" End If |
Dieser Python-Code:
|
1 2 3 4 |
if LKZ == "DE": Carrier = "DHL" else: Carrier = "WWV" |
Eine Testumgebung, bei der die Paket-Parameter simuliert werden können, hilft Fehler der Versandsoftware im laufenden Betrieb zu vermeiden:

Eine ausführliche Hilfefunktion rundet die Entwicklungsumgebung ab:
Fazit
Über einen Python zu BASIC Transpiler wurde eine einfache Schnittstelle geschaffen, um leicht programmierbare User-Skripts in eine bestehende Automatisierung zu integrieren.
Diese Lösung ist nicht an eine Versandsoftware gebunden, sondern lässt sich auch in andere Projekte einbauen.
Hier ein weiteres Beispiel:
Automatisierung von DATEV Abrechnungen per Skript.
