Sofort-Kontakt

Kopfzeilen-Bild
Kopfzeilen-Filter
Kopfzeilen-Schräge

Power Platform

Kopfzeilen-Anführungszeichen Codearme Tools zur Effizienzsteigerung Kopfzeilen-Anführungszeichen

Tutorial zur
Urlaubsge­nehmigung
mit Share­Point und
Power Automate Teil 5/9: Die Einrich­tung in Power Automate – Flow 2 'Urlaubs­antrag stellen'

Fortsetzung der Tutorial-Reihe zur Urlaubs­geneh­migung: Nun geht es darum, den Flow ‘Urlaubsantrag stellen’, welchen Sie in Power Automate bereits angelegt haben, mit Blick auf Variablen und Bedingungen weiter einzurichten.


Fortsetzung der Einrichtung in Power Automate

Erstellen Sie einen automatisierten Cloud-Flow. Klicken Sie im folgenden Einrichtungsfenster auf ‘Überspringen’ und suchen Sie anschließend den Forms-Trigger ‘Bei Übermitteln einer neuen Antwort’. Als Formular-ID geben Sie die Umgebungsvariable ‘EV Formular Urlaubsantrag stellen’ an. Für die Forms-Aktion ‘Antwortdetails abrufen’ geben Sie dieselbe Umgebungsvariable an sowie die Antwort-ID, die der Trigger ‘Bei Übermitteln einer neuen Antwort’ zur Verfügung stellt. Anschließend speichern Sie den Flow ab.

Trigger und Aktion festlegen

Legen Sie mit der Aktion ‘Variablen initialisieren’ die folgenden flowinternen Variablen – zwischen dem Trigger ‘Bei Übermitteln einer neuen Antwort’ und der Aktion ‘Antwortdetails abrufen’ – an.

Name Typ Wert
AntragsNr Zeichenfolge
Anzeigename Zeichenfolge
ArtSonderurlaub Zeichenfolge
Startdatum Zeichenfolge
Enddatum Zeichenfolge
Email Zeichenfolge
Benutzerprinzipalname Zeichenfolge
LookupID Ganze Zahl
Zahl Ganze Zahl
NutzerVorhanden Boolescher Wert Ausdruck: equals(1,2)
Wochenende Boolescher Wert Ausdruck: equals(1,1)
HalberTag Boolescher Wert Ausdruck: equals(1,2)
Sonderurlaub Boolescher Wert Ausdruck: equals(1,2)

Hinweis zu den Ausdrücken: Für manche Werte und Aktionen in den Flows werden Ausdrücke benutzt, d. h. hier kommen Formeln zum Einsatz so wie equals(Wert1,Wert2), die je nachdem, ob Wert1 und Wert2 identisch sind, true oder false ausgeben. Um eine Formel anzulegen, klicken Sie auf ‘Dynamischen Inhalt hinzufügen’ und wechseln Sie dort zum Reiter ‘Ausdruck’. Fügen Sie die Formel in das Fx-Feld ein. Wenn Sie weiter nach unten scrollen, finden Sie dort alle weiteren Formeln, die Sie nutzen können.

Formeln nutzen

Tipp: Wenn Sie eine Aktion mehrfach bzw. an mehreren Stellen in Ihren Flow integrieren wollen, können Sie die Zwischenablage nutzen. Öffnen Sie dazu über die drei Punkte ’…’ das Menü der gewünschten Aktion und wählen Sie ‘In Zwischenablage kopieren’ aus. Wenn Sie nun einen neuen Schritt hinzufügen, finden Sie Ihre duplizierte Aktion im Reiter ‘Zwischenablage’.

Zwischenablage nutzen

Wenn Sie alle Variablen initialisiert haben, sollte Ihr Flow so aussehen:

Alle Variablen zwischen dem Trigger und der ersten Aktion initialisieren

Fahren Sie anschließend nach der Aktion ‘Antwortdetails abrufen’ fort, indem Sie die Rückgabewerte daraus für die Variablen ‘Startdatum’ und ‘Enddatum’ festlegen.

Das Datum festlegen

Nun soll in der ersten Bedingung geprüft werden, ob der Forms-Rückgabewert zu ‘Halber Tag’ ist gleich Ja entspricht. Ist das der Fall, so wird die Variable ‘HalberTag’ mit der Fx-Formel equals(1,1) zu wahr geändert. Der „Nein“-Zweig bleibt leer.

Bedingung Halber Tag

Fügen Sie danach eine weitere Bedingung ein und prüfen Sie den Rückgabewert von ‘Urlaubsform’ auf ist ungleich Urlaub. Wenn ja, dann wird die Variable ‘Sonderurlaub’ mit der Fx-Formel equals(1,1) auf wahr gesetzt und für die Variable ‘ArtSonderurlaub’ wird der Rückgabewert ‘Bei Sonderurlaub’ festgelegt.

Bedingung Urlaubsform

Um die/den Vorgesetzten der antragstellenden Person für die Genehmigung bestimmen zu können, müssen Sie den Benutzer festlegen. Die Aktion ‘Antwortdetails abrufen’ verfügt über die ‘Responders’ Email’, mit der Sie die benötigten Daten aus Microsoft 365 (Office 365) ermitteln können. Fügen Sie die Aktion ‘Nach Benutzern suchen’ ein, mit der ‘Responders’ Email’ als ‘Suchbegriff’ und 1 für den Parameter ‘Oben’, der angibt, wie viele Ergebnisse ausgegeben werden sollen. Danach setzen Sie den Rückgabewert zu ‘Benutzerprinzipalname’ in die gleichnamige Variable ein.

Benutzer festlegen

Um im nächsten Flow – ‘Urlaubsantrag genehmigen’ – eine Genehmigung erstellen zu können, wird ein Vorgesetzter oder eine Vorgesetzte benötigt.

Hinweis: Für alle Mitarbeitenden – auch für Sie selbst – in Ihrem Unternehmen, die zukünftig die Urlaubsgenehmigung nutzen sollen, muss im Azure Admin Center ein Verwalter bzw. Manager hinterlegt sein. Somit können die Flows die genehmigende Person ermitteln, ohne dass eine separate Tabelle dafür gepflegt werden muss. Wenn Sie über das Microsoft Intune Admin Center  oder das Microsoft Entra Admin Center  arbeiten, erreichen Sie diese Eigenschaft über den Pfad ‘Home > Benutzer > Benutzername > Eigenschaften bearbeiten > Verwalter hinzufügen/bearbeiten’.

Manager/in in Azure zuweisen

Alternativ können Sie auch im Microsoft 365 Admin Center über den Pfad ‘Benutzer > Aktive Benutzer > Benutzername > Manager bearbeiten’ einen Manager zuweisen.

Manager/in in Microsoft 365 zuweisen

Mit der Aktion ‘Vorgesetzten abrufen’ und der Variable ‘Benutzerprinzipalname’ kann der oder die Vorgesetzte ermittelt werden. Setzen Sie als Nächstes die Outlook-Aktion ‘Email senden’, um eine Nachricht zu erzeugen, falls kein Verwalter bzw. Manager ermittelt werden kann.

Vorgesetzten nicht gefunden

Beispieltext:

Es konnte kein Urlaubsantrag gestellt werden.

Es wurde kein/e Vorgesetzte/r oder Manager/in gefunden, der/die Ihre Anfrage genehmigen kann. Sprechen Sie mit Ihrer Administration, sodass im Azure Admin Center ein/e Vorgesetzte/r oder Manager/in für Sie hinterlegt wird.

Im Anschluss können Sie einen neuen Urlaubsantrag stellen.

Wenn Sie die Benachrichtigung erstellt haben, öffnen Sie das Menü und wählen Sie die Option ’“Ausführen nach” konfigurieren’ aus. Die E-Mail soll nur gesendet werden, wenn die vorherige Aktion fehlerhaft ist. Der Verbindungspfeil zu dieser Aktion wird durch diese Anpassung gestrichelt dargestellt.

Ausfuehren nach konfigurieren

Anschließend fügen Sie einen parallelen Branch zwischen den Aktionen ‘Vorgesetzten abrufen’ und ‘E-Mail senden’ hinzu.

Parallelen Branch einfuegen

Legen Sie die Variablen ‘Email’ und ‘Anzeigename’ fest, indem Sie jeweils die Rückgabewerte ‘E-Mail’ und ‘Anzeigename’ aus der Aktion ‘Nach Benutzern suchen’ zuweisen.

E-Mail Anzeigename festlegen

Fahren Sie – außerhalb der Schleife – mit der SharePoint-Aktion ‘Elemente abrufen’ fort. Geben Sie die Umgebungsvariablen ‘EV Site Urlaubsgenehmigung’ (Websiteadresse) und ‘EV Liste Urlaubstage’ (Listenname) an. Filtern Sie dann die Abfrage mittels Name eq ‘@{variables(‘Anzeigename’)}’, sortieren Sie nach Name desc – also in absteigender Reihenfolge – und geben Sie für die ‘Top-Anzahl’ 1 an.

Eintrag des/der Mitarbeitenden aus der Liste Urlaubstage abrufen

Setzen Sie die nächste Bedingung, um mit dem Ergebnis zu ermitteln, ob eine Person gefunden werden konnte. Prüfen Sie, ob der Rückgabewert ‘Mitarbeiternr.’ ungleich NULL ist. Geben Sie dafür null als Fx-Ausdruck ein. Im „Ja“-Zweig können Sie die Variable ‘NutzerVorhanden’ über den Fx-Ausdruck equals(1,1) auf wahr setzen.

Bedingung Person ist vorhanden

Pfad Person vorhanden: Wenn nein

Wird kein Datensatz ermittelt, befindet sich kein Eintrag zu dieser Person in der Liste ‘Urlaubstage’ oder der Eintrag ist fehlerhaft. Dann ist es sinnvoll, eine Benachrichtigung an den Antragsteller oder die Antragstellerin zu schicken.

Person vorhanden Nein

Beispieltext:

Sie haben versucht, einen Urlaubsantrag in der Urlaubsgenehmigung zu erstellen.

Derzeit sind für Sie keine Informationen in der Liste ‘Urlaubstage’ vorhanden. Es wurde kein Urlaubsantrag erstellt.

Bitte wenden Sie sich an Ihre/n Vorgesetzte/n oder Ihre/n Administrator/in. Sobald ein Eintrag für Sie angelegt wurde, können Sie Urlaubsanträge stellen.

Damit ist dieser Pfad beendet.

Pfad Person vorhanden: Wenn ja

Der „Ja“-Zweig dieses Pfades beginnt mit einer weiteren Prüfung, in der ermittelt wird, ob das angegebene Enddatum vor dem Startdatum liegt. Dafür werden jeweils zwei Prüfungszeilen zu einer UND-Gruppe zusammengefasst, sodass diese nur gelten, wenn beide Prüfungszeilen wahr sind. Beide Gruppen wiederum werden über ein ODER miteinander verbunden. Dadurch gilt das Ergebnis der Gesamtprüfung genau dann als wahr, wenn mindestens eines der Ergebnisse beider Gruppen wahr ist.

Und-Gruppe 1: Startdatum bis Enddatum ergibt einen oder mehr Tage und Halber Tag wurde nicht im Formular angekreuzt

Wert 1 Prüfung Wert 2 Verbindung
Variable ‘Enddatum’ ist gleich oder größer Variable ‘Startdatum’ Und
Variable ‘HalberTag’ ist gleich false

Und-Gruppe 2: Startdatum bis Enddatum ergibt genau einen Tag und Halber Tag wurde im Formular angekreuzt

Wert 1 Prüfung Wert 2 Verbindung
Variable ‘Enddatum’ ist gleich Variable ‘Startdatum’ Und
Variable ‘HalberTag’ ist gleich true

Um dieses Bedingungskonstrukt in einem Flow umzusetzen, fügen Sie die zweite Prüfung über ‘➕ Hinzufügen’ als Zeile hinzu.

Bedingung Enddatum groesser Startdatum

Verbinden Sie die beiden Prüfungen zu einer Gruppe, indem Sie diese markieren und über ‘Gruppe erstellen’ zusammenfügen.

Bedingung erste UND-Gruppe erstellen

Fügen Sie nun die zweite Gruppe über das mit dem äußeren UND verbundene ‘➕ Hinzufügen’ ein.

Bedingung zweite UND-Gruppe anlegen

Setzen Sie hier die beiden Prüfungen Variable ‘Enddatum’ ist gleich Variable ‘Startdatum’ UND Variable ‘HalberTag’ ist gleich true. Die äußere Verbindung wird über ein ODER definiert.

Bedingung beide Gruppen ueber ODER verbinden

Pfad Enddatum größer Startdatum: Wenn nein

Ist durch die Prüfung ermittelt worden, dass das im Formular angegebene Datum nicht den geforderten Kriterien entspricht, sollte wieder eine Benachrichtigung an die antragstellende Person erzeugt werden. Somit wird diese informiert, dass das angegebene Datum nicht passt und ein neuer Antrag gestellt werden muss.

E-Mail wenn Enddatum vor Startdatum

Beispieltext:

Bei der Eingabe Ihres Urlaubsantrags ist ein Fehler aufgetreten.
Die Ursachen hierfür könnten folgende sein:

1. Um einen Urlaubsantrag anlegen zu können, muss das Enddatum entweder mit dem Startdatum identisch sein oder zeitlich dahinter liegen.

2. Es wurde ‘Halber Tag’ für mehr als ein Datum ausgewählt. Halbe Tage sind immer einzeln zu beantragen, wobei das Startdatum und das Enddatum jeweils identisch sein müssen.

Es konnte kein neuer Urlaubsantrag angelegt werden. Bitte füllen Sie das Formular erneut aus.

Damit ist dieser Pfad beendet.

Pfad Enddatum größer Startdatum: Wenn ja

Wurde das Datum als valide verifiziert, kann jetzt im „Ja“-Zweig ein neuer Eintrag in die SharePoint-Liste ‘Urlaubsanträge’ eingefügt werden.

Um eine neue Antragsnummer vergeben zu können, muss die höchste vorhandene ID in der Liste ‘Urlaubsanträge’ ermittelt werden.

Legen Sie die SharePoint-Aktion ‘Elemente abrufen’ an und geben Sie die Umgebungsvariablen ‘EV Site Urlaubsgenehmigung’ (Websiteadresse) und ‘EV Liste Urlaubsanträge’ (Listenname) an. Sortieren Sie nach ID desc – um das Feld ‘ID’ in absteigender Reihenfolge abzurufen – und begrenzen Sie ‘Top-Anzahl’ auf 1.

ID aus SharePoint abrufen

Die Spalte ‘Antragsnr.’ der Liste ‘Urlaubsanträge’ basiert auf der – durch SharePoint automatisch angelegten – Spalte ‘Title’ und ist ein Textfeld. Um nun den Wert darin um 1 zu erhöhen, ist es notwendig, den ermittelten Feldwert in eine Zahl umzuwandeln. Diese wird um 1 erhöht, wieder in Text umgewandelt und mit in den neuen Antrag übernommen.

Erstellen Sie die Datenvorgang-Aktion ‘Verfassen’ und wählen Sie zunächst den Rückgabewert ‘Antrangsnr.’ aus ‘Urlaubsanträge: Eintrag höchste ID abrufen’ aus. Dadurch entsteht erneut eine ‘Auf alle anwenden’-Schleife. Umschließen Sie danach diesen Wert unter ‘Ausdruck’ mit der Funktion int(). Legen Sie die ‘Ausgaben’ dieser Aktion als ‘Wert’ für die Variable ‘Zahl’ fest.

Hinweis: Wenn Sie in einer SharePoint-Liste eine vorhandene Spalte umbenennen, behält diese ihre ursprüngliche Bezeichnung. Sie können die originäre Spaltenbezeichnung prüfen, indem Sie in den Listeneinstellungen eine umbenannte Spalte öffnen und den Namen mit der Adressleiste in Ihrem Browser vergleichen. Die Spalte ‘Antragsnr.’ der Liste ‘Urlaubsanträge’ hieß vorher ‘Title’, was sich auch im Ausdruck zeigt: int(items('Antragsnr._um_1_erhöhen')?['Title']).

Variable ‘Zahl’ festlegen

Verlassen Sie die ‘Antragsnr. um 1 erhöhen’-Schleife und fügen Sie eine weitere Bedingung hinzu. Prüfen Sie, ob die Variable ‘Zahl’ größer oder gleich 1 ist. Ist dies nicht der Fall, so legen Sie die Variable ‘AntragsNr’ auf string(1) fest.

Variable ‘Zahl’ gegen 1 prüfen

Innerhalb des „Ja“-Zweigs legen Sie die Variable ‘AntragsNr’ neu fest, indem Sie dazu den Fx-Ausdruck string(add(variables('Zahl'),1))’ angeben. Auf diese Weise führen Sie die Addition und die Umwandlung in eine Zeichenfolge in einem Schritt aus.

Umwandlung der Antragsnummer in Zeichenfolge

Verlassen Sie die ‘Bedingung: Zahl ist größergleich 1’ und legen Sie die Variable ‘LookupID’ mit dem Wert ‘ID’ an sowie die Variable ‘Wochenende’ mit dem Wert ‘Wochenende – freie Tage’ – beides sind Rückgabewerte aus der SharePoint-Aktion ‘Urlaubstage: Mitarbeitende*n abrufen’.

Variablen ‘LookupID’ und ‘Wochenende’ festlegen

Nun verlassen Sie die ‘Auf alle anwenden’-Schleife, die durch den Abruf der Rückgabewerte entstanden ist. Nutzen Sie die SharePoint-Aktion ‘Element erstellen’, um einen neuen Eintrag in der Liste ‘Urlaubsanträge’ zu erzeugen. Geben Sie die Umgebungsvariablen ‘EV Site Urlaubsgenehmigung’ (Websiteadresse) und ‘EV Liste Urlaubsanträge’ (Listenname) an und weisen Sie den Parametern die passenden Variablen zu.

Neuen Eintrag in SharePoint anlegen

Hier finden Sie eine Übersicht der Parameter-Variablen-Paare:

Parameter Variable
Antragsnr. AntragsNr
Startdatum Startdatum
Enddatum Enddatum
Name Antragsteller Claims Anzeigename
Halber Tag HalberTag
Sonderurlaub Sonderurlaub
Grund f. Sonderurlaub Value ArtSonderurlaub
Wochenende – freie Tage Wochenende
Urlaubstage ID LookupID

Abschließend fügen Sie noch die Steuerung-Aktion ‘Beenden’ mit dem Status ‘Erfolgreich’ ein.

Damit ist dieser Pfad beendet und Sie haben den zweiten Flow Ihrer Urlaubsgenehmigung erfolgreich fertiggestellt. 💪

Tipp: Stellen Sie sicher, dass alle Aktionen, die Referenzen wie Outlook und SharePoint verwenden, auf jene Verbindungsreferenzen eingestellt sind, die Sie bei der Erstellung der Projektmappe im vorherigen Schritt angelegt haben. Speichern 💾 Sie außerdem den jetzigen Stand Ihrer Lösung ab, indem Sie diese exportieren und zur langfristigen Sicherung z. B. auf GitHub oder in Azure ablegen.

Weiter geht’s mit dem Tutorial zur Urlaubsgenehmigung in ➡️ Teil 6/9: Die Einrichtung in Power Automate – Flow 3 ‘Urlaubsantrag genehmigen’.