TEIL 3 – Die Geschäftslogik (Power Automate), Zusammenfassung und Ausblick.
Im dritten und letzten Teil dieser Reihe sollen die Komponenten logisch verknüpft werden. Das Ticketsystem aus Office 365 Komponenten wird hier fertiggestellt. Hierfür werden zwei neue Flows in Power Automate erstellt. Ein Flow zur Anlage neuer Aufgaben / Tickets nach Übermittlung des Formulars. Sowie ein Flow zur Rückmeldung an den Ticketersteller, sobald das Ticket geschlossen wurde.
Dieser Beitrag verteilt sich auf 3 Teile:
Erster Teil – Die Idee zum Ticketsystem, die Anforderungen und das Zielbild.
Zweiter Teil – Das Webformular (Microsoft Forms) und der Aufgabenplan (Microsoft Planner).
Dritter Teil – Die Geschäftslogik (Power Automate), Zusammenfassung und Ausblick. Dieser Teil.
Vierter Teil – Das Ticketsystem erweitern und verbessern
Neuer Flow: Ticket eröffnet
Zur Anlage der Flows wechseln Sie jeweils in Power Automate, wählen Sie „Erstellen“ (Mit leerer App starten) und „Automatisierter Cloud-Flow“. Vergeben Sie einen Flownamen (hier: Ticketsystem-DEMO bzw. Ticketsystem-TicketClosed-DEMO) und definieren Sie einen Trigger. Im ersten Fall (Anlage neues Ticket) ist dies Forms – Bei Übermitteln einer neuen Antwort. Im zweiten Fall Planner – Bei Abschluss einer Aufgabe.
Hinweis: Sie erreichen alle Komponenten von Office 365 über das Backend office.com.
Im Folgenden werden beide Flows näher erläutert.
- Der Flow wird getriggert durch die den Forms-Trigger „Bei Übermitteln einer neuen Antwort“. Hier ist die Formular-ID des angelegten Formulars zu wählen (hier: neues Ticket-Demo). Der Trigger selbst liefert nur die Antwort-ID des Formulars zurück, sodass die Aufgabendetails im nächsten Schritt abzurufen sind.
- Durch die Aktion „Antwortdetails abrufen“ werden die Details der Antwort (also Stichwort, Beschreibung, Priorität, etc.) ermittelt. Diese Aufgabe übergibt dann alle Formulareingaben als Ausgabe weiter.
- In Abhängigkeit der gewählten Kategorie (hier: Webseite, ERP, CRM) wird eine Aufgabe im Planner erstellt, dem verantwortlichen Bearbeiter zugewiesen und um Details (hier: Beschreibung des Tickets) ergänzt. Hinweis: In der Abbildung oben ist nur der Entscheidungszweig „Webseite“ dargestellt. ACHTUNG: Aktuell scheint Power Automate noch Probleme mit Umlauten bzw. dem scharfen s “ß” zu haben. Der Fehler tritt auf, wenn der Flow erneut zum Bearbeiten geladen wird. Die definierte Option (Hier: Webseite, ERP bzw. CRM) geht dann verloren. Workaround für dieses Verhalten: Benennen Sie Ihre Optionen um. D.h. statt “Groß-/Kleinschreibung” z.B. “Webseite” oder “Option1”, etc.
Wie in Teil 2 schon erwähnt soll die Priorität der Tickets als Teil des Übergebenen Formularwertes (String) übermittelt werden (z.B. „3-Wichtig“). Das entsprechende Feld „Priorität“ in der Aktion „Eine Aufgabe erstellen“ akzeptiert aber nur Integer-Werte (Vgl. folgende Abbildung).
Wir müssen also den String zerlegen und das erste Zeichen (hier: „3“) in eine Zahl (Integer) umwandeln. Hierfür wird im Bereich Ausdruck folgende Formel eingegeben:
int(substring(outputs('Antwortdetails_abrufen')?['body/rfa56259d98224076949117e3f4ba293a'],0,1))
Wobei 'body/rfa56259d98224076949117e3f4ba293a'
sich auf einen dynamisch erzeugten JSON-Key bezieht. Am einfachsten können Sie den Bezug herstellen indem Sie mit dem Cursor zwischen den zwei Klammern der substring-Funktion den Reiter „Dynamischer Inhalt“ wählen und das entsprechende Feld (hier: Priorität) markieren (Vgl. folgende Abbildung). Mit einem Klick auf den blauen „OK“-Button übernehmen Sie den Ausdruck in das Feld.
Folgendes Video zeigt die Erstellung des dynamischen Ausdrucks für die Priorität:
In der letzten Aktion des Kontrollflusses „Aufgabendetails aktualisieren“ wird der Aufgabe noch die Beschreibung sowie als erstes Prüflistenelement (Prüflisten ID 0) die E-Mail des Ticketerstellers (Responders E-Mail) übergeben. Dieses Vorgehen wähle ich als pragmatischen Weg die Anforderung A 4 aus Teil 1 abzubilden.
Neuer Flow: Ticket geschlossen
- Der Flow wird getriggert durch den Planner-Trigger „Bei Abschluss einer Aufgabe“. Hier ist die Gruppen-ID (in welcher der Plan sowie das Team registriert sind) und die Plan-ID anzugeben.
- Um alle Details der abgeschlossenen Aufgabe zu beziehen muss die Aktion „Aufgabendetails abrufen“ folgen. Hier ist die von der Vorgängeraktion übergebene ID anzugeben.
- Als nächstes muss die E-Mail des Benutzers ermittelt werden, welcher das Ticket initial erstellt hat. Also der Benutzer, welcher das Formular (Forms) abgeschickt hat. Wie oben beschrieben ist wurde die E-Mail im ersten Prüflistenelement der Aufgabe hinterlegt. Diese gilt es nun aus dem übergebenen Payload zu ermitteln. Hierfür wird der Datenvorgang „Verfassen“ gewählt. In dessen Eingabe wird folgender Ausdruck hinterlegt:
outputs('Aufgabendetails_abrufen')?['body/checklist'][0]['value']['title']
- Nach Kenntnis der Benutzer-ID möchten wir nun auch weitere Informationen zum Nutzer (E-Mail, Vornamen, etc.) um adäquat mit diesem kommunizieren zu können. Hierfür wird die Aktion „Benutzerofil abrufen (V2)“ ergänzt. Dieser wird die in der Vorgängeraktion ermittelte Benutzer-ID übergeben.
- Zuletzt soll der Anforderer per Teams-Chat über den Status (Ticket geschlossen) des Tickets informiert werden. Hierfür wird die Aktion „Nachrichten in einem Chat oder Kanal veröffentlichen“ ergänzt (siehe Abbildung unten).
Nach Anlage der Flows können Sie diese testen (Icon „Test“ oben rechts). Wählen Sie hier erst „Manuell“ und lösen Sie den Flow manuell aus. Dies erfolgt im ersten Fall (neues Ticket) durch Absenden des Webformulars und im zweiten Fall (Ticket geschlossen) durch Schließen der Aufgabe im Planner. Alle weitere Testdurchläufe können auf die Daten des ersten Manuellen Tests (Option „Automatisch“) durchgeführt werden.
Demo und vollständige Videoanleitung
Hier ein kurzes Demo der Funktion des Ticketsystems (fertig – wie im Tutorial beschrieben):
Hier wird das Ticketsystem Schritt für Schritt gebaut:
Support
Sie möchten das Ticketsystem operativ einsetzen und benötigen Support? Wir bieten Ihnen gerne Unterstützung an. Melden Sie sich hierfür bitte über unser Kontaktformular oder telefonisch +49 851 9869050 bei uns.
Zusammenfassung und Ausblick
Ich habe mir vorab die Frage gestellt: Braucht man immer eine spezialisierte Software – z.B. für ein Ticketsystem. Meine eigene Antwort hierauf: Kommt darauf an. Es gibt eine Menge von Systeme zur Abbildung des Issue-Tracking und die meisten davon haben Ihre Berechtigung. Die Frage ist nur: Wird ein sinnvoller Funktionsumfang, nämlich jener, welcher die Lizenzkosten rechtfertigt überhaupt genutzt? Kann man diese Frage nicht bestätigen, so ist eine selbstgebaute Minilösung vielleicht eine gangbare Variante. Eine Mögliche Variante ist die hier dargestellte Lösung mittels Anwendungen aus Office 365.
Mit der modernen Infrastruktur, die Office 365 mitbringt ist die Abbildung eines kleinen Systems zur Aufnahme und zum Tracking von Tickets zumindest minimalistisch möglich und sehr schnell umzusetzen.
Weitergedacht: Das System ist modular. Mit ein paar weiteren Flows ist es durchaus denkbar Durchlaufzeiten zu ermitteln oder die Kommunikation zwischen Support und Anforderer (Ticket-Ersteller) an das Ticket / die Aufgabe selbst zu hängen. Sinnvoll ist sicher auch die Unterstützung von Dateianhängen für Ihre Anforderer. Mit Hilfe ein paar einfacher Power Bi Visuals wird es möglich aussagekräftige Dashboards zum aktuellen Bearbeitungsstand zu visualisieren.
Haben Sie das aufgezeigte Ticketsystem nachgebaut? Haben Sie sich inspirieren lassen? Oder sind offene Fragen geblieben? Lassen Sie es mich wissen und kontaktieren Sie uns über unser Kontaktformular.
Vielen Dank für’s Lesen.
Mit besten Grüßen,
Jonas Kufner