Working with Power Automate Flows in Solutions

In my projects, I keep seeing Power Automate flows being created directly in an environment. This means that they are outside of a solution. The flow doesn’t care where it runs, but there are at least three good reasons to package flows in a solution and work with them. This article introduces these tree advantages. These apply even if you don’t have multiple environments, which is often the reason to work with solutions in the first place.

Note: The benefits described here are only possible if you work with https://make.Powerautomate.com. In all other sites, including https://make.PowerApps.com it doesn’t work! In addition, you must use the (not quite) new editor. Unfortunately, there are some triggers with which this is not possible. You also absolutely need a Dataverse database in your environment.

What are solutions?

Solutions are a logical container that contains artifacts from the Power Platform. These artifacts can be Power Apps, Flows, Dataverse content, and more. These solutions can be exported from an environment and imported into a target environment. This also makes it possible to get an overview of which adjustments have been made and for which period. Solutions can also be versioned, which makes it even easier to manage. Solutions require a Dataverse database.

First advantage: More actions

If a flow is outside of a solution and you try to start another flow, this is associated with a lot of effort or even completely impossible. If the flow is in a solution, there is a corresponding action for it. We can find this action, called Run a Child Flow, in the Flows group. This is the only action there.

Only a flow within the same solution can be started and you need the rights for that flow.

Attention: Currently it is not possible for me to configure the action in the new editor, I can only do this in the classic editor. In the new editor, I can’t select a child workflow. So you have to switch back and forth in development.

There is a lot more to consider on this topic, the following article explains this: https://learn.microsoft.com/en-us/power-automate/create-child-flows An addition: The sub workflow requires the action „Respond to a Power App or flow“. However, this action is not easy to find. You must enter „Power Apps“ in the search for a connector and do it exactly like this. If you search for PowerApps (without spaces), you’ll find some connectors for Power Apps, but the one we wanted isn’t there.

Second advantage: Versioning a flow

When a flow is created in a solution, it is versioned. Drafts can be saved and flows can be published selectively. It is also possible to jump back to a previous version. A flow is added to a solution like any other artifact.

Attention: I always have the problem that when I create a flow in the solution, the old editor is opened. The alternative is to first create the flow outside the solution and then import it into it.

The versioning controls are located at the top right, where save, test, etc. are already located.

Now, when a flow is saved, a minor version or draft is saved. This cannot be executed it must first be published with Publish. This also means that if you already have a published version, and you save it and want to test it, it will NOT run what you have just saved. The last published version will be executed. Before you want to test, the flow must be published via Publish.

You can use the clock icon on the left of the Flow checker action to jump back to an earlier version.

Third benefit: Change (co)ownership of a flow

In a flow outside of a solution, I can specify accounts that can change the flow with it but not change the owner. Only an owner can change the rights of a flow and delete them. But with a flow in a solution, I can also change the owner. To do this, go to the administration page of the flow and enter or change the co-owner in the Co-owners section by clicking on Set primary owner.

Make sure that the new owner also has the correct licenses for the flow. In my screenshot, this is not the case.

Summary

When developing flows, they should always be used in a solution. It has no disadvantages and only brings advantages. Have you already worked with Flow in solutions?

If you would like to learn more about Microsoft Flow, you are welcomed to attend a seminar I’ve created. I offer these once as a seminar for people with an IT background and once for people without an IT background. Get in touch with me.

Warum sollten Power Automate Flows in Lösungen verpackt werden?

In meinen Projekten sehe ich immer wieder, dass Power Automate Flows direkt in einer Umgebung erstellt werden. Damit stehen diese außerhalb einer Lösung bzw. Solution. Dem Flow ist es erst einmal gleich, wo dieser läuft, aber es gibt zumindest drei gute Gründe Flows in eine Lösung zu verpacken und damit zu arbeiten. Dieser Artikel stellt diese drei Vorteile vor. Diese gelten auch,  wenn Sie nicht mehrere Umgebungen haben, was oft der Grund ist überhaupt mit Lösungen zu arbeiten.

Achtung: Die hier beschriebenen Vorteile sind nur dann möglich, wenn Sie mit der URL https://make.powerautomate.com arbeiten. In allen anderen Oberflächen, auch in https://make.powerapps.com geht es nicht! Außerdem müssen Sie zwingend den (schon nicht mehr ganz) neuen Editor verwenden. Leider gibt es einige Trigger, mit welchen dies nicht möglich ist. Außerdem benötigen Sie unbedingt eine Dataverse Datenbank in Ihrer Umgebung.

Was sind Lösungen bzw. Solutions?

Lösungen sind ein logischer Container, welcher Artefakte aus der Power Platform enthält. Diese Artefakte können Power Apps, Flows, Dataverse Inhalte und vieles mehr sein. Die Lösungen können aus einer Umgebung exportiert und in eine Zielumgebung importiert werden. Damit ist es auch möglich eine Übersicht zu erhalten, welche Anpassungen zu welchem Zeitraum durchgeführt wurden. Lösungen können auch versioniert werden, was die Verwaltung noch einmal einfach macht. Lösungen erfordern zwingend eine Dataverse Datenbank.

Erster Vorteil: Mehr Aktionen

Wenn sich ein Flow außerhalb einer Lösung befindet und Sie versuchen darin einen weiteren Flow zu starten, so ist dies mit sehr hohem Aufwand verbunden oder sogar komplett unmöglich. Wenn sich der Flow in einer Lösung befindet, gibt es dafür eine entsprechende Aktion. Wir finden diese Aktion mit den Namen Run a Child Flow in der Gruppe Flows. Dort ist dies die einzige Aktion.

Gestartet werden kann dabei nur ein Flow, welcher sich in der gleichen Solution befinden und auf dem Sie Rechte haben.

Achtung: Aktuell ist es mir nicht möglich, die Aktion im neuen Editor zu konfigurieren, dies gelingt mir nur im klassischen Editor. Im neuem Editor läßt sich mir kein untergeordneter Workflow auswählen. Man muss also in der Entwicklung hin- und herschalten.

Es gibt bei dem Thema noch einiges mehr zu beachten, der folgende Artikel erläutert dies: https://learn.microsoft.com/en-us/power-automate/create-child-flows Dazu noch eine Ergänzung: Der Subworkflow benötigt zwingend die Aktion „Respond to a Power App or flow“. Diese Aktion ist allerdings nicht einfach zu finden. Sie müssen in der Suche nach einem Konnektor „Power Apps“ eingeben und zwar genau so. Wenn Sie nach PowerApps (ohne Leerzeichen) suchen, finden Sie einige Konnektoren für Power Apps, aber der von uns gewünschte ist nicht dabei.

Zweiter Vorteil: Einen Flow versionieren

Wenn ein Flow in einer Lösung erstellt wird, so wird dieser versioniert. Dabei können Entwürfe gespeichert und Flows selektiv veröffentlicht werden. Ebenso ist es möglich auf eine Vorgängerversion zurückzuspringen. Ein Flow wird einer Lösung wie jedes andere Artefakt hinzugefügt beziehungsweise erstellt.

Achtung: Ich habe immer wieder das Problem, dass wenn ich einen Flow in der Solution erstelle, den alten Editor angeboten bekomme. Die Alternative ist, den Flow zuerst außerhalb der Lösung zu erstellen und dann in diese zu importieren.

Die Steuerelemente der Versionierung finden sich oben rechts, wo sich auch schon Speichern, Test, etc. befinden.

Wenn jetzt ein Flow gespeichert wird, wird eine Nebenversion bzw. Entwurf gespeichert. Dieser kann nicht ausgeführt, sondern muss mit Publish erst veröffentlicht werden. Dies bedeutet auch, wenn Sie schon eine Version veröffentlicht haben, speichern und dann testen, wird NICHT das ausgeführt, was Sie eben gespeichert haben, sondern die letzte veröffentlichte Version. Vor einem Test muss via Publish der Flow veröffentlicht werden.

Über das Uhrensymbol, links neben dem Flow checker, können Sie in eine frühere Version wieder zurückspringen.

Dritter Vorteil: (Co)Besitzer eines Flow ändern

In einem Flow außerhalb einer Lösung kann ich Konten angeben, welche den Flow mit ändern können, aber nicht den Besitzer ändern. Nur ein Besitzer kann die Rechte eines Flows ändern und diese auch löschen. Mit einem Flow in einer Lösung kann ich aber auch den Besitzer ändern. Dazu wird auf die Verwaltungsseite des Flows gegangen und dort unter dem Punkt Co-owners mit einem Klick auf Set primary owner der Mitbesitzer eingetragen oder geändert.

Achten Sie darauf, dass der neue Besitzer auch die richtigen Lizenzen für den Flow besitzt. In meinen Screenshot ist dies nicht der Fall.

Fazit

Wenn Flows entwickelt werden, sollte diese immer in einer Solution verwendet werden. Es hat keine Nachteile und bringt nur Vorteile mit sich. Haben Sie schon mit Flow in Lösungen gearbeitet?

Wenn Sie mehr über Microsoft Flow lernen möchten, können Sie auch gern ein Seminar von mir besuchen. Diese biete ich einmal als Seminar für Personen mit IT Hintergrund an und einmal für Personen ohne IT Hintergrund. Nehmen Sie Kontakt mit mir auf.

Arbeiten mit Vorlagen in Microsoft Teams

In der aktuellen Corona Situation ist für viele Firmen Home Office und damit Microsoft Teams das Mittel der Wahl. Dementsprechend gibt es viele KollegInnen, welche entsprechende Anleitungen schreiben wie man Teams am besten einführt, wie man es anpasst und die Nutzer animiert es optimal zu nutzen. Dies ist nicht der nächste Artikel unter vielen zu dem Thema, denn dieser Artikel beschäftigt sich mit dem Thema Vorlagen in Microsoft Teams. Er erläutert, wie Sie einfach ein neues Team aus einem schon bestehenden erzeugen können und wo die Grenzen dessen liegen.
Microsoft Teams wird in vielen Geschäftsprozessen innerhalb einer Organisation eingesetzt. Oft sind dies Projekte und gerade dort kann man gut mit einer generischen Vorlage arbeiten. Eine Vorlage mit allen Kanälen und Tabs wird einmal erstellt und dann bei jedem neuem Projekt wieder verwendet. Dabei ist zu beachten, dass die neuen Teams natürlich eine Kopie sind und Änderungen am Template nicht auf die schon damit erstellten Teams weitergereicht werden. Änderungen an der Vorlage sind immer erst an danach erstellten Teams sichtbar. Die folgenden Ausführungen gelten für alle Teams, welche KEINE privaten Kanäle enthalten. Wie Sie mit privaten Kanälen umgehen, lesen Sie weiter unten.
Wenn Sie ein neues Team aus einem schon vorhandenen Team erstellen möchten, so erstellen Sie ggf. die Vorlage und gehen dann auf Team beitreten oder erstellen.  Dort wählen Sie dann Team erstellen und Erstellen aus… Im nächsten Dialog klicken Sie auf Team. Sie sehen alle Teams, in welchen Sie Mitglied sind. Wählen Sie das entsprechende Team und klicken Sie auf dieses. Im folgenden Fenster geben Sie dem neuen Team ein Name, wählen den Datenschutz und scrollen in dem Fenster ganz nach unten. Erst dann können Sie alle Einstellungen sehen, was Sie übernehmen wollen.
2020-03-29_13h37_16
Das neue Team wird sofort erstellt und steht den Mitgliedern zur Verfügung. Die folgende Abbildung zeigt zum einen die Vorlage und zum anderen das daraus neu erstellte Team.
2020-03-29_13h39_251

Vorlagen und private Kanäle

Wenn man die Vorlage und das neue Team vergleicht, fällt auf, dass der private Kanal Finanzen fehlt. Dies ist keine Einstellung in einer Konfiguration, sondern private Kanäle können in Vorlagen auf diesem Weg nicht verwendet werden. Es gibt allerdings andere Möglichkeiten private Kanäle in einer Vorlage zu verwenden. Bevor wir aber dazu kommen, noch ein paar Worte zu privaten Kanälen.
Auf private Kanäle darf nur ein bestimmter Personenkreis zugreifen, welcher sich zudem im Team bzw. der Office 365 Gruppe, die dem Team zugeordnet ist, befinden muss. Es ist nicht möglich, auf einen privaten Kanal eine bestehende Office 365 Gruppe direkt zu berechtigen. Muss man mit Code Teams Vorlagen erstellen, so muss man die einzelnen Benutzer aus der Office 365 Gruppe holen (aufzählen) und jeden Benutzer einzeln zuordnen. Das ist nicht weiter kompliziert, denn Microsoft Office Graph bietet dafür Methoden. Komplexer wird es, wenn nach dem Erstellen des Teams neue Benutzer hinzugefügt oder entfernt werden. Dazu könnte man an die Gruppe einen Power Automate Workflow hängen, der auf Änderung der Gruppenmitgliedschaft reagiert. Dieser Workflow entfernt oder fügt Mitglieder in die entsprechenden privaten Kanäle hinzu.
Um eine Teamvorlage zu erstellen, welche auch private Kanäle unterstützt, bieten sich verschiedene Wege an. Das eine wäre PowerShell. Man könnte die gesamte Vorlage per PowerShell coden und dieses PowerShell z.B. in Azure Automation oder Azure Function  ablegen. Über eine SharePoint Liste würden die Metadaten des neuen Teams erfasst. Das Speichern des Listeneintrages triggert dann das PowerShell. Eine Übersicht über alle Kommandos PowerShell für Teams finden Sie hier. Beachten Sie bei dieser Technik die Frage der Authentifizierung und des Kontext.
Intern machen die Kommandos der PowerShell Gebrauch von Microsoft Office Graph. Darüber können Sie nicht nur Teams verwalten, sondern so ziemlich alles machen was in Office 365 geht. Mit dem Microsoft Office Graph können Sie auch direkt arbeiten, Sie brauchen dafür kein PowerShell.
Microsoft stellt auch eigene Vorlagen für Teams zur Verfügung, welche Teams für verschiedene Branchen abbilden. Diese Vorlagen nutzen ebenfalls direkt Microsoft Office Graph. Eine Dokumentation dazu gibt hier. Die Definition eines Teams erfolgt in JSON. Eine Anleitung, wie solch eine Vorlage erstellt und ausgeführt wird, finden Sie hier. Natürlich wäre es auch möglich, wie in dem Beispiel oben, zu einem schon bestehenden Team weitere private Kanäle hinzuzufügen. Das ist das schöne an Microsoft Office Graph, er ist einfach und gleichzeitig extrem flexibel.
Das Erstellen einer Vorlage kann allerdings für jemand ohne einen Entwicklerhintergrund schwierig werden. Es ist aber nicht unmöglich, zumal man die Vorlage direkt im Browser auch testen kann. Aber vielleicht ist da der Dienstleister oder das Tool eines Drittanbieters die bessere Wahl…

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.