Office 365 PowerApps & Flow – Büchse der Pandora oder Panazee
Contents
In diesem Beitrag möchte meine Erfahrungen mit PowerApps bei der Umsetzung von Formularen in Office 365 beleuchten und ein paar kleine Tipps weitergeben.
Ich habe sehr viele Formulare mit Nintex Workflow und Forms umgesetzt und stehe jetzt seit ca. 1,5 Jahren vor der Herausforderung das gleiche mit Microsoft PowerApps im SharePoint zu bewerkstelligen (Stand 2018).
Update (29.01.2020) – ein paar Updates nach jetzt schon 4 Jahren intensivem PowerApps Einsatz – es ist wirklich fast alles möglich mit PowerApps -> beginnen Sie jetzt!
–dieser Artikel wächst noch die nächste Zeit – also öfters mal reinschauen–
Erster Eindruck
Meine ersten Berührungspunkte mit PowerApps hatte ich zu einem Zeitpunkt zu dem es noch eine Browser und eine Desktop Umgebung gab. Diese Zeit ist aus meiner Sicht vorbei, da die ich persönlich nur noch im Browser mit PowerApps arbeite und dabei keine Probleme und Unterschiede zur Desktop Applikationen auftreten.
Zwei Wege zur Lösung
Wenn PowerApps eingesetzt werden soll, muss man sich bereits zu Beginn für die eine der beiden Herangehensweisen (Architekturen) entscheiden.
- PowerApps Add-in Ansatz
- PowerApps SharePoint Custom List – Ansatz
Mit Stand 17.01.2019 ist ein späterer Wechsel zum anderen Ansatz nur schwer möglich. Weiter unten sage ich noch was zu den Gemeinsamkeiten und Unterschieden der beiden Ansätze.
Das Wichtigste ist, dass man versteht, dass bei PowerApps das „Apps“ für wirkliche App-Architektur steht und damit dem Grundprinzip der App Entwicklung folgt.
Ruft der Nutzer eine PowerApp auf, landet dieser auf einem Startbildschirm und kann sich von dieser Stelle aus zu weiteren „Bildschirmen“ (Screens) durchklicken oder wieder zurück springen. Wenn eine App gestartet ist, merkt diese sich auch die Daten, bis diese komplett neugestartet wird.
Zu einem Formular wird ein Bildschirm (Screen) erst durch das Hinzufügen von Formularelementen wie eine Textbox oder Schaltflächen. Bei der Formulargestaltung kann der Ersteller festlegen, ob er selbst die CRUD (Create, Read, Update, Delete) Funktionen programmieren möchte oder dafür die Out of the Box Form Funktionen einsetzt.
Gemeinsamkeiten und Unterschiede der beiden Ansätze
- In beiden Ansätze arbeitet man mit Screens (Bildschirmen) und Formularen – die Grundfunktion ist also gleich
Manuelles Deployment und kein EXPORT – Für jeden Enterprise Ansatz sollte man wissen, dass sich mit Stand zum 17.01.2019 ein Custom Form aus Power Apps nicht exportieren lässt. Ich geht hier so vor, dass ich die komplette SharePoint Site via Powershell ex- und importiere und dann das PowerApp Custom Form via Copy-Paste im Browser kopiere. Dies geht im Browser bei gleicher Benennung von Listen und Spalten fast ohne Zeitverlust. Die Bildschirme (Screens) lassen sich nicht kopieren, aber einzelne Formulare lassen sich komplett inkl. Layout kopieren. Alle Funktionen in den „OnStart“, „OnVisible“ und SharePoint Integration Funktionen werden im Anschluss ebenfalls via Copy-Paste übernommen. Mein Aufwand selbst bei sehr komplexen Formularen aufgeteilt auf viele Bildschirme lag bei ca. 1-2h Aufwand.
Update 01/2020: Es gibt es hier leider noch keine Lösung.
Warum setzt man dann auf die Custom Forms?
Mit der Verwendung der Custom Forms lassen sich zu 100% die SharePoint Funktionen und Gegebenheiten nutzen. Wenn die App „Pure“ also komplett als Add-In genutzt werden soll, muss der Nutzer auch in der App sein relevantes Element auswählen. Dieser Auswahldialog muss erst über Katalogfunktionen in der App nachgebaut werden. Das ist aufwändig und ich denke gerade die vielen Listenfunktionen (Filter, Gruppieren, Ansichten) wollen viele im SharePoint beibehalten. Auch lassen sich so zusätzliche Scripte (bspw. zur PDF Erstellung) in den Listen unterbringen.
Damit die Listen genutzt werden können, bieten PowerApps ein sogenanntes „SharePoint Integration“ Modul an. Damit erkennt PowerApps dann, ob der Nutzer auf den „Neu-Button“ oder ein Element geklickt hat und dieses geladen, angezeigt und bearbeitet werden soll.
Das Verhalten und Vorgehen ist ein wenig gewöhnungsbedürftig, aber funktioniert stabil.
Nachfolgend ein Beispiel eines Formulars im SharePoint Online.
Keine Inhaltstypen (Content Types) mehr
Für alle die sich in der Vergangenheit mit Inhaltstypen (Content Types) beim Thema Formulare und Listen rum geärgert haben, sei gesagt:
- Nie wieder Content Types!!
- PowerApps benötigt diese nicht.
Anstatt eines Inhaltstyps kann ein Auswahlfeld in der Liste genutzt und in PowerApps interpretiert werden. Das ist flexibler und schafft Freiheitsgrade in der Gestaltung und dem Prozessverlauf.
Kleine Helferlein und Tipps für den Start
Wer in deutscher Sprache arbeitet, sollte sich nicht drüber ärgern, dass die Beispiele von Microsoft und in den Foren beim Übernehmen zu Fehlern führen. Es gibt ein nerviges Problem mit dem Komma und den Semikolons.
Zwischen zwei Funktion müssen immer zwei Semikolons (;;) gesetzt werden und anstatt eines Kommas ein Semikolon. Wenn in einer Standardfunktion wie bspw. OnNew oder OnVisible dann das Ende des Codes erreicht ist, darf man keine zwei Kommas setzen! Der nachfolgende Beispielcode zeigt die Schwierigkeiten.
If(formModeForPatch="new"; Patch(listNameDB; {ID:Form.LastSubmit.ID}; {Title:newTitle}; {Status:'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"; Id:1; Value:textStatus01}} );;
RequestHide(); true)
Ich kann nur empfehlen PowerApps Know-How aufzubauen und das Produkt einzusetzen. Wer an der ein oder anderen Stelle nicht weiterkommt kann gerne auf mich bzw. die HB Munich GmbH zukommen siehe hier
Ersatz für InfoPath oder was ist dieses Forms?
Oft wurde ich gefragt, was denn der Nachfolger für InfoPath ist?
Es gibt keinen offiziellen Nachfolger. Für mich ist Microsoft PowerApps aber auf jeden Fall ein Werkzeug, welches sehr gut zur Erstellung von Formularen genutzt werden kann. Aus meiner Sicht sogar sehr stabil und zuverlässig mit vielen Möglichkeiten. Auch komplexe Formulare lassen sich mit diesem App-Screen Ansatz erstellen.
Was man noch wissen muss, ist dass Microsoft Forms nicht für Formulare verwendet werden kann. Für Formulare dient PowerApps. Mit Microsoft Forms kann man nur Umfragen oder ein Quiz realisieren.
Kann PowerApps Workflows ausführen?
Ja und Nein, PowerApps selbst ist keine Workflow Werkzeug. Dazu dient Microsoft Flow. Dieses lässt sich aus PowerApps heraus aufrufen.
Einer Schaltfläche (Button) kann eine Funktion (OnSelect) zugewiesen werden, die dann einen Workflow (Flow) startet.
Das wirkt zwar alles noch etwas wackelig, aber funktioniert soweit.
MS Flow an sich, ist dann wieder für alle Anforderungen zur Datenmanipulation zuständig.
Wo gibt es noch Ausbaupotential in PowerApps?
- Dateiupload mit Verbindung zu SharePoint
- Verbindung und Updates zu Flow in PowerApps
- Funktionsbausteine / Blöcke fehlen