18 | Ein Plan für den Plan…

#MrPowerMagic hilft! 🔮

22.07.2021 | Alex und Ragnar Show | Folge 48

In diesem 18. Fall für #MrPowerMagic geht es um die mehrfach automatisierte Verteilung von Aufgaben in einer Filialstruktur – wie können wir zentrale Aufgaben sehr einfach an X-Teams weiterleiten, ohne diese händisch kopieren oder weiter verarbeiten zu müssen? Ein weiterer, spannender Fall aus der Community, welchen wir uns nun näher anschauen.

Status Quo

Ausgehend für diesen Fall war ein Hilferuf von Christian Gilbert im LinkedIn-Netzwerk. Christian arbeitet für einen Lebensmitteldiscounter und benötigte zum einen etwas Unterstützung bei der Erstellung der Flows sowie zum anderen beim allgemeinen Verständnis der Power Platform. Völlig normal und zu Recht, wenn man wie Christian zwar sehr engagiert aber doch recht neu in der Power Platform unterwegs ist – schon die Begrifflichkeiten sind doch sehr verwirrend. Die Hilfe aus der Community kam prompt, es gab sogar eine Live-Session zu Christians Hilferuf! Viele Community-Kollegen haben Christian unterstützt. Ich wollte die Gelegenheit nutzen und diesen Fall direkt mit in die Sendung nehmen.

Konkret hat Christian folgende Anforderungen:

Im zentralen Team werden Aufgaben in einem Planner-Board gepflegt und für einige oder alle Filialen vorbereitet. Dabei hat jede Filiale sein eigenes MS Teams-Team mit eigenem Planner-Board. Ebenfalls sind alle Planner-Boards aller Filialen gleich aufgebaut – jedes Board hat die gleichen Buckets mit der gleichen Bezeichnung. Die Herausforderung ist nun, wie die einzelnen Aufgaben in die jeweiligen Planner der Teams / Filialen transferiert werden können, ohne diese händisch zu kopieren.

Zielsetzung

Wir wollen eine einfache und automatische Verteilung von Aufgaben aus dem zentralen Planner-Board in die jeweiligen Planner-Boards der Filialen / Teams erreichen. Dabei sollen Aufgaben, die im zentralen Planner in einem bestimmten Bucket – z.B. „Gemüse“ – liegen, natürlich auch in den jeweiligen Filialboards im gleichen Bucket erscheinen.

Dabei sollen möglichst alle Informationen aus der zentralen Aufgabe auch in der Filialaufgabe übernommen werden, z.B. Checklisten, Dateien bzw. Anlagen, Fälligkeitsdaten, etc. Ebenso soll die Aufgabe direkt einer bestimmten Person aus dem jeweiligen Filialteam zugewiesen werden.

Eine weitere Anforderung ist, im Standard der Microsoft 365-Pläne zu bleiben um nicht zusätzliche Lizenzen (z.B. Premium) beziehen zu müssen. Dadurch soll auch der Nutzungsgrad der angebotenen Tools innerhalb der Microsoft 365-Suite deutlich erhöht werden.

Umsetzung

Neben den bereits im Einsatz befindlichen Planner-Boards – sowohl zentralseitig, als auch in den jeweiligen Filialen / Teams – werden wir eine Microsoft Lists – Liste (SharePoint-Liste) nutzen. In dieser Liste werden u.a. die jeweiligen Filialen gelistet, die entsprechend an der Verteilung der Aufgaben teilnehmen. Ebenso werden für die Automatisierung notwendige Daten zu der jeweiligen Filiale in der Liste vorgehalten. Natürlich benötigen wir ebenfalls Power Automate, um die Automatisierung an sich zu steuern.

Der Auslöser für das Übertragen der Aufgaben vom zentralen Planner in die jeweiligen Filialen ist der Abschluss der Aufgabe im zentralen Planner-Board (hier Master-Plan genannt), also eine Aufgabe als abgeschlossen zu kennzeichnen. Dadurch wird ein Flow gestartet, der am Ende die Aufgabe mit allen Details in die jeweiligen Filialboards kopiert hat.

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.

Demo

Die Microsoft Lists Liste „Planbarkeit“

Um uns die Arbeit bei der Automatisierung deutlich zu vereinfachen, habe ich eine Liste erstellt, die alle notwendigen Informationen für unseren Flow zur Übertragung einer Aufgabe bereithält:

Die Liste „Planbarkeit“ als Basis der Automatisierung

Neben dem Namen des Teams / der Filiale beinhaltet die Liste noch ein Feld Verantwortlich für die verantwortliche Person, derer die Aufgabe dann zugewiesen werden soll, als auch die PlanID und die GroupID.

Die PlanID ist die ID des jeweiligen Planner-Boards, die GroupID bezieht sich auf das jeweilige Microsoft Teams-Team der Filiale. Natürlich ist es möglich, mehrere Planner-Boards in einem Team zu haben (wie in dieser Demo). Anders gesprochen, ist die PlanID die eindeutige Bezeichnung des Planner-Boards und die GroupID der „Speicherort“ bzw. die „Zugehörigkeit“ des Plans zum jeweiligen Team (Filiale).

Wie kommen wir nun an diese Werte und wie wird die Liste befüllt? Nun, das Befüllen kann entweder händisch erfolgen – sicherlich abhängig von der Anzahl der Filialen und der Änderungshäufigkeit – oder auch automatisiert. Dies könnte dann natürlich periodisch via eines Flows gemacht werden. Die PlanID und die GroupID können händisch sehr einfach aus der URL des jeweiligen Planner-Boards entnommen werden:

Die PlanID und die GroupID können einfach aus der URL entnommen werden.

Microsoft Planner Boards

Wie bereits erwähnt, gibt es ein zentrales Planner Board („Master-Plan„), welcher als Träger und Auslöser dient, als auch für jedes Team / jede Filiale ein eigenes Filialboard. Alle Planner Boards sind gleich aufgebaut, mit den gleichen Buckets (z.B. Fisch, Fleisch, Gemüse, Orga, etc.) und auch den gleichen Kennzeichnungen (z.B. Aktion, Weihnachten, daily, etc.). Im Master-Plan werden die Aufgaben dann entsprechend in die Buckets einsortiert und – wenn diese fertig zum Transfer sind – als abgeschlossen gekennzeichnet. Dadurch startet dann der Flow, der die Aufgaben entsprechend transferiert.

Der Power Automate Flow

Auslöser für den Start des Flows ist der Abschluss der Aufgabe. Anschließend ruft der Flow alle Buckets des Master-Plan ab.

  1. Der Flow wird durch den Abschluss einer Aufgabe im Master-Plan gestartet.
  2. Es werden alle Buckets aus dem Master-Plan abgerufen.
  3. Der aktuelle Bucket-Name wird ermittelt und gespeichert.

Zwar sind in allen Planner Boards die Buckets gleich bezeichnet, allerdings arbeitet Microsoft intern nicht mit den Bucket-Namen sondern mit so genannten Bucket-IDs. Aus diesem Grund müssen wir für die Bucket-ID, die mit der Aufgabe immer mitgeliefert wird, den jeweiligen Bucket-Namen ermitteln und speichern. Im späteren Verlauf werden wir dann in jedem Filial-Board den Namen in die jeweilige Bucket-ID zurück ermitteln, damit die Aufgabe auch im richtigen Bucket landet…

  1. Alle Details der abgeschlossenen Master-Aufgabe werden abgerufen.
  2. Die Checkliste wird kopiert.
Die Arrays für die Checkliste und die Anlagen

Normalerweise sollte es eine einfache Möglichkeit geben, die vorhandene Checkliste (wie auch alle Anlagen) als „Gesamtpaket“ (Array) an die neue Aufgabe zu kopieren. Dies ist seitens Microsoft im Planner-Konnektor „Aufgabendetails aktualisieren“ auch vorgesehen, allerdings ist es mir nicht gelungen, diese Option fehlerfrei zum Laufen zu bekommen. Aus diesem Grund habe ich sowohl die Checkliste als auch die Anlagen (siehe weiter unten) alternativ kopiert. Bei der Checkliste habe ich mir einfach ein eigenes Array gebaut, welches die jeweiligen Checklisten-Einträge kopiert. Im Grunde genommen nimmt dieser Block die Checkliste aus der abgeschlossenen Aufgabe, geht jeden Eintrag durch und kopiert diesen in ein anderes Array. Dieses Array wird dann statt der normalen Checkliste als dynamischer Content übergeben. Das sieht wild aus, ist jedoch, wenn wir uns den Syntax einmal näher angeschaut haben, überschaubar.

  1. Alle Planner Boards mit den jeweiligen Details werden aus der Microsoft Liste abgerufen, da wir die Aufgaben ja in alle Boards der Filialen übertragen wollen. In der Schleife „auf alle anwenden“ werden somit für jeden Eintrag in der Microsoft Liste die definierten Aktionen ausgeführt.
  2. In diesem Schritt wird aus dem Bucket-Namen, den wir in Schritt 3 ermittelt haben, die Bucket-Id des jeweiligen Boards ermittelt – sozusagen der Weg rückwärts, damit wir wissen, in welchem Bucket die Aufgabe gespeichert werden soll.
  3. Die eigentliche Erstellung der Aufgabe im Ziel-Planner Board. Wir füllen alle Daten mit den dynamischen Werten der abgeschlossenen Aufgabe. Bei manchen Feldern ist eine Dropdown-Liste zu sehen. Es ist jedoch möglich, benutzerdefinierte Werte anzugeben, nämlich die dynamischen Werte.
  4. Die Übertragung unseres eigenen Checklisten-Arrays in die Aufgabendetails.
  5. Das Übertragen der Anlagen erfolgt hier ebenfalls in einer weiteren Schleife, da es sich ja um mehr als eine Anlage handeln kann. Wie bereits weiter oben erwähnt, sollte dies auch als Array funktionieren, bei mir hat das übergeben des Arrays jedoch nicht geklappt. Daher der alternative Weg. Im Grunde genommen machen wir das, was sonst der Konnektor im Hintergrund vorgenommen hätte.
  6. Zum Abschluss des Flows wird dann noch eine Nachricht / Adaptive Card abgesetzt, um entweder das Team, die verantwortliche Person oder beides über die neue Aufgabe zu informieren. Dies erfolgt jedoch unabhängig von den Benachrichtigungsoptionen im Planner.

Damit ist der Flow beendet und die Aufgaben sollten in alle Planner Boards, die in der Microsoft Liste eingetragen sind übertragen worden sein.

Mehr Informationen zum Flow findet Ihr in der Galerie:

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

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