Die Datenverarbeitung und -optimierung mit Synesty zu automatisieren, spart enorm viel Zeit und demnach auch Kosten. Allerdings nur, wenn dieser Prozess auch fehlerfrei verläuft. Arbeitet man nämlich mit wiederkehrenden Dateien, die auch noch immer den selben Namen tragen, kann es innerhalb des aufgebauten Flows zu Verwirrungen kommen. Aber auch für ein solches Szenario haben wir eine Lösung. Deswegen erfahren Sie in diesem Beitrag, wie Sie verhindern, dass bereits heruntergeladene Dateien erneut verarbeitet werden.
In unserem Forum hat ein Synesty Nutzer folgendes Szenario beschrieben: Der Logistikpartner übermittelt täglich eine CSV-Datei mit aktuellen Bestellnummern und deren Trackingnummern. Die Datei trägt immer den Namen produktdaten.csv und wird täglich mit den neusten Daten vom Logistiker überschrieben. Nach einem festen Zeitplan importiert unser Kunde diese Datei täglich, um sie dann mit Plentymarkets abzugleichen.
Nun stellt sich die Frage: Wie kann verhindert werden, dass hier nicht versehentlich Daten doppelt übernommen und beispielsweise per FTP heruntergeladene Dateien in der nächsten Flow Ausführung erneut verarbeitet werden. Dies wäre nämlich der Fall, würde der Logistiker die Daten einmal nicht übermitteln. Laut Flow würde dann die vorherige Datei am nächsten Tag ein weiteres Mal übernommen werden.
Bevor wir zu Lösung des Problems kommen, schauen wir uns zunächst an, wie der Import-Flow momentan aussieht:
Anhand dieses Aufbaus des Flows kann man das Problem der doppelten Datenverarbeitung noch einmal deutlich erkennen. Die Datei, die der Logistikpartner übermittelt, trägt immer den gleichen Namen und liegt am selben Ort. Daher kann auch die Anweisung automatisiert werden, täglich die produktdaten.csv herunterzuladen. Ob es sich hierbei allerdings um eine neue Datei handelt, wird nicht geprüft. Der Prozess weiß also nicht, ob er die Datei bereits schon einmal verarbeitet hat oder nicht. Demnach würde der Flow auch durchlaufen, wenn die produktdaten.csv durch den Logistikpartner am Tag zuvor nicht überschrieben wurde.
Um nun zu verhindern, dass die gerade verarbeitete Datei produktdaten.csv des Logistikers durch den Prozess erneut abgerufen wird, empfehlen wir diese am Ende des Flows in einen Archiv-Ordner auf dem FTP-Server zu verschieben. Dabei sollte der Dateiname mit dem aktuellen Datum versehen werden. Das hat den Vorteil, dass man danach genau sieht, wann die Datei verarbeitet wurde.
Realisiert werden kann das Umbenennen und Verschieben mit Hilfe des Steps FTPRename.
Es ist wichtig, dass dieser Step an das Ende des Flows angehangen wird. Konfigurieren können Sie diesen wie folgt:
Diese Einstellung würde die Datei auf dem FTP-Server in einen Ordner „archive“ verschieben. Damit die Ausführung funktioniert, muss der Ordner jedoch innerhalb des ursprünglichen Verzeichnisses liegen. Zusätzlich bekommt die soeben verschobene Datei einen neuen Dateinamen mit Zeitstempel, z.B. _done_20220714_142415.csv. Die verfügbaren Variablen / Platzhalter (wie z.B. ${prop_actualruntime(„yyyyMMdd_HHmmss“)} erhalten Sie durch Klick auf den +-Button. Als Input muss der FTPRename die zuvor heruntergeladenen Dateien bekommen.
Diese kommen in der Regel aus den Steps:
Dank dieser Lösung läuft der Flow nun ohne Komplikationen durch. Lädt der Logistiker also eine neue Version der produktdaten.csv hoch, wird die Datei zuerst verarbeitet und am Ende archiviert. Zu einer doppelten Datenverarbeitung aufgrund der fehlenden Überarbeitung der Datei durch den Logistikpartner kann es jedoch nicht mehr kommen.
Bei der Datenverarbeitung kann es passieren, dass gleichnamige Dateien aus Versehen doppelt verarbeitet werden. Um dies zu verhindern, sollte der aufgebaute Flow durch einen Step erweitert werden. “newRemoteFilenamePrefix” verschiebt die heruntergeladene Datei am Ende der Verarbeitung in einen anderen Ordner und ändert zudem den Dateinamen. So wird erfolgreich vermieden, dass bereits heruntergeladene Dateien erneut verarbeitet werden.
Weitere Informationen zur Thematik finden Sie in diesen Cookbook-Beitrag im Forum der als Grundlage für diesen Artikel diente. Ausserdem finden Sie im Handbuch auch weitere Anleitungen, wie Sie Dateien per FTP einlesen können.