Ausgangsbasis
Ein Kunde kontaktierte uns mit einem Problem bei der Umstellung seines Warenwirtschaftssystems (wawi). Er wollte seine Wawi wechseln und die Daten aus seinem bisherigen Cloud-System (Saas – Software as a Service) sichern.
Leider bot der Anbieter keine vernünftige und vollständige Downloadfunktion, zusätzlich werden nach Vertragsende alle in der Cloud befindlichen Daten am Folgetag umgehend gelöscht. Dennoch müssen alle Rechnungslegungsrelvanten Daten (Rechnungen, Gutschriften, etc) gesichert werden.
Analyse & Planung
Bei der Analyse von bestehenden Möglichkeiten auf die Daten und Dokumente zuzugreifen, stellte sich heraus, dass der Anbieter eine sogenannte WebDAV Schnittstelle zur Verfügung stellte. Diese Schnittstelle ist zur Bereitstellung für Daten über das Internet gedacht. Dabei fanden wir heraus, dass alle Belege in vielen verschachtelten Einzelordnern abgelegt waren.
Die ersten Test-Downloads scheiterten, da ein rekursives downloaden bzw. synchronisieren aufgrund der Belegmenge nicht darstellbar war. Der Server stellte nur eine sehr niedrige Übertragungsbandbreite zur Verfügung (ca 50kbps, zum Vergleich wer es noch kennt: das war langsamer als ein richtig konfiguriertes 56k-Modem aus den 90ern). Weitere Probleme bestanden darin, dass der Download in mehreren Stufen erfolgen musste. Ein kompletter Download musste entsprechend zeitig vor Laufzeitende erfolgen. Ein bzw. mehrere weitere Delta Downloads kurz vor Laufzeitende und am letzten Tag vor der Umschaltung.
Da ein echtes Synchronisieren wie man es üblicherweise nutzen würde aufgrund der niedrigen Servergeschwindigkeit ausschied, betrachten wir alternative Möglichkeiten: Nachdem wir uns schnell von dem Gedanken gelöst hatten, herkömmliche Tools für WebDAV Schnittstellen zu nutzen, überlegten wir, wie wir anders an die Dateien kommen können.
Das System hatte eine Export Funktion aller Belegdaten/Geschäftsvorfälle. Wir schauten uns die Tabellen/CSV-Dateien genauer an. Mit den darin enthaltenen Informationen konnten die Verzeichnis- und Dateinamen generiert werden, welche dann direkt auf dem Server abgerufen werden konnten. Da diese Vorgehensweise an einigen Stichproben stets zum Erfolg führte, entschieden wir uns nach Rücksprache mit dem Kunden, hierfür ein entsprechendes kleines Programm zu entwickeln.
Die Anwendung sollte lokal auf Windows PCs ohne weitere Anforderungen lauffähig sein. Wir entschieden uns hierbei für die kostenfreie Entwicklungsumgebung Lazarus. Diese ist auf der Sprache Object Pascal basierend und erlaubt schnell Windows Anwendungen zu entwickeln, die ohne weitere Anforderungen auf (fast) jedem Windows PC laufen.
Funktionsumfang der Anwendung
- alle aus der Warenwirtschaft exportierten CSV-Dateien einlesen
- alle enthaltenen Belege auswerte
- entsprechend der Bedingungen die Dateinamen für den Download generieren
- die Dateinahmen zuerst lokal prüfen, ob diese bereits heruntergeladen wurden
- falls dies nicht der Fall, wird die Verbindung zum Server aufgenommen und die Datei heruntergeladen
Entwicklung und Übergabe
Nach der Fertigstellung der Anwendung und ersten positiven Test-Downloads, wurde angefangen den Gesamtdownload jahresweise zu starten. Hierbei stellte sich noch nach und nach einige Stolpersteine in den Weg, die aus Sonderkonstallationen bei der Belegerstellung resultierten.
Gutschriften hatten beispielsweise in besonderen Fällen von der bisher bekannten Regel abweichende Dateinamen. Hierfür haben wir bereits in der Entwicklung der Anwendung ein Protokoll in die Anwendung integriert, in diesem Fehler nachvollzogen werden können. So konnten auftauchende Probleme schnell in den Protokollen erkannt werden und die Programmlogik kurzfristig angepasst und erneut getestet werden.
Alle Belege konnten nun automatisiert heruntergeladen werden.
An den letzten Tagen des alten Warenwirtschaftssystems erfolte der Download täglich, um die Datenmenge zum Ende hin klein zu halten.
Am Abend des letzten Tages wurden nach Rücksprache mit dem Kunden und Umschalten der Warenwirtschaft noch alle fehlenden Belege heruntergeladen. Außerdem wurden noch eine letztes Mal alle Jahre versucht herunter zu laden.
Die eingebaute Logik-Prüfung, ob die Datei bereits in der lokalen Sicherung existierte, stellte sicher dass nur im Falle des Fehlens einer Datei ein Download initiiert wurde. Somit konnte sichergestellt werden, dass bei frühreren Downloads kein Beleg “durchgeruscht” ist.
Nach Abschluss des Projektes wurden dem Kunden der finale Datenbestand auf einer externen Festplatte übergeben. Die Anwendung hatte ganze Arbeit geleistet.
Es wurden ca 17 GB in Form von knapp 310.000 Belegen heruntergeladen.