Don’t be a fool, use the right tool - Excel-Tabellen mittels Microsoft Flows in einem E-Mail-Body versenden.

titelbild-fool-flow

„Wenn zum wiederholten Male eine Aufgabe manuell erledigt wird, kann diese auch automatisiert werden." Diesen oder so ähnlich formulierte Ansätze vertreten sicherlich viele Informatiker in ihren täglichen Arbeitsabläufen.

Da ich selbst in solch einer Lage war, möchte ich hier kurz die Ausgangssituation und meine anschließende Erfahrung mit Microsoft Flow teilen.

Zur Situation

Bei der ORDIX AG arbeite ich intern u.a. im Bereich der Ausbildung und Betreuung unserer Studenten. Für eine optimale Planung und Übersicht aller Maßnahmen im Bereich Ausbildung haben wir eine Excel-Tabelle mit allen wichtigen Informationen händisch gepflegt. Zu Beginn jeder Woche hat eine Kollegin aus der Verwaltung die Exceldatei sowohl in den Anhang als auch die enthaltenen Tabellen in den Mail-Body eingefügt und versendet.

Genau den im letzten Satz beschriebenen Arbeitsvorgang galt es für mich zu automatisieren.

Microsoft Flows

Mittels Microsoft Flows können wir laut Microsoft durch eigens erstellte, automatisierte Workflows unseren Alltag erleichtern. Unter dem Motto „Work less, do more" soll der Dienst einem gerade die zeitfressenden Dinge im Arbeitsalltag abnehmen. Microsoft Flow gehört gemeinsam mit PowerApps und Power BI zur Produktfamilie der Microsoft Power Plattform. Durch die große Anzahl an Konnektoren können viele Systeme (auch Drittsysteme) eingebunden und eine umfangreiche Prozessautomatisierung entwickelt werden.

Umsetzung

Für die Demo verwende ich eine fiktive Excel-Datei, welche auf der ersten Arbeitsmappe drei Tabellen (Urlaub, Überstunden & Krankheitstage) enthält. Die Tabellen sind innerhalb von Excel als Tabelle formatiert und haben einen entsprechenden Namen konfiguriert bekommen.

Wie Sie einen Namen vergeben können, erfahren Sie hier:
Shortcut: Strg + F3
Details: https://support.microsoft.com/de-de/office/umbenennen-einer-excel-tabelle-fbf49a4f-82a3-43eb-8ba2-44d21233b114

Die drei Beispiel-Tabellen sehen wie folgt aus:

Urlaub
Überstunden
Krankheitstage

Die Excel-Tabellen können, wenn gewünscht, hier heruntergeladen werden. Damit die Datei später durch Microsoft Flow verwendet werden kann, wird sie in diesem Beispiel in meinen Microsoft OneDrive-Space abgelegt.

Flow-erstellung

Zunächst verbinde ich mich mit der Power-Automate-Plattform meines Office-365-Abonements (siehe Abbildung 1) und erstelle anschließend über den „+Create"-Button auf der linken Seite einen „Scheduled cloud flow". (siehe Abbildung 2). Nach der Namensvergabe wird ein Zeitintervall definiert, über den der Flow regelmäßig ausgeführt werden soll. Ich habe mich, wie in der Einleitung beschrieben, für eine wöchentliche Ausführung jeden Montag um 10 Uhr entschieden (siehe Abbildung 3).

Abbildung 1: Auswahl Power Automate
Abbildung 2: Erstelle "Scheduled cloud flow"
Abbildung 3: Zeitplan festlegen
Abbildung 4: Detailansicht Flow-Scheduler

Aufbau und Konfiguration des eigentlichen Flows:

In den nachfolgenden Abschnitten wird der Aufbau des gesamten Flows beschrieben, sodass dieser einfach nachgebaut werden kann.

Als Erstes wird der Flow unter „My flows" geöffnet und über „Edit" bearbeitet. Dort sollte zunächst nur eine Aktion bzw. ein Trigger für die wöchentliche Ausführung zu sehen sein (siehe Abbildung 4). Am unteren Rand jedes Flow-Objektes ist ein Pfeil bzw. ein Pluszeichen zu sehen. Der Pfeil dient zur weiteren Verknüpfung mit anderen Flows. Durch das Pluszeichen lassen sich weitere Aktionen einem Flow hinzufügen.

Zuerst wird nach einer Aktion mit dem Namen „Variable" gesucht und dem Flow hinzugefügt (siehe Abbildung 5).
Anschließend wird diese Aktion mit den gewünschten Inhalten befüllt:
Name: CW -> freiwählbarer Name einer Variablen
Type: String -> Datentyp einer Variablen
Value: add(…) -> Expression = div(dayOfYear(utcNow()),7) (siehe Abbildung 6)

Die hier erzeugte Variable wird später verwendet, um im Betreff der E-Mail die Kalenderwoche (CW) mitzugeben.

Abbildung 5: Aktion "Variable" auswählen
Abbildung 6: Aktion Variable konfigurieren

Die nächsten beiden Aktionen laden zum einen die Metadaten (get file meatdata) und zum andern den Inhalt der Excel-Datei (get file content of status) in den Microsoft Flow. Hierbei ist zu erwähnen, dass als Aktion der Typ "OneDrive for Business" ausgewählt wurde, da sich die Datei in meine Office 365 OneDrive Space der ORDIX AG befindet. (siehe Abbildung 7)

Abbildung 7: OneDrive Daten abfragen

Bis zu diesem Punkt wurden ausschließlich Vorbereitungen für das eigentliche Ziel getroffen: Den Versand der E-Mail zu implementieren. Mit den nächsten Schritten bereiten wir unseren MS-Flow soweit vor, dass am Ende nur noch eine E-Mail-Aktion erstellt werden muss. Die nächsten drei Aktionen sind für die Anzeige der Excel-Tabelle im E-Mail-Body essenziell notwendig. Es ist zu erwähnen, dass dieser Teil pro Excel-Tabelle (Urlaub, Überstunden & Krankheit) zu wiederholen ist. Um Redundanz an dieser Stelle zu vermeiden, wird hier nur ein Durchlauf für die Tabelle „Urlaub" beschrieben.

Bei den drei Aktionen handelt es sich um:
  1. Excel Online (Business) -> „List rows present in a table"
  2. Data Operation -> „Filter Array"
  3. Data Operation -> „Create HTML table"
Alle drei Aktionen werden entsprechend der Abbildung 8 hintereinander angereiht.
Abbildung 8: Aktionen pro Excel-Tabelle

Schauen wir uns die drei einzelnen Schritte etwas mehr im Detail an (siehe Abbildung 9):
Innerhalb der „List-rows-present-in-a-table"-Aktion wird erneut auf die gewünschte Excel-Datei referenziert. Zusätzlich wird im letzten Punkt „Table" abgefragt, welche Tabelle aus der Excel-Datei ausgelesen werden soll. Um diese Information abfragen zu können, muss jede Tabelle innerhalb der Excel-Datei entsprechend formatiert sein und sollte einen sprechenden Namen zugewiesen bekommen haben. In diesem Beispiel: „Urlaub".
In der zweiten Aktion „Select Urlaub-Infos" übergeben wir über den Punkt „From", von welchem Ort die Daten extrahiert werden sollen. Da eine Verbindung zur vorhergehenden Aktion besteht, kann, nachdem in die Textbox geklickt wurde, das Objekt „value (List of items)" eingefügt werden. Die nachfolgenden Konfigurationen unter „Map" dienen der Zuordnung von Spaltenwerten aus der Excel-Tabelle zu einem selbstdefinierten Key. Diese Zuordnung ist für die letzte Aktion „Create HTML table for Urlaub" notwendig.

Abbildung 9: Aktionen pro Excel-Tabelle Details

In der letzten Aktion dieses Konfigurationsschrittes fügen wir, wie zuvor erwähnt, eine „Data-Operation"-Aktion hinzu. Auch hier haben wir eine Konfigurationsmöglichkeit mit dem Namen „From". Um eine HTML-Tabelle aus den Excel-Daten zu erzeugen, tragen wir jetzt als Wert den Output aus „Select Urlaub-Infos" ein. (siehe Abbildung 10)

Abbildung 10: Create HTML Input Auswahl

Die eben aufgezeigten drei Aktionen müssen, wie zuvor erwähnt, pro Excel-Tabelle wiederholt werden. In diesem Beispiel habe ich somit dreimal die Kette aus „List rows present in a table", „Filter Array" und „Create HTML table" erzeugt. (s.h. Abbildung 11)

Abbildung 11: Aktionen pro Excel-Tabelle Überblick

Zum Schluss fehlt der Schritt, um eine E-Mail zu versenden. Dies wird mit der Aktion „Send an email (V2)" ermöglicht (siehe Abbildung 12).
Die Aktion ist wie folgt zu konfigurieren:

To: Empfänger-Liste (muss im Office 365-AD vorhanden sein)
Subject: Ich habe hier noch die Variable für die Kalenderwoche hinzugefügt.
Body: Freitext inklusive des jeweiligen Outputs aus „Create HTML table" pro Tabelle.

Über den Link „show advanced options" kann zusätzlich der Anhang als Datei angefügt werden. Unter „Attachments Name – 1" wird das „Display-name"-Objekt aus der Aktion „get file metadata" ausgewählt. Für die eigentliche Datei bzw. den Inhalt wird unter „Attachment Content" das Objekt „File content" aus der Aktion „get file content of status" hinzugefügt (siehe Abbildung 12).

Abbildung 12: Aktion Mail Konfiguration

Abbildung 13 zeigt abschließend den kompletten Flow noch einmal mit zusammengeklappten Aktionen. Der Flow kann zusätzlich durch einen Klick auf „Test" (oben rechts) erprobt werden.

Abbildung 13: kompletter Flow

Hierbei ist zu beachten, dass der Report tatsächlich ausgeführt und die entsprechenden Aktionen getriggert werden. Somit habe ich nach dem erfolgreichen Test eine E-Mail mit dem nachfolgenden Inhalt erhalten:

Abbildung 14: Test-E-Mail

Fazit

Zu Beginn scheint Microsoft Flows sehr mächtig und unübersichtlich zu sein. Ich hatte zunächst auch Schwierigkeiten, die entsprechenden oder notwendigen Aktionen zu finden. Ein Vorteil waren u.a. die etlichen Vorlagen, welche seitens Microsoft zur Verfügung gestellt werden. Es lohnt sich definitiv, einen Blick in die vordefinierten Templates zu werfen. Vielleicht ist ja genau Ihr Use-Case schon dabei. Mein Problem mit den Excel-Tabellen im E-Mail-Body war leider (noch) nicht vorhanden und so musste ich mittels mehrerer Aktionen mein Ziel erreichen. Hierbei wird aber recht schnell deutlich, wie mächtig Microsoft Flows eigentlich sein kann. Durch nur wenige Klicks habe ich mir einen automatisierten Flow erstellt, der jetzt jede Woche montags getriggert wird und meine Kolleg:innen und mich informiert. Einzig die Pflege der Excel-Datei muss noch manuell durchgeführt werden. Das lässt sich aber womöglich auch noch automatisieren….

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/