Die digitale Nachtschicht: Wie drei Power Automate Flows die LKW-Überwachung am Laufen halten

Im Hauptartikel dieser Serie ging es um das große Bild. Hier geht es um den Motor darunter. Drei Power Automate Flows, die im Hintergrund dafür sorgen, dass aus einer wöchentlichen Exceldatei am Ende ein sauber überwachter, behördenkonformer Prozess wird. Dazu ein vierter, kleinerer Flow, der einfach nur rechtzeitig an den Monatsabschluss erinnert.

Flow 1: Sharepoint füllen

Dieser Flow bereitet die rohen Fahrtdaten für den Import in SharePoint vor. Alle Zeitfenster außerhalb von 22 bis 6 Uhr werden verworfen, unnötige Abladestellen ebenfalls. Eingebaut ist außerdem eine Sicherheitsschleife, die zuerst die Spaltennamen der Quelldatei einliest und kontrolliert, ob die erwarteten Spalten überhaupt vorhanden sind. Wenn nicht, bricht das Script kontrolliert ab und eine Mail informiert, dass sich vermutlich die Spaltennamen an der Quelle geändert haben. Lieber einmal zu viel abbrechen, als still und heimlich falsche Daten in die Liste zu schreiben.

Der Flow bildet außerdem eine Schlüsselspalte, zusammengesetzt aus mehreren Feldern, getrennt durch ein Pipe-Zeichen. Damit lassen sich Fahrten eindeutig identifizieren, selbst wenn Werte wie Kennzeichen oder Ankunftszeit für sich genommen nicht eindeutig genug wären. Wie genau dieser Schlüssel aufgebaut ist und warum er später für die Duplikaterkennung entscheidend wird, steht im Detail im Artikel zur SharePoint-Liste.

Die Sache mit dem BadGateway Fehler

Die eigentliche Geschichte dieses Flows ist aber eine andere. Beim ersten Test lief das dahinterliegende Office Script in der lokalen Excel-App tadellos und schnell. Sobald Power Automate dasselbe Script serverseitig ausführen sollte, kam es zu Fehlern. Der Grund war schnell klar. Office Script arbeitet serverseitig grundlegend anders als lokal. Wo man auf dem eigenen Rechner problemlos Zeile für Zeile und Zelle für Zelle bearbeiten kann, erwartet die Cloud-Ausführung, dass Daten erst komplett in ein Array geladen, dort verarbeitet und danach in einem Rutsch zurückgeschrieben werden.

Also wurde das Script entsprechend umgebaut. Datenverarbeitung im Array, keine einzelnen Zeilen- und Spaltenlöschungen mehr. In der eigenen Testumgebung lief danach alles wie geplant. In der echten Werksumgebung kam trotzdem wieder derselbe BadGateway Fehler zurück, obwohl der Code identisch war.

Mehrere Stunden Fehlersuche später, ohne dass eine KI-Unterstützung an dieser Stelle weiterhelfen konnte, lag die Lösung nicht im Script, sondern in der Konfiguration des Konnektors. Die Wiederholungsrichtlinie stand auf Standard, bei mir konnte ich den Fehler beheben, indem ich diese entweder auf „keine“ setzte oder auf eine regelrechte Penetration des Systems (90 Versuche in 60 Sekunden).
Das eigentlich Problem jedoch lag hier bei Microsoft. Neben meinen beiden Lösungen, etablierte sich noch eine dritte Lösung in den Reddit Foren. Die dritte Lösung ruft die Exceldatei vorher kurz auf, bevor ein Script drüber lief. Welche Lösung bei den Usern half, schien aber eher zufällig. Mal war es eine von meinen, mal die des Users aus Norwegen. Microsoft benötigte über eine Woche um den Fehler nachhaltig abzustellen. Eine wirkliche Info in die Community gab es hierbei jedoch nicht… auch keinen offiziellen Fehler oder Problem 😉

Flow 2: Überwachung Auflage

Dieser Flow läuft täglich zu einer festen Uhrzeit und prüft die komplette Liste des laufenden Monats. Er ruft alle Elemente ab, extrahiert die eindeutigen Schlüssel und zählt anschließend, wie oft jeder Schlüssel für dieselbe Position im relevanten Zeitraum vorkommt. Wird die zulässige Anzahl an Fahrten für ein Tor überschritten, werden die betroffenen Zeilen in einer HTML-Tabelle zusammengefasst, formatiert und per Mail an die verantwortliche Stelle geschickt.

Klingt im Nachhinein simpel, war es aber nicht. Bis der Flow zuverlässig lief, sind einige kleinere Stolpersteine dazugekommen, unter anderem musste die Zähllogik am Ende so angepasst werden, dass Fahrten, die exakt an der Grenze zwischen zwei Zeitfenstern beginnen oder enden, nicht doppelt gezählt werden.

Was hier interessant ist, die Abladestellen haben unterschiedliche Vorgaben. Bei einer dürfen Nachts mehr LKWs pro Stunde entladen werden, wie bei den anderen beiden. Der Flow berücksichtigt dies und besitzt pro Abladestelle unterschiedliche Grenzwerte.

Flow 3: Order reinigen

Der unauffälligste der drei Flows, aber genauso wichtig. Er überwacht regelmäßig den Ordner, in dem neue Rohdateien landen, und entfernt Dateien, die bereits verarbeitet wurden. Ohne diesen Flow würde der Ordner mit der Zeit vollaufen und irgendwann selbst zur Fehlerquelle werden, etwa wenn ein anderer Flow versehentlich eine längst verarbeitete Datei ein zweites Mal aufgreift.

Und dann noch die Erinnerung

Ein kleiner, bewusst simpel gehaltener vierter Flow erinnert rechtzeitig an den Monatsabschluss. Keine komplexe Logik, einfach eine Teams- oder Mailnachricht zum passenden Zeitpunkt im Monat.

Zusammen bilden diese vier Flows das Rückgrat, auf dem die SharePoint-Liste und die Power App aufbauen, die in den nächsten beiden Artikeln dieser Serie im Detail folgen.

Martin Reichelt ist Spezialist für Microsoft-Automatisierung und Verfechter der Citizen Developer Bewegung. Bei XelUp zeigt er, wie man das volle Potenzial von Excel ausschöpft und durch Power Automate effiziente Cloud-Workflows schafft, um wertvolle Lebenszeit im Job zurückzugewinnen.