Ich kann recht einfach einen PowerAutomate Workflow definieren, der startet, wenn es in einem MS Forms Formular einen neuen Eintrag gegeben hat und der dann einen neuen Eintrag in einer SharePoint Liste erstellt.
Dafür brauche ich drei Aktionen:
- "Bei Übermitteln einer neuen Antwort"
- "Antwortdetails abrufen". Hier setzte ich die "Antwort-ID" auf die "Antwort-ID" aus dem vorherigen Schritt.
- "Element erstellen". Hier erstelle ich ein neues Element in einer SharePoint Liste und trage die Daten aus dem vorherigen Schritt ein.
So weit so gut, aber wenn ich das Feld "Multiquestion" eine Mehrfachauswahl ist, dann sieht das Ergebnis so aus.
Der Wert im Mehrfachauswahl-Feld wird nämlich im JSON-Format zurückgegeben. Den müssen wir parsen und umformatieren.
["Option 1","Option 2","Option 4"]
Dazu fügen wir zunächst eine "JSON analysieren" Aktion mit ein. In das Feld "Inhalt" fügen wir den Multichoice-Wert aus dem Formular und das folgende Schema in das "Schema"-Feld ein.
{
"type": "array",
"items": {
"type": "string"
}
}
Damit haben wir dann alle gegebenen Antworten aus dem JSON-Format ausgelesen. Sie stehen uns nun in einem Array zur Verfügung. Dieses Array wollen wir aber umformatieren und alle Elemente in einem Textfeld als eigene Zeilen darstellen.
Dazu benutzen wir nun eine "Verknüpfung" / "Beitreten" Aktion (im Englischen "Join") und fügen in das "Von"-Feld den "Text" aus der vorherigen Aktion ein.
In das "Verknüpfen mit" Feld können wir theoretisch nun jedes Zeichen einfügen. Alle Werte der Mehrfachauswahl werden mit diesem Zeichen als Trennzeichen zusammengefügt.
Wir wollen aber einen Zeilenumbruch haben. Da das ein Sonderzeichen ist, müssen wir den Zeilenumbruch mittels der folgenden Formel darstellen.
decodeUriComponent('%0A')
Damit sieht die Aktion dann so aus
Die Ausgabe dieses Feldes fügen wir nun in der "Element erstellen" Aktion in das Textfeld für "MyChoiceField" mit ein. Das ergibt dann insgesamt diesen Flow
Wenn nun ein neuer Eintrag in das Formular geschieht, dann wird in der SharePoint Liste der Wert entsprechend formatiert eingetragen.