Branche: Recycling, Realisiert mit Python, Xojo, SQlite, SOAP
Ein bereits bestehendes Projekt zum automatischen Erzeugen von Transportbegleitformularen wurde um die elektronische Nachweisführung für Abfälle durch ZEDAL erweitert. ZEDAL ist die zentrale Plattform zur Nachweisführung für Entsorgungs- und Recyclingbetriebe. Über ein entsprechendes Notifizierungsverfahren müssen im Onlineportal von ZEDAL mindestens 3 Tage vor Transportbeginn für alle grenzüberschreitenden Fahrten entsprechende Transportdokumente erstellt werden. Die Technik hinter dem ZEDAL-Portal basiert auf XML und SOAP.
Die elektronische Meldung bei ZEDAL in der Praxis
Das o.g. Meldeverfahren bei ZEDAL stellt folgende Anforderungen:
- Die Anzahl der Fahrten zu einem bestimmten Datum müssen vorab bekannt sein.
- Das Transportdokument wird nach Verwiegung des LKWs online um Gewicht und Angaben zum Spediteur ergänzt.
- Anschliessend wird das Transportdokument an ZEDAL übermittelt.
- Erst nach positiver Rückmeldung der Verarbeitung durch den ZEDAL Server erhält der Fahrer grünes Licht für den Transport.
- Transportdokumente, die am Transporttag nicht verbraucht wurden, sollten aus Kostengründen online storniert werden.
Da das Meldeverfahren einen hohen manuellen Aufwand erzeugt, bietet ZEDAL hierzu entsprechende Schnittstellen zur Automatisierung an. Auf diese Weise wird der manuelle Aufwand auf ein Minimum beschränkt.
Der ZEDAL-Webservice: Anbindung mittels SOAP
Mittels SOAP-Protokoll lässt sich das Meiste über den Webservice von ZEDAL erledigen.
Der einzige manuelle “Rest-Aufwand” des Kunden besteht darin, im ZEDAL-Portal die geschätzte Anzahl an Transportdokumenten pro Datum aus einer Vorlage zu generieren. Ab dann läuft alles automatisch:
- Ein in Python geschriebener SOAP Client holt über den ZEDAL-Webservice alle vom Kunden generierten Transportdokumente als XML-Dateien ab und speichert diese in einem lokal verwalteten Dokumentenpool.
- Die in Xojo realisierte Schnittstelle zur Waage startet eine weitere Python App und übergibt Transportdatum, Gewicht und Spediteur als Parameter.
- Die Python App holt sich anhand der Kennung des Spediteurs dessen Adressdaten aus einer SQlite-Datenbank und ergänzt das XML-Dokument um entsprechende Angaben.
- Das so modifizerte XML-Dokument wird via SOAP an den ZEDAL-Webservice gesendet.
- Hat der ZEDAL-Webservice das XML-Dokument quittiert, wird es aus dem lokalen Pool entfernt.
- Als letzter Schritt werden alle nicht verbrauchten Transportdokumente via SOAP beim ZEDAL-Server storniert.
Alle möglichen Fehlerquellen werden von der Software erkannt und entsprechende Aktionen ausgelöst. Hierzu zählen z.B. Störung der Internetverbindung, Störung des ZEDAL-Servers, defekte XML-Dateien im lokalen Dokumentenpool oder evtl. Fehler in der Verarbeitung der XML-Dokumente seitens ZEDAL oder der Python App.
Ein detailliertes Log-System gibt hier genaue Auskunft über alle Vorgänge.
Treten Fehler auf, erfolgt die Benachrichtigung der entsprechenden Stellen über folgende Wege:
- Per Mail an den Support, inkl. Logdatei und dem entsprechenden XML-Dokument im Anhang
- Als asynchrone (nicht blockierende) Fehlermeldung am Bildschirm in der Verwaltung.
- Als Ausdruck direkt beim Fahrer an der LKW-Waage
Hierzu wurde ebenfalls eine entsprechende App in Python programmiert.
Weiterführend Links:
Automatisierung eine LKW-Waage von Schenck Processing
ZEDAL Website