24 | Change-Request Schleifen 🎀

#MrPowerMagic hilft! 🔼

02.12.2021 | Alex und Ragnar Show | Folge 63

Im 24.Fall fĂŒr #MrPowerMagic dreht sich alles um Genehmigungs-Schleifen innerhalb eines Prozesses.

Genauer gesagt um einen Change-Request-Prozess (Änderungsantrag). Ich zeige Euch in diesem Fall, wie Ihr zusĂ€tzliche, benutzerdefinierte Optionen in den Genehmigungsprozess einbauen könnt, die z.B. zusĂ€tzliche Informationen vom Antragsteller erfordern, ohne dass die Antragsteller:innen alle Informationen noch einmal eingeben mĂŒssen.

Status Quo

Im vorliegenden Fall bat mich Dennis um UnterstĂŒtzung. Der Change-Request-Prozess wurde schon wunderbar im Microsoft365-Stack umgesetzt. Es gibt ein Microsoft Forms Eingabeformular fĂŒr die strukturierte Erfassung der notwendigen Angaben, diese werden dann via Power Automate in eine Modern SharePoint-Liste (MS Lists) ĂŒbertragen.

Im nĂ€chsten Schritt startet dann ein Genehmigungsverfahren. Neben den out-of-the-box Möglichkeiten „Genehmigen“ oder „Ablehnen“ soll noch eine weitere Option angeboten werden, fĂŒr die Abfrage von weiteren Informationen zu der Anfrage.

Zielsetzung

Und diese zusÀtzliche Option ist in diesem Prozess der Knackpunkt, Dadurch, dass der initiale Change-Request durch ein Forms-Formular eingereicht wird, haben die Antragsteller:innen keinen Kontext, auf den sie sich beziehen können. Ein Formular wird abgesendet und das war es (fire and forget). Es gibt zwar eine Benachrichtigung, dass der Antrag eingegangen ist und sich in der Bearbeitung befindet, jedoch keine Möglichkeit, sich seinen Antrag noch einmal im Detail anzuschauen.

Wenn nun jedoch noch weitere Informationen benötigt werden, um eine Entscheidung zu dem Change-Request-Antrag treffen zu können, dann benötigt es einen Mechanismus, um zum einen die Informationen eintragen zu können und natĂŒrlich, dass diese zusĂ€tzlichen Daten der Anfrage auch zugeordnet werden können. Anschließend muss ja dann auch erneut der Genehmigungsprozess gestartet werden, denn die ursprĂŒngliche Genehmigung wurde ja durch die Anforderung von zusĂ€tzlichen Informationen beendet.

Umsetzung

Da Dennis den Prozess bereits im Microsoft365-Stack umgesetzt hat, sind aus meiner Sicht nur einige Anpassungen vorzunehmen, damit wir die Ziele erreichen können.

Das Forms-Formular, die dahinterliegende Liste und der dazugehörige Flow fĂŒr das Anlegen der Elemente in der Liste werde ich nicht nĂ€her betrachten. DafĂŒr gibt es genĂŒgend Anleitungen auch hier in den unterschiedlichen FĂ€llen.

Nur ein Hinweis zu der SharePoint-Liste – damit das Ganze auch mit den Berechtigungen funktioniert, mĂŒssen wir fĂŒr die SharePoint-Liste die Berechtigungsvererbung unterbrechen. Diese findet Ihr in den Listeneinstellungen unter Berechtigungen. Warum ist das wichtig? Generell werden ja Berechtigungen in SharePoint fĂŒr alle Inhalte innerhalb einer SharePoint-Site gleich berechtigt. Ist also jemand neu im Team, so hat er grundsĂ€tzlich auch auf alle Elemente in der SharePoint-Site Zugriff – Dokumentenbibliotheken, Listen, NotizbĂŒcher, etc.

Da wir ja nun Personen, die im Zweifel nicht Mitglied des Teams / der SharePoint-Site sind, Zugriff auf nur ihre eigenen Change-Requests geben wollen, mĂŒssen wir somit zulassen können, dass diese Personen explizit nur auf bestimmte Elemente berechtigt werden können. Daher die Unterbrechung. Dies Ă€ndert jedoch grundsĂ€tzlich nichts an den Berechtigungen der Teammitglieder, da diese ĂŒber Gruppen gesteuert werden und diese Gruppen sowieso berechtigt bleiben.

Den Verlauf eines Change-Request Antrags werden wir dann als Kommentar in das jeweilige Listenelement ĂŒbertragen, so dass auch eine Art Historie / Verlauf zu der Anfrage ersichtlich ist. Somit können dann alle Antragsteller:innen ihre eigenen Anfragen einsehen und somit auch den aktuellen Status.

Der Genehmigungsprozess wird neben „Genehmigen“ oder „Ablehnen“ um „Weitere Informationen erforderlich“ ergĂ€nzt. FĂŒr das Abfordern von Informationen werden wir dann eine Adaptive Card einsetzen, die auf Antworten der Antragsteller:innen wartet und diese Antworten dann als Kommentar ebenfalls in die Liste ĂŒbertrĂ€gt. Danach startet der Genehmigungsprozess natĂŒrlich wieder neu.

Wie bei allen meinen FĂ€llen von #MrPowerMagic liegt der Fokus bei der FunktionalitĂ€t und der Lösung des Engpasses und weniger beim Design oder der Formvollendung. NatĂŒrlich könnte dies jederzeit ergĂ€nzt bzw. aufgewertet werden – designtechnisch und funktional. Im Rahmen der Demo ist dies jedoch nicht im Fokus. Ebenso ist die von mir vorgestellte Lösung nicht immer die Einzige oder die treffendste, zumeist jedoch die passendste im Kontext des Falles. Ich erhebe auch keinen Anspruch auf VollstĂ€ndigkeit und Richtigkeit meiner Angaben, stehe jedoch bei Fragen oder Problemen immer gern zur VerfĂŒgung.

Demo

Das Forms-Formular

Das Change-Request Forms-Formular

Die SharePoint Liste

Die Liste im Überblick (als Kachel-Ansicht)
Ein Listeneintrag im Detail

Der Power Automate Flow fĂŒr die Listenelemente

Der Flow startet, sobald jemand das Formular fĂŒr den Change-Request abgesendet hat.

Der erste Flow im Überblick

Beim Anlegen des Elements in der Liste wird im Anschluss dieses neue Listenelement automatisch fĂŒr die Antragsteller:innen freigegeben. Hierbei können wir verschiedene Rollen festlegen, z.B. Nur-Lesen oder auch bearbeiten (es gibt noch viel mehr Rollen, die als individuelle Zahl eingetragen werden können). Da wir keine E-Mail mit der Info der Freigabe versenden möchten, bleibt die Auswahl bei „Nein“ fĂŒr „EmpfĂ€nger benachrichtigen“. Ansonsten könnten wir hier auch noch eine zusĂ€tzliche Nachricht verfassen, die dann in der Freigabe E-Mail mit auftaucht.

Das anschließende Kommentieren des Listeneintrags erfolgt mittels HTTP-Rest-Anforderung an die SharePoint-API (Standardkonnektor). Dort werden im Text ein JSON-Schnipsel mit dem gewĂŒnschten Eintrag fest hinterlegt.

Der API-Call fĂŒr den Kommentar in dem Listeneintrag

Und last but not least wird dann noch eine Adaptive Card als Benachrichtigung beim Antragsteller abgesetzt.

Die erste Benachrichtigung an die Antragsteller:innen

Der Flow fĂŒr den Genehmigungsprozess

Der eigentliche Genehmigungsprozess startet separat, der Auslöser dieses Flows ist ein neuer Eintrag in der Liste.

Der Flow des Genehmigungsprozesses im Überblick

ZunĂ€chst wird eine boolesche Variable initialisiert mit dem Startwert false (falsch / 0). Diese sorgt in der „Wiederholen-Bis-Schleife“ (do / until) dafĂŒr, dass der Genehmigungsprozess immer wieder neu gestartet wird, solange die Variable nicht auf true (richtig / 1) gesetzt wird. Dies erfolgt immer nur dann, wenn der Antrag endgĂŒltig genehmigt oder abgelehnt wird (Option 1 und Option 2).

Die Einrichtung des Genehmigungsverfahrens

Wie hier zu sehen ist, handelt es sich um eine benutzerdefinierte Genehmigungsanfrage mit den drei Optionen „Genehmigt“, „Abgelehnt“ und „Weitere Informationen notwendig“. Dazu kommen noch in der Details-Seite die Angaben zu der Anfrage an sich sowie der Link zum Listeneintrag.

Um die unterschiedlichen Ergebnisse der Genehmigungsanfragen einfach auswerten zu können, bediene ich mich der Option des „Wechsel“ (Switch/Case). Je nachdem, welche Antwort gewĂ€hlt wurde, werden unterschiedliche Aktionen in dieser Option ausgefĂŒhrt. Die Aktionen bei Zustimmung und Ablehnung sind fast identisch. In beiden FĂ€llen wird das Listenelement aktualisiert (Status, Kommentar der Genehmigungsanfrage), ein entsprechender Kommentar im Listenelement abgesetzt und eine Nachricht an die Antragsteller:innen verschickt. NatĂŒrlich wird die Variable auf „true“ gesetzt, damit der Genehmigungsprozess nicht noch einmal startet.

Die Optionen „Genehmigt“ und „Abgelehnt“
Die Benachrichtigung nach Zustimmung (grĂŒner Header)

Lediglich im Falle der weiteren Informationsanforderung muss der Prozess und damit der Flow anders reagieren. Auch in diesem Fall wird zunĂ€chst das Listenelement aktualisiert und ein Kommentar abgesetzt. Im Anschluss wird jedoch eine „Adaptive Karte veröffentlichen und auf eine Antwort warten“ Aktion verwendet, mit der die zusĂ€tzlichen Informationen abgefragt wird.

Option „weitere Infos“ im Überblick
Die Adaptive Card zur Info-Anforderung in Code-Form
Und gerendert im Client
Nach Absenden der Infos

Sobald die Informationen durch die Antragsteller:innen abgesendet wurden, mĂŒssen wir die Antworten analysieren, damit wir auf die einzelnen Bestandteile der Antwort zugreifen können. Dadurch haben wir die Möglichkeit, die zusĂ€tzlichen Informationen in den Kommentar des Listenelements einzutragen. Im Anschluss startet dann der Genehmigungsprozess erneut und es können wiederum alle Optionen genutzt werden.

die letzten beiden Schritte des Flows.

Hier könnt Ihr Euch den ganzen Fall noch einmal anschauen:

Lasst gern ein „Like“ da und abonniert meinen Youtube-Kanal…

#MrPowerMagic Youtube