Tutorial für ein
Kaffeepausen-Roulette mit
Power Automate und Teams Anleitung für den Bau eines Kaffeepausen-Rouletts
Kaffeepausen-Roulette
Power Automate
Sie möchten Ihren Mitarbeitenden eine einfache Möglichkeit bieten, über die Abteilungsgrenzen hinweg in Kontakt zu bleiben und sich regelmäßig untereinander auszutauschen – auch zu privaten Themen und einer gemeinsamen Freizeitgestaltung? Dann ist ein Kaffeepausen-Roulette ☕ eine hervorragende Option für Sie und Ihr Unternehmen.
Was macht ein „Kaffeepausen-Roulette“? ☕
Mitarbeitende verbinden und Raum schaffen, in Kontakt zu bleiben
Immer mehr Interaktionen finden online statt. Mehr und mehr Arbeitsplätze können mittlerweile ins Home-Office verlagert werden. Allerdings bedeutet das auch, dass die Mitarbeitenden sich seltener physisch begegnen, da alle selbst entscheiden, ob sie überhaupt in das Büro in Münster fahren wollen, lieber von zu Hause arbeiten oder eine Workation absolvieren, bei der sich Urlaub und Arbeit verbinden.
Neben vielen Ideen, Remote Work zu einem Erfolgskonzept zu machen, gibt es auch die Möglichkeit eine gemeinsame Online-Zeit für die Mitarbeitenden zu etablieren. Dabei werden immer zwei Mitarbeitende aus einer Liste von Teilnehmenden kombiniert, die dann in der laufenden Woche während ihrer Arbeitszeit eine gemeinsame „Kaffeepause“ machen können. Alle, die daran teilnehmen, erhalten so die Möglichkeit, ihr Kollegium besser kennenzulernen und somit auch mit Kolleginnen und Kollegen, mit denen sie selten oder gar keinen Kontakt haben, ins Gespräch zu kommen.
Eine solche „Kaffeepause“ lässt sich zum Beispiel über eine gemeinsame Terminfindung in Teams realisieren.
Voraussetzungen
Es werden zwei Flows – eine Variante zum Testen und eine für den produktiven Einsatz – in Power Automate umgesetzt, die eine adaptive Karte in Microsoft Teams veröffentlichen. Dafür werden aus einer Liste in Excel die Teilnehmenden entnommen, gemischt und als Paare in eine weitere Excel-Liste eingefügt. Wenn Sie möchten, dass die ausgegebene Karte nicht von Ihnen (als Benutzer) stammt, können Sie einen frei benannten Service-User anlegen, der mit den entsprechenden Rechten und Lizenzen ausgestattet ist und diesen für die Ausgabe einsetzen.
Folgende Verbindungen werden im Verlauf des Flows benötigt:
|
Excel Online (Business) |
|
Office 365-Benutzer |
|
Microsoft Teams |
TEST Team vorbereiten
Bereiten Sie einen Teams-Kanal vor, in dem Sie Ihre Testläufe machen können, ohne Ihre Mitarbeitenden abzulenken. Legen Sie dafür ein TEST-Team an, mit einem Kanal, in welchem die adaptive Karte später ausgegeben werden soll. Außer dem Service-User müssen Sie jetzt noch keine weiteren Nutzenden zum Kanal hinzufügen.
Für diesen Kanal erstellen Sie zwei Excel-Arbeitsmappen, indem Sie diese über ’+Neu’ hinzufügen.
Die erste Liste „Teilnehmende“ enthält nur die Spalte ‘E-Mail-Adresse’. Formatieren Sie diese als Tabelle mit Kopfzeile.
Die Liste „Kombinationen“ erhält die Spalten ‘ID’, ‘E-Mail-Adresse A’ und ‘E-Mail-Adresse B’. Formatieren Sie diese ebenfalls als Tabelle mit Kopfzeile und tragen Sie als erste ‘ID’ eine 1 ein.
Flow anlegen
Gehen Sie in Ihre Power Automate-Umgebung, in der Sie Ihren neuen Flow anlegen wollen.
Öffnen Sie den Trigger ‘Recurrence’ und passen Sie ihn so an, dass der Flow zu dem von Ihnen gewählten Zeitpunkt automatisiert anlaufen kann. Wählen Sie ggf. erst einmal einen Zeitpunkt weiter in der Zukunft und passen Sie den Trigger erneut an, sobald der Flow soweit fertiggestellt ist, dass ein automatisierter Start sinnvoll ist.
Fügen Sie anschließend die ‘Excel Online’-Aktion ‘In Tabelle vorhandene Zeilen auflisten’ hinzu. Wählen Sie die Liste „Teilnehmende“ aus, die Sie in dem Teams-Kanal „TEST Kaffeepause“ angelegt haben.
Hinweis: Sobald Ihr Flow einen Trigger und mindestens eine Aktion besitzt, können Sie diesen abspeichern. Am besten speichern Sie Ihren Flow möglichst regelmäßig ab, um keine Fortschritte zu verlieren, weil Sie zum Beispiel Ihre Arbeit am Flow unterbrechen müssen.
Initialisieren Sie die erste Variable ‘LaengeTeilnehmende’, die mithilfe der Funktion length(outputs('Zeilen_auflisten_-_Teilnehmende')?['body/value'])
ermittelt, wie viele Zeilen in der vorherigen Aktion geholt wurden.
Um eine Funktion als Ausdruck einzufügen, wählen Sie das Feld ‘Value’ an und klicken auf das fx
-Symbol.
Anschließend geben Sie in das entsprechende Funktionsfeld die Formel length(outputs('Zeilen_auflisten_-_Teilnehmende')?['body/value'])
ein und bestätigen über die Schaltfläche ‘Hinzufügen’, dass Sie die fx
-Funktion so eingeben möchten. Wenn Sie eine Funktion anpassen möchten, klicken Sie diese an, verändern den Funktionsaufruf nach Ihren Wünschen und bestätigen Ihre Änderung mit der Schaltfläche ‘Aktualisieren’.
Initialisieren Sie anschließend die folgenden Variablen:
Name | Typ | Wert | Kommentar |
---|---|---|---|
Mitarbeitende | Array | Rückgabewert der Aktion ‘Zeilen auflisten – Teilnehmende’: body/value | enthält die Originalliste aller teilnehmenden Mitarbeitenden |
ShuffleListe | Array | Rückgabewert der Aktion ‘Zeilen auflisten – Teilnehmende’: body/value | erhält die aktualisierte Liste der Mitarbeitenden ohne die zuletzt ermittelte Person |
Gemischte_Mitarbeitende_A | Array | erhält die neu gemischte Liste A (1. Hälfte der gesamten Gruppe) | |
Gemischte_Mitarbeitende_B | Array | erhält die neu gemischte Liste B (2. Hälfte der gesamten Gruppe) | |
LaengeShuffleListe | Integer | Ausdruck: length(variables('ShuffleListe')) |
|
HalbeLaenge | Integer | Ausdruck: div(variables('LaengeShuffleListe'),2) |
Hinweis: Ist kein Wert angegeben, lassen Sie den Wert/Value des Objekts leer.
Wenn Sie in einer Variablen einen Rückgabewert ausgeben möchten, klicken Sie auf das ⚡-Symbol über dem fx
-Symbol am Ende des Feldes ‘Value’.
Alternativ können Sie /
eingeben und ‘Insert dynamic content’ öffnen.
Bei beiden Methoden können Sie anschließend den gewünschten Wert auswählen.
Legen Sie einen Bereich an. Bereiche gehören zu den ‘Steuerung’-Aktionen und ermöglichen es, Teile eines Flows so zu strukturieren, dass schneller deutlich wird, welche Aktionen thematisch zusammengehören.
Benennen Sie den neuen Bereich ‘Auswahl Gemischte Mitarbeitende A’ und fügen Sie darin eine ‘Wiederholen bis’-Schleife hinzu. Geben Sie dieser die Bezeichnung ‘Wiederholen bis ShuffleListe halbiert’. Geben Sie in den Feldern ‘Loop Until’ die Variable ‘LaengeShuffleListe’ is equal to Variable ‘HalbeLaenge’ an.
Innerhalb der Schleife wird die erste Hälfte der Mitarbeitenden gemischt. Dafür arbeiten Sie mit einer Kombination der ‘Datenvorgang’-Aktion ‘Verfassen’ und der ‘Variablen’-Aktionen ‘Variable festlegen’, ‘An Arrayvariable anfügen’ und ‘Variablenwert verringern’.
Gehen Sie bei dem Befüllen der Aktion ‘Verfassen’ genauso vor, wie weiter oben erklärt, um eine fx
-Funktion einzufügen.
Name | Typ | Wert | Kommentar |
---|---|---|---|
RandomIndex | Verfassen | fx -Funktion: rand(0, length(variables(‘ShuffleListe’))) |
Es wird ein zufälliger Index-Wert aus der ‘ShuffleListe’ ermittelt. |
WaehleIndex | Verfassen | fx -Funktion: variables(‘ShuffleListe’)[outputs(‘RandomIndex’)] |
Mit dem zuvor ermittelten Index-Wert werden nur die im Array für diesen Index gespeicherten Informationen ausgewählt. |
An Arrayvariable Gemischte Mitarbeiter A anfügen | An Arrayvariable anfügen | Rückgabewert der Aktion ‘WaehleIndex’: Ausgaben | Der/die so ausgewählte Mitarbeitende wird an die Arrayvariable ‘Gemischte Mitarbeitende A’ angehängt. |
IndexEntfernen | Verfassen | fx -Funktion: union(take(variables(‘ShuffleListe’), outputs(‘RandomIndex’)), skip(variables(‘ShuffleListe’), add(outputs(‘RandomIndex’), 1))) |
Der Index-Wert wird aus der Gesamtliste entfernt, da er der neuen Variable zugeordnet wurde. |
Variable ShuffleListe neu festlegen | Variable festlegen | Rückgabewert der Aktion ‘IndexEntfernen’: Ausgaben | Die Liste ohne den zufällig ermittelten Index wird wieder in die Variable ‘ShuffleListe’ geschrieben. |
Variable LaengeShuffleListe verringern | Variablenwert verringern | 1 | Die Variable ‘LaengeShuffleListe’ wird um den Wert 1 verringert, da ein Index mit seinen Informationen entfernt wurde. |
Hinweis: Es steht Ihnen frei, wie Sie Ihre Variablen und Aktionen benennen. Wenn Sie sich für andere Namen entscheiden, denken Sie jedoch daran, dass Sie alle fx
-Formeln und Werte darauf prüfen, dass diese auf die korrekte Herkunft verweisen.
Erzeugen Sie einen weiteren Bereich ‘Auswahl Gemischte Mitarbeitende B’ und wiederholen Sie die Schritte, die Sie bereits für ‘Auswahl Gemischte Mitarbeitende A’ genutzt haben, um die verbleibenden Mitarbeitenden in der Liste ebenfalls zu mischen und der Variablen ‘Gemischte Mitarbeitende B’ anzufügen.
Die ‘Wiederholen bis’-Schleife erhält in den Feldern ‘Loop Until’ die Variable ‘LaengeShuffleListe’ is equal to 0.
Name | Typ | Wert | Kommentar |
---|---|---|---|
RandomIndex 2 | Verfassen | fx -Funktion: rand(0, length(variables(‘ShuffleListe’))) |
Es wird ein zufälliger Index-Wert aus der ‘ShuffleListe’ ermittelt. |
WaehleIndex 2 | Verfassen | fx -Funktion: variables(‘ShuffleListe’)[outputs(‘RandomIndex_2’)] |
Mit dem zuvor ermittelten Index-Wert werden nur die im Array für diesen Index gespeicherten Informationen ausgewählt. |
An Arrayvariable Gemischte Mitarbeiter B anfügen | An Arrayvariable anfügen | Rückgabewert der Aktion ‘WaehleIndex 2’: Ausgaben | Der/die so ausgewählte Mitarbeitende wird an die Arrayvariable ‘Gemischte Mitarbeitende B’ angehängt. |
IndexEntfernen 2 | Verfassen | fx -Funktion: union(take(variables(‘ShuffleListe’), outputs(‘RandomIndex_2’)), skip(variables(‘ShuffleListe’), add(outputs(‘RandomIndex_2’), 1))) |
Der Index-Wert wird aus der Gesamtliste entfernt, da er der neuen Variable zugeordnet wurde. |
Variable ShuffleListe neu festlegen | Variable festlegen | Rückgabewert der Aktion ‘IndexEntfernen 2’: Ausgaben | Die Liste ohne den zufällig ermittelten Index wird wieder in die Variable ‘ShuffleListe’ geschrieben. |
Variable LaengeShuffleListe verringern | Variablenwert verringern | 1 | Die Variable ‘LaengeShuffleListe’ wird um den Wert 1 verringert, da ein Index mit seinen Informationen entfernt wurde. |
Im nächsten Schritt erzeugen Sie bitte einen weiteren Bereich, um zu prüfen, ob die Anzahl der E-Mails, die in der Liste „Teilnehmende“ hinterlegt ist, ungerade ist. Ist dies der Fall, so soll eine Gruppe aus drei Teilnehmenden gebildet werden.
Innerhalb des neuen Bereichs erstellen Sie eine Bedingung und prüfen die fx
-Funktion mod(variables('LaengeTeilnehmende'), 2)
is not equal to 0.
Im Zweig ‘TRUE’ legen Sie den Bereich ‘Zufällig aus A auswählen’ an und geben die folgenden Schritte an. Sie ähneln den vorherigen Mischungen von A und B.
Name | Typ | Wert | Kommentar |
---|---|---|---|
RandomIndex 3 | Verfassen | fx -Funktion: rand(0, length(variables(‘Gemischte_Mitarbeitende_A’))) |
Es wird ein zufälliger Index-Wert aus der Liste ‘Gemischte Mitarbeitende A’ ermittelt. |
WaehleIndex 3 | Verfassen | fx -Funktion: variables(‘Gemischte_Mitarbeitende_A’)[outputs(‘RandomIndex_3’)] |
Mit dem zuvor ermittelten Index-Wert werden nur die im Array für diesen Index gespeicherten Informationen ausgewählt. |
IndexEntfernen 3 | Verfassen | fx -Funktion: union(take(variables(‘Gemischte_Mitarbeitende_A’), outputs(‘RandomIndex_3’)), skip(variables(‘Gemischte_Mitarbeitende_A’), add(outputs(‘RandomIndex_3’), 1))) |
Der Index-Wert wird aus der Liste ‘Gemischte Mitarbeitende A’ entfernt. |
E-Mail-Adresse C | Verfassen | fx -Funktion: outputs(‘WaehleIndex_3’)[‘E-Mail-Adresse’] |
Es wird die E-Mail-Adresse für die dritte Person ermittelt. |
Verlassen Sie den Bereich und erzeugen Sie einen neuen Bereich ‘Zufällig aus B auswählen’, um eine Person aus der Gruppe B zu ermitteln, die mit Person A kombiniert werden kann.
Name | Typ | Wert | Kommentar |
---|---|---|---|
RandomIndex 4 | Verfassen | fx -Funktion: rand(0, length(variables(‘Gemischte_Mitarbeitende_B’))) |
Es wird ein zufälliger Index-Wert aus der Liste ‘Gemischte Mitarbeitende B’ ermittelt. |
WaehleIndex 4 | Verfassen | fx -Funktion: variables(‘Gemischte_Mitarbeitende_B’)[outputs(‘RandomIndex_4’)] |
Mit dem zuvor ermittelten Index-Wert werden nur die im Array für diesen Index gespeicherten Informationen ausgewählt. |
E-Mail-Adresse aus B | Verfassen | fx -Funktion: outputs(‘WaehleIndex_4’)[‘E-Mail-Adresse’] |
Es wird die E-Mail-Adresse für eine Person aus Gruppe B ermittelt. |
In einem dritten Bereich ‘Teilnehmende zusammenführen’ innerhalb des TRUE-Zweiges der Bedingung werden die beiden gerade ermittelten Personen in der ‘Verfassen’-Aktion ‘Kombination E-Mail-Adresse BC’ zusammengeführt. Anschließend wird Person B aus der Variable ‘Gemischte Mitarbeitende B’ entfernt und die neue Kombination angefügt.
Name | Typ | Wert | Kommentar |
---|---|---|---|
Kombination E-Mail-Adresse BC | Verfassen | fx -Funktion: concat(concat(outputs(‘E-Mail-Adresse_aus_B’),’,’),outputs(‘E-Mail-Adresse_C’)) |
|
B aus Gemischte Mitarbeitende B entfernen | Verfassen | fx -Funktion: union(take(variables(‘Gemischte_Mitarbeitende_B’), outputs(‘RandomIndex_4’)), skip(variables(‘Gemischte_Mitarbeitende_B’), add(outputs(‘RandomIndex_4’), 1))) |
|
Variable Gemischte Mitarbeitende B minus 1 festlegen | Variable festlegen | Rückgabewert der Aktion ‘B aus Gemischte Mitarbeitende B entfernen’: Ausgaben | |
Kombination an Gemischte Mitarbeitende B anfügen | An Arrayvariable anfügen | { “E-Mail-Adresse”: “@{outputs(‘Kombination_E-Mail-Adresse_BC’)}” } |
Verlassen Sie nun den Bereich ‘Ungerade Teilnehmerzahl ausgleichen’ und initialisieren Sie die beiden folgenden Variablen.
Name | Typ | Wert | Kommentar |
---|---|---|---|
ID | Integer | 1 | Die Variable ‘ID’ ist relevant für die Spalte ‘ID’ der Liste „Kombinationen“. |
Differenz | Integer | Mit der Differenz aus Kombinationen und Teilnehmenden wird festgestellt, ob in der Liste „Kombinationen“ Zeilen hinzugefügt oder gelöscht werden müssen. |
Legen Sie einen neuen Bereich ‘Gemischte Mitarbeitende A und B in Excel eintragen’ an. Fügen Sie dann als erstes die ‘Steuerung’-Aktion ‘Auf alle anwenden’ hinzu, benennen Sie diese ‘Gemischte Mitarbeitende A eintragen’ und weisen Sie als Wert die Variable ‘Gemischte_Mitarbeitende_A’ zu.
Anschließend ermitteln Sie über die ‘Datenvorgang’-Aktion ‘Verfassen’ wie viele Teilnehmende diesem Array zugeordnet wurden. Ermitteln Sie danach die E-Mail-Adresse der jeweiligen Person über ‘Verfassen’ indem Sie über item()?['E-Mail-Adresse']
darauf zugreifen.
Hinweis: Immer wenn Sie auf einen Wert einer gespeicherten Tabelle zugreifen möchten, während Sie diese über eine ‘Auf alle anwenden’-Aktion durchlaufen, können Sie das tun, indem Sie item()?['X']
als fx
-Funktion angeben und für ‘X’ den gesuchten Spaltentitel eintragen. Achten Sie darauf, dass ‘X’ die gleiche Schreibweise aufweist wie der Spaltentitel.
Name | Typ | Wert | Kommentar |
---|---|---|---|
Anzahl Teilnehmende in Gruppe A | Verfassen | fx -Funktion: length(variables(‘Gemischte_Mitarbeitende_A’)) |
Erfasst, wie viele Teilnehmende diesem Array zugeordnet wurden. |
E-Mail-Adresse A | Verfassen | fx -Funktion: item()?[‘E-Mail-Adresse’] |
Ermittelt den Wert des Feldes ‘E-Mail-Adresse A’ für den aktuellen Durchlauf der ‘Auf alle anwenden’-Schleife. |
Fügen Sie die ‘Excel Online’-Aktion ‘In Tabelle vorhandene Zeilen auflisten’ ein und verweisen Sie auf Ihre „Kombinationen“-Tabelle in Ihrer Gruppe „TEST Kaffeepause“ in Teams.
Anschließend werden in der Aktion ‘Verfassen’ mit der fx
-Funktion length(outputs('Zeilen_auflisten_-_Kombinationen')?['body/value'])
die vorhandenen Zeilen in der Liste „Kombinationen“ gezählt, da die Tabelle immer neu überschrieben wird. Wenn z. B. weniger Teilnehmende für die aktuelle Woche vorhanden sind, als an der Vorwoche teilgenommen haben, müssen Zeilen entfernt werden, damit nicht Zeilen aus der Vorwoche übrigbleiben und dadurch Personen doppelt kombiniert werden.
Dann folgt die ‘Steuerung’-Aktion ‘Bedingung’, in der die Ausgaben der Aktion ‘Anzahl Zeilen in Kombinationen’ outputs('Anzahl_Zeilen_in_Kombinationen')
mit is equal to mit den Ausgaben der Aktion ‘Anzahl Teilnehmende in Gruppe A’ outputs('Anzahl_Teilnehmende_in_Gruppe_A')
verglichen wird.
Wenn das Ergebnis wahr ist, wird keine Aktion benötigt, somit kann der TRUE-Zweig leer bleiben. Unter dem FALSE-Zweig wird eine weitere Bedingung erzeugt, ob die Anzahl der Zeilen größer als Anzahl Mitarbeitende ist oder nicht. In diesem Fall werden die Ausgaben der Aktion ‘Anzahl Zeilen in Kombinationen’ outputs('Anzahl_Zeilen_in_Kombinationen')
mit is greater than mit den Ausgaben der Aktion ‘Anzahl Teilnehmende in Gruppe A’ outputs('Anzahl_Teilnehmende_in_Gruppe_A')
verglichen.
Bedingung Anzahl Zeilen größer als Anzahl Teilnehmende: FALSE-Zweig
Legen Sie die Variable ‘ID’ neu fest, indem Sie 1 zu dieser hinzuaddieren. Geben Sie dafür add(outputs('Anzahl_Zeilen_in_Kombinationen'),1)
als fx
-Funktion an.
Erzeugen Sie eine ‘Wiederholen bis’-Schleife, um neue Zeilen hinzuzufügen und diese mit einer ID zu versehen.
Fügen Sie mit der ‘Excel Online’-Aktion ‘Zeile zu Tabelle hinzufügen’ der Tabelle „Kombinationen“ eine neue Zeile hinzu und geben Sie bei dem Parameter ‘ID’ die Variable ‘ID’ an. Somit wird in jeder Runde die aktuelle ‘ID’ in der Spalte ‘ID’ abgelegt und kann anschließend gefunden werden, wenn die Kombinationen eingetragen werden.
Erhöhen Sie anschließend die Variable mit der ‘Variablen’-Aktion ‘Variable schrittweise erhöhen’ um 1.
Bedingung Anzahl Zeilen größer als Anzahl Teilnehmende: TRUE-Zweig
Ermitteln Sie in der Aktion ‘Verfassen’ mit sub(outputs('Anzahl_Zeilen_in_Kombinationen'),outputs('Anzahl_Teilnehmende_in_Gruppe_A'))
die Differenz zwischen den Ausgaben aus ‘Anzahl Zeilen in Kombinationen’ und ‘Anzahl Teilnehmende in Gruppe A’.
Legen Sie die Variable ‘Differenz’ fest, indem Sie darin die Ausgaben der Aktion ‘Differenz aus Kombinationen und Teilnehmenden festlegen’ angeben. Die Variable ‘ID’ legen Sie fest mit den Ausgaben aus ‘Anzahl Zeilen in Kombinationen’.
Erzeugen Sie eine neue ‘Wiederholen bis’-Schleife, um die überzähligen Zeilen aus der Tabelle „Kombinationen“ zu entfernen. Die Schleife erhält die Werte Variable ‘Differenz’ is equal to 0.
Legen Sie die ‘Excel Online’-Aktion ‘Zeile löschen’ an. Schreiben Sie „ID“ in das Feld ‘Schlüsselspalte’ und geben Sie im Feld ‘Schlüsselwert’ die Variable ‘ID’ an. Anschließend müssen die Variablenwerte von ‘Differenz’ und ‘ID’ mit der ‘Variablen’-Aktion ‘Variablenwert verringern’ jeweils um 1 verkleinert werden.
Verlassen Sie nun die Bedingung ‘Anzahl Zeilen ist größer als Anzahl Teilnehmende’ und setzen Sie mit der ‘Variablen’-Aktion ‘Variable festlegen’ die Variable ‘ID’ auf den Wert 1 zurück.
Verlassen Sie nun auch die Bedingung ‘Anzahl Zeilen ist gleich Anzahl Teilnehmende’ und legen Sie die ‘Excel Online’-Aktion ‘Zeile aktualisieren’ an. Geben Sie auch hier für die Schlüsselspalte ‘ID’ und für ‘Schlüsselwert’ die Variable ‘ID’ an. Tragen Sie unten in die ‘Erweiterte(n) Parameter’ für ‘ID’ die Variable ‘ID’ und für ‘E-Mail-Adresse A’ die Ausgaben der ‘Verfassen’-Aktion ‘E-Mail-Adresse A’ ein. Danach setzen Sie die Variable ‘ID’ mit der ‘Variablen’-Aktion ‘Variable schrittweise erhöhen’ um 1 hoch. Verlassen Sie anschließend die ‘Auf alle anwenden’-Schleife ‘Gemischte Mitarbeitende A eintragen’ und setzen Sie die Variable ‘ID’ erneut auf 1 zurück.
Erzeugen Sie nun eine neue ‘Auf alle anwenden’-Schleife mit der Variable ‘Gemischte_Mitarbeitende_B’, um die Teilnehmenden aus Gruppe B einzutragen. Ermitteln Sie über die Aktion ‘Verfassen’ und die fx
-Funktion item()?['E-Mail-Adresse']
die E-Mail-Adresse des/der Teilnehmenden und tragen Sie die Ausgaben davon in der Aktion ‘Zeilen aktualisieren’ in die Spalte ‘E-Mail-Adresse B’ ein. Erhöhen Sie danach die Variable schrittweise um 1.
Verlassen Sie den Bereich ‘Gemischte Mitarbeitende A und B in Excel eintragen’ und initialisieren Sie die folgenden drei Variablen.
Name | Typ | Wert |
---|---|---|
AdaptiveKarteJSON | String | s.u. |
AdaptiveKarteJSON2 | String | |
AnzeigenameB | String |
Der Inhalt der Variable ‘AdaptiveKarteJSON’ ist im JSON-Format verfasst:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "Neue Woche, neue Kombinationen: Das Kaffeepausen-Roulette 🎡 geht in die nächste Runde.",
"wrap": true,
"style": "default",
"fontType": "Default",
"weight": "Bolder",
"isSubtle": false
},{
"type": "TextBlock",
"text": "Über die Schaltfläche 'Termin erstellen' könnt ihr ein gemeinsames Treffen zu einem ☕ planen. Wählt dazu bitte manuell den Kanal 'TEST Team > TEST Kaffeepause' aus.",
"wrap": true,
"style": "default",
"fontType": "Default",
"isSubtle": true
},
Beachten Sie hierbei, dass die öffnende {
-Klammer bewusst noch nicht geschlossen wird, da im nächsten Bereich ‘Ausgabe in Teams’ die Teilnehmenden über eine Schleife an diese Variable angehängt werden. Sobald alle Teilnehmenden in die Karte übertragen wurden, wird diese in einem zusätzlichen Schritt geschlossen und als Gesamtes an die ‘Teams’-Aktion ‘Karte in einem Chat oder Kanal veröffentlichen’ ausgegeben.
Die Texte im Parameter "text":
können Sie frei anpassen und somit genau auf Ihre Unternehmenskommunikation abstimmen. Es ist möglich, an dieser Stelle Emojis wie 🎡, ☕ oder 😄 zu verwenden, wenn Sie möchten.
In dem neuen Bereich ‘Ausgabe in Teams’ beginnen Sie mit der ‘Excel Online’-Aktion ‘In Tabelle vorhandene Zeilen auflisten’, um alle Zeilen der Tabelle „Kombinationen“ abzuholen. Die ‘Steuerung’-Aktion ‘Auf alle anwenden’ nutzt den Rückgabewert 'body/value'
der vorhergehenden Aktion und durchläuft damit die einzelnen Zeilen.
Innerhalb der Schleife rufen Sie zuerst das Benutzerprofil ab, das zu ‘E-Mail-Adresse A’ gehört, um für die adaptive Karte den Namen des/der Mitarbeitenden ausgeben zu können.
Als nächstes muss ermittelt werden, ob durch eine ungerade Anzahl an Teilnehmenden eine Kombination mit zwei Adressen in ‘E-Mail-Adresse B’ erzeugt wurde.
Prüfen Sie also das Feld ‘E-Mail-Adresse B’ contains ,
– d. h. Sie überprüfen, ob das jeweilige Feld der Spalte ‘E-Mail-Adresse B’ ein Komma enthält. Nur dann ist es notwendig, für diese zusätzliche Person C das Benutzerprofil abzurufen.
Bedingung Ungerade Anzahl Teilnehmende: FALSE-Zweig
Rufen Sie das Benutzerprofil für ‘E-Mail-Adresse B’ ab und speichern Sie den Wert ‘Anzeigename’ (wenn Vor- und Nachname angezeigt werden sollen) in die Variable ‘AnzeigenameB’.
Hinweis: Wenn Sie den Parameter ‘Anzeigename’ bei der Auswahl aus den ⚡ ‘Dynamischen Inhalten’ nicht sehen, klicken Sie rechts auf ‘See more (31)’. Die Zahl dahinter gibt an, wie viele Parameter insgesamt vorhanden sind.
Bedingung Ungerade Anzahl Teilnehmende: TRUE-Zweig
Um die Benutzerprofile für die Personen B und C abzurufen, geben Sie für B die Ausgaben der ‘Verfassen’-Aktion ‘E-Mail-Adresse aus B’ aus dem Bereich ‘Zufällig aus A auswählen’ an. Für Person C wiederholen Sie den Schritt mit den Ausgaben der ‘Verfassen’-Aktion ‘E-Mail-Adresse C’ aus dem Bereich ‘Zufällig aus B auswählen’.
Speichern Sie anschließend beide Namen in der Variable ‘AnzeigenameB’.
Verlassen Sie die Bedingung und legen Sie die Variable ‘AdaptiveKarteJSON2’ als fx
-Funktion auf den folgenden Wert fest:
concat(variables('AdaptiveKarteJSON'),'{
"type": "Container",
"items": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"text": "', outputs('Benutzerprofil_abrufen_(V2)_A')?['body/displayName'], ' und ', variables('AnzeigenameB'), '",
"width": "stretch"
}
]
},
{
"type": "Column",
"items": [
{
"type": "ActionSet",
"actions": [
{
"type": "Action.OpenUrl",
"title": "Termin erstellen",
"url": "https://teams.microsoft.com/l/meeting/new?subject=Kaffeepause&content=Vorschlag%20f%C3%BCr%20unsere%20gemeinsame%20Kaffeepause&attendees=', items('JSON_um_die_Teilnehmenden_erweitern')?['E-Mail-Adresse A'], ',', items('JSON_um_die_Teilnehmenden_erweitern')?['E-Mail-Adresse B'], '",
"width": "stretch"
}
]
}
]
}
]
}
]
},')
Sie können wiederum den Parameter "text":
in der ersten "Column"
Ihren Wünschen anpassen. Sollten Sie andere Variablennamen vergeben haben, denken Sie daran, diese an allen benötigten Stellen anzupassen, um eine Ausgabe der ermittelten Werte zu gewährleisten.
"url": "https://teams.microsoft.com/l/meeting/new?subject=Kaffeepause&content=Vorschlag%20f%C3%BCr%20unsere%20gemeinsame%20Kaffeepause&attendees=', items('JSON_um_die_Teilnehmenden_erweitern')?['E-Mail-Adresse A'], ',', items('JSON_um_die_Teilnehmenden_erweitern')?['E-Mail-Adresse B'], '"
Bei dem im Parameter "url":
angegebenen Wert in der zweiten "Column"
handelt es sich um einen sogenannten ‘Deep Link für Teams’ . Hier werden die benötigten Parameter angegeben, um ein vorausgefülltes Besprechungsplanungsdialogfeld zu öffnen, das bereits einen Titel subject=*
, einen Vorschlag im Textfeld content=*
sowie die Teilnehmenden attendees=*
beinhaltet. Beachten Sie, dass in einem Deep Link keine Emojis wiedergegeben werden können.
Legen Sie anschließend die Variable ‘AdaptiveKarteJSON’ fest, indem Sie dort die Variable ‘AdaptiveKarteJSON2’ angeben. In jeder Runde der Schleife wird in der Variablen ‘AdaptiveKarteJSON2’ die neu gebaute Zeile an die Variable ‘AdaptiveKarteJSON’ konkateniert – also angehängt.
concat(variables('AdaptiveKarteJSON'),'{
"type": "Container",
Um diesen erweiterten JSON-Text sozusagen „zwischenzuspeichern“ wird das neue Ergebnis in jeder Runde in die Variable ‘AdaptiveKarteJSON’ übernommen.
Verlassen Sie die Schleife ‘JSON um die Teilnehmenden erweitern’ und nutzen Sie die Aktion ‘Variable festlegen’, um die adaptive Karte fertigzustellen. Geben Sie wieder als fx
-Funktion den folgenden JSON-Code ein. Damit schließen Sie die Karte ab.
concat(variables('AdaptiveKarteJSON'), '
],
"msteams": {
"width": "Full"
},
}')
Nun können Sie mit dem fertigen Text in der Variable ‘AdaptiveKarteJSON’ über die ‘Teams’-Aktion ‘Karte in einem Chat oder Kanal veröffentlichen’ eine adaptive Karte in Teams ausgeben. Wählen Sie den Kanal „TEST Kaffeepause“ aus und geben Sie im Feld ‘Adaptive Card’ die Variable ‘AdaptiveKarteJSON2’ an.
Hinweis: Sie können im Feld ‘Veröffentlichen Als’ verschiedene Werte angeben. Dies hat Auswirkungen wie der „Ersteller“ der ausgegebenen Karte angezeigt wird. Sie könnten z. B. auch einen eigenen User namens „Ihr-Firmenname Bot“ nutzen, der auch als Besitzer des Flows festgelegt ist und alle Verbindungen herstellt. Es wird immer der User angegeben, der die Verbindung der Aktion ‘Karte in einem Chat oder Kanal veröffentlichen’ bereitstellt.
Optional können Sie noch eine Feed-Benachrichtigung einbauen, die den Personen in der Liste „Teilnehmende“ eine Benachrichtigung in ihrem Feed anzeigt, wenn der Flow erfolgreich durchgelaufen ist. Somit wird den Teilnehmenden an der Kaffeepause eine kleine Erinnerung ausgegeben, die sie direkt zur neuen adaptiven Karte im Kanal führt.
Erstellen Sie dafür die ‘Teams’-Aktion ‘Feedbenachrichtigung posten’. Als Empfänger können Sie die in der ersten ‘Excel Online’-Aktion ‘Zeilen auflisten – Teilnehmende’ ermittelten E-Mail-Adressen nutzen.
Flow testen
Sie haben nun den Flow soweit fertiggestellt, dass Sie ihn testen können. Gratulation! 🎉 Damit haben Sie einen großen Teil des Projekts „Kaffeepausen-Roulette“ geschafft. Speichern Sie Ihren Flow ab und wechseln Sie zu Teams, um einige Ihrer Mitarbeitenden, die bereit sind an Ihrem Testlauf teilzunehmen, in die dort abgelegte Excel-Liste „Teilnehmende“ einzutragen. Fügen Sie diese Mitarbeitenden auch dem Team „TEST Kaffeepause“ hinzu.
Beginnen Sie Ihren ersten Testlauf, indem Sie in Ihrem Flow am oberen Rand (rechte Seite) auf ‘Testen’ klicken. Folgen Sie den Fenstern, bis Ihnen der Start des Flows bestätigt wird.
Beispiele für mögliche Fehler
Beispiel 1: Für einen Parameter wurde ein Wert nicht angegeben
Es ist normal, dass Fehler auftreten. Zum Beispiel kann es sein, dass beim Erstellen einer Aktion ein Wert nicht eingetragen wurde. Falls Ihnen eine Fehlermeldung angezeigt wird, gehen Sie zu der entsprechenden Stelle, die mit dem Ausrufezeichen gekennzeichnet ist. Hier im Beispiel zeigt die Fehlermeldung am oberen Bildrand an, dass keine Zeile mit der ID 2 gefunden wurde.
Fehler bei Aktion "Zeile_aktualisieren": No row was found with Id '2'
An der Karte wird NotFound
angegeben. Das bedeutet, bei dem Versuch die E-Mail-Adresse einzutragen, fehlte in der Spalte ‘ID’ ein Feld mit der ID 2. Der Fehler muss also bereits beim Eintragen der IDs in die neu benötigten Zeilen stattfinden.
Sehen Sie sich die Stelle ‘Zeile hinzufügen’ an, an der die neuen Zeilen zur Tabelle hinzugefügt werden.
In diesem Fall tragen Sie die Variable ‘ID’ in den Parameter ‘ID’ ein.
Kontrollieren Sie die Tabelle „Kombinationen“ in Teams und löschen Sie ggf. unnötige Zeilen heraus. Speichern Sie den Flow und testen Sie ihn erneut.
Beispiel 2: Ausdruck nicht als fx
-Funktion angegeben
Die folgende Fehlermeldung tritt auf, wenn ein Ausdruck nicht in der korrekten Form angegeben wurde.
Fehler bei Aktion "WaehleIndex_4": Unable to process template language expressions in action 'WaehleIndex_4' inputs at line '0' and column '0': 'The template language expression 'variables('Gemischte_Mitarbeitende_B')[outputs('RandomIndex_4')]' cannot be evaluated because property 'rand(0, length(variables('Gemischte_Mitarbeitende_B')))' cannot be selected.
An der Karte wird der folgende Hinweis ausgegeben:
InvalidTemplate
Unable to process template language expressions in action 'WaehleIndex_4' inputs at line '0' and column '0': 'The template language expression 'variables('Gemischte_Mitarbeitende_B')[outputs('RandomIndex_4')]' cannot be evaluated because property 'rand(0, length(variables('Gemischte_Mitarbeitende_B')))' cannot be selected. Array elements can only be selected using an integer index.
Dabei gibt die Fehlermeldung an, dass der Fehler sich in ‘WaehleIndex 4’ befindet, da dort eine Ausgabe von ‘RandomIndex 4’ erwartet wird. Diese Ausgabe scheint aber nicht abrufbar zu sein.
Da der Ausdruck direkt in das Eingabefeld eingefügt wurde, kann die Funktion nicht verarbeitet werden, da sie als String – also als Text – verstanden wird. Korrigieren Sie dies, indem Sie die Eingabe als fx
-Funktion angeben. Speichern Sie den Flow und testen Sie ihn erneut.
Beispiel 3: Fehler bei der Feedbenachrichtigung
Für den Fall, dass Sie zwar Mitarbeitende in die Liste „Teilnehmende“ eingetragen, aber nicht dem TEST-Team in Teams hinzugefügt haben, wird die Aktion ‘Feedbenachrichtigung posten’ auf den Fehler Fehler bei Aktion "Feedbenachrichtigung_posten": The response is not in a JSON format.
laufen. An der entsprechenden Karte wird Forbidden
angegeben.
Dieses Problem können Sie beseitigen, indem Sie jene Mitarbeitenden, die Sie in die Liste „Teilnehmende“ einfügen, auch dem Team ‘TEST Team’ hinzufügen. Solange diese nicht Mitglied dieses Teams sind, kann diesen keine Feedbenachrichtigung angezeigt werden.
Hinweis: Eventuell kann dieses Problem auch dadurch auftreten, dass dem Team die App ‘Workflows’ fehlt. Gehen Sie über ‘Team verwalten’ in die Eigenschaften des Teams und öffnen Sie den Reiter ‘Apps’. Kontrollieren Sie hier, dass die App ‘Workflows’ zu Teams hinzugefügt wurde.
Testfälle
Wenn alles funktioniert, erhalten Sie eine Feedbenachrichtigung und im Kanal „TEST Kaffeepause“ wurde eine neue adaptive Karte erstellt, in der die Teilnehmenden aus Ihrer Excel-Liste zu Paaren zusammengestellt wurden.
Prüfen Sie, ob die ausgegebene Karte korrekt erstellt wird. Entspricht der Text Ihren Wünschen?
Hinweis: Gute Anlaufstellen, falls Sie sich tiefer mit der Gestaltung dieser Karten auseinandersetzen wollen, sind Microsofts Dokumentation zu adaptiven Karten für Teams und der Designer für adaptive Karten , der von Microsoft zur Verfügung gestellt wird und mit dem Sie mögliche Anpassungen direkt ausprobieren können.
Werden die Personen zu Paaren zusammengesetzt und richtig ausgegeben? Wird bei einer ungeraden Anzahl eine Gruppe aus drei Personen an letzter Stelle erzeugt? Können Sie die Terminschaltfläche anklicken?
Wenn Sie auf die Schaltfläche „Termin erstellen“ hinter den Namen klicken, soll sich ein Besprechungsplanungsdialogfenster öffnen, mit dem Termine in Outlook gemacht werden können. Kontrollieren Sie, ob der Titel, der Text und die Teilnehmenden vorausgefüllt werden wie im Deep Link angegeben.
Folgende Testfälle sind für die Testphase obligatorisch:
- Gerade Anzahl Teilnehmende
- Ungerade Anzahl Teilnehmende
- Anzahl Teilnehmende erhöhen (also z. B. +2 weitere Personen)
- Anzahl Teilnehmende verringern
Kontrollieren Sie bei den jeweiligen Testdurchläufen, ob im Flow Fehler aufgetreten sind und ob die Tabelle „Kombinationen“ korrekt befüllt wurde. Sind unnötige Zeilen der Vorwoche entfernt worden? Sind alle Personen aus der Liste „Teilnehmende“ übernommen und gemischt worden?
Produktiv
Sie haben den Flow auf Herz und Nieren geprüft und alles läuft wie gewünscht? Dann wird es Zeit den Flow in Ihren produktiven Arbeitsalltag zu integrieren.
Bereiten Sie zuerst Teams vor, indem Sie bestimmen, welcher Kanal für die „Kaffeepause“ genutzt werden soll. Falls Sie dafür noch keinen Kanal haben, legen Sie jetzt einen an. Ein guter Ort ist z. B. Ihr Unternehmensteam. Damit haben sofort alle Mitarbeitenden Zugriff auf den Kanal „Kaffeepause“. Diejenigen, die in der Excel-Liste „Teilnehmende“ eingetragen sind, werden für die Mischung des Roulettes berücksichtigt und wer an keiner „Kaffeepause“ mehr teilnehmen möchte, z. B. weil er/sie länger nicht verfügbar ist, kann sich austragen und nach der Rückkehr wieder in die Liste eintragen.
Legen Sie auch in diesem Kanal die beiden Listen „Teilnehmende“ und „Kombinationen“ an.
Ermitteln Sie ggf. für den Start Ihres Kaffeepause-Rouletts, welche Mitarbeitenden direkt an der ersten Runde teilnehmen möchten und tragen Sie deren E-Mail-Adressen in die Liste ein. Informieren Sie die Teilnehmenden, dass diese erste Runde noch eine Testphase ist, um zu prüfen, ob Ihr produktiver Flow einwandfrei funktioniert.
Hinweis: Wenn Sie die Flows über einen Service-User eingerichtet haben, werden Sie hier feststellen, ob dieser Service-User alle Rechte besitzt, um den Flow entsprechend ausführen zu können. Achten Sie darauf, dass auch der Service-User Mitglied des Teams sein muss, in dem sich Ihr Kanal ‘☕ Kaffeepause’ befindet.
Gehen Sie nun wieder auf Ihre Flow-Übersicht in Power Automate und speichern Sie den Flow „Kaffeepausen-Roulette TEST“ als „Kaffeepausen-Roulette PROD“ ab.
Im Moment ist der Status Ihres neuen Flows ‘Aus’. Sobald Sie diesen vollständig auf Ihre Ziele für den produktiven Einsatz ausgerichtet haben, können Sie ihn aktivieren.
Öffnen Sie den Flow „Kaffeepausen-Roulette PROD“ und gehen Sie auf ‘Bearbeiten’, um ihn anzupassen. Klappen Sie nacheinander alle Aktionen auf, um diese zu kontrollieren und falls notwendig auf den neuen Kanal bzw. die neuen Dateien auszurichten. Achten Sie auch darauf, dass die angegebene Verbindung an der jeweiligen Aktion korrekt ist.
Hier finden Sie eine Übersicht, welche Aktionen Sie wie anpassen und ggf. prüfen müssen.
Bereich/Bedingung | Name d. Aktion | Anpassung | Verbindung prüfen |
---|---|---|---|
Zeilen auflisten – Teilnehmende | Auf die Tabelle „Teilnehmende“ in ‘☕ Kaffeepause’ ausrichten | Ja | |
Gemischte Mitarbeitende A und B in Excel eintragen | Zeilen auflisten – Kombinationen | Auf die Tabelle „Kombinationen“ in ‘☕ Kaffeepause’ ausrichten | Ja |
▶ Bedingung Anzahl Zeilen ist größer als Anzahl Teilnehmende: TRUE | Zeile löschen | Auf die Tabelle „Kombinationen“ in ‘☕ Kaffeepause’ ausrichten | Ja |
▶ Bedingung Anzahl Zeilen ist größer als Anzahl Teilnehmende: FALSE | Zeile zu Tabelle hinzufügen | Auf die Tabelle „Kombinationen“ in ‘☕ Kaffeepause’ ausrichten | Ja |
Gemischte Mitarbeitende A und B in Excel eintragen | Zeile aktualisieren | Auf die Tabelle „Kombinationen“ in ‘☕ Kaffeepause’ ausrichten | Ja |
Gemischte Mitarbeitende A und B in Excel eintragen | Zeile aktualisieren 2 | Auf die Tabelle „Kombinationen“ in ‘☕ Kaffeepause’ ausrichten | Ja |
Variable AdaptiveKarteJSON initialisieren | Text des zweiten TextBlocks auf den neuen Kanal ausrichten, z. B. "text": "Über die Schaltfläche 'Termin erstellen' könnt ihr ein gemeinsames Treffen zu einem ☕ planen. Wählt dazu bitte manuell den Kanal 'Contoso > ☕ Kaffeepause' aus.", |
||
Ausgabe in Teams | Zeilen in Kombinationen auflisten | Auf die Tabelle „Kombinationen“ in ‘☕ Kaffeepause’ ausrichten | Ja |
Ausgabe in Teams | Benutzerprofil abrufen (V2) A | Ja | |
Ausgabe in Teams | Benutzerprofil abrufen (V2) 1-3 | Ja | |
Ausgabe in Teams | Karte in Kanal Kaffeepause veröffentlichen | Das TEST aus dem Namen entfernen und auf den Teams-Kanal ‘☕ Kaffeepause’ ausrichten | |
Ausgabe in Teams | Feedbenachrichtigung posten | Auf den Teams-Kanal ‘☕ Kaffeepause’ ausrichten | Ja |
Wenn Sie alle Stellen kontrolliert und angepasst haben, speichern Sie den Flow „Kaffeepausen-Roulette PROD“ und aktivieren Sie ihn. Über ‘Ausführen’ starten Sie den ersten produktiven Durchlauf von Hand oder Sie öffnen den Flow und starten den Testlauf über ‘Testen’. Sehen Sie sich im Anschluss den Durchlauf mit den gleichen Fragen wie im Testlauf an.
Wenn keine Fehler aufgetreten sind, alle Paare gemischt und die Karte sowie die Feedbenachrichtigungen ausgegeben wurden, steht Ihren zukünftigen Runden im Kaffeepausen-Roulette nun nichts mehr im Weg.
Hinweis: Wenn Sie für Ihren ‘☕ Kaffeepause’-Kanal ein Team wählen, das auch eine Gruppe in Outlook hat, und im Besprechungsplanungsfenster der Kanal angegeben wird, dann werden die Termine im gemeinsamen Kalender der Gruppe dargestellt. Für das hier gezeigte Beispiel wäre das die Gruppe „Contoso“. Somit haben alle Mitglieder der Gruppe (unabhängig davon, ob Sie in der Liste „Teilnehmende“ eingetragen sind) einen Überblick über die bereits vereinbarten Kaffeepausen. So können sich Unentschlossene, Neugierige oder Teilnehmende, deren Partnerinnen und Partner in der Woche vielleicht abwesend sind, einer Kaffeepause mit anderen Mitarbeitenden anschließen, wenn sie möchten. Der Termin wird zusätzlich auch direkt im Kanal als Karte angezeigt. Über diesen kann man ebenso an einer laufenden Kaffeepause teilnehmen.