Dies wird eine Beitragsserie, in der wir das Zusammenspiel von Listen und SharePoint Workflows 2013 vorstellen – Workflows starten wenn ein Eintrag erstellt oder geändert wird, Workflows regelmäßig ausführen und der Aufruf von einem 2013er Workflow in einem 2013er Workflow via REST API. Diese neue Funktionalität bei den 2013er Workflows von SharePoint bringt viele Möglichkeiten mit sich. Verfügbar ist der Webdienst nur bei den 2013er Workflows, die es nur bei/ab SharePoint 2013 On-Premise oder SharePoint Online gibt.
Anforderung
Wir haben eine Site Collection mit einer Liste. In dieser Liste sollen Einträge erfasst werden. Beim erstellen oder ändern eines Listeintrags soll in einem Historie Feld dokumentiert werden, dass der Eintrag geändert wurde. Zusätzlich soll in der Historie festgehalten werden, wenn das Feld Status sich ändert und dementsprechend auch eine E-Mail versendet werden. Außerdem soll einmal täglich geprüft werden, ob es Einträge in der Liste gibt die schon länger als x Tagen keinen Statuswechsel aufweisen. Wenn dies der Fall ist, soll eine E-Mail an eine bestimmte Person versendet werden.
Die Liste kann unterschiedliche Funktionen haben:
- zeitnahe Aufgaben
- Kundenbeschwerden welche bearbeitet werden müssen
Liste erstellen
Name | Type | Besonderheit | Beschreibung |
---|---|---|---|
Title | Single line of Text | Pflichtfeld | Einfaches Textfeld für den Titel des Elements, ist beim erstellen der Liste vorhanden und kann verwendet werden. |
Description | Multiple lines of Text | Pflichtfeld | Textarea für eine Beschreibung des Eintrags |
Status | Choice | Pflichtfeld | Werte: None, Running, Completed Hier verwenden wir Radio Buttons, setzen den Standard-Wert auf None |
History | Multiple lines of Text | keine | Dieses Feld soll über einen Workflow befüllt werden. Es dient der Dokumentation der Änderungen |
PreviousStatus | Single line of Text | verstecktes Feld | Dieses Feld wird über einen Workflow befüllt mit dem Status bevor der Eintrag geändert wurde. Somit kann man auch erkennen, ob der Eintrag neu ist, denn zu diesem Zeitpunkt ist das Feld leer. |
PreviousStatusTimestamp | Date and Time | verstecktes Feld | Dieses Feld wird auch via Workflow befüllt mit dem Wert des Änderungsdatum von SharePoint. Dies wird für die Überprüfung des Workflows verwendet. Das Änderungsdatum kann für die täglich Überprüfung nicht verwendet werden, da durch Workflow die Status-Änderungen zu den Elementen hinzugefügt werden und dadurch auch das Änderungsdatum aktualisiert wird. |

Listen Workflow mit SharePoint Designer erstellen
1. Workflow erstellen
Es wird ein neuer Listen-Workflow erstellt. Dabei die zuvor erstellte Liste auswählen, damit der Workflow dieser Liste zugeordnet ist.
Es muss ein 2013er Workflow erstellt werden
2. Logging für den Start und Variable History definieren
Zunächst setzen wir den Workflow Status zu “Running”. Damit können wir in der Workflow History sehen, dass der Workflow gestartet ist.
Danach erstellen wir die Action “Set Workflow Variable”, erstellen eine neue Variable StrHistory und weisen dieser Variable den nachfolgenden Wert zu:
changed by [%Current Item:Modified By%] - [%Current Item:Modified%] [%Current Item:Modified%] status to <strong>[%Current Item:Status%]</strong> [%Current Item:History%]<br />
Die Variablen müssen über den “Add or Change Lookup” Button hinzugefügt werden.
Die Variable wird somit am Anfang gesetzt und im späteren Verlauf des Workflows je nach Bedingung überschrieben. Wir schreiben in das History-Feld den aktuellen Änderungsstatus – von wem und wann dieser durchgeführt wurde – und den Status. In letzter Zeile fügen wir das History-Feld ein, dass die schon vorhanden Einträge chronologisch ausgegeben werden.
3. Status überwachen und erkennen
Als nächstes fügen wir einen Step hinzu und benennen diesen zu “Status change detected”. In diesem Step erstellen wir eine If-Abfrage, die den Wert im Feld Status mit dem Wert im Feld PreviousState vergleicht. Es wird überprüft ob diese zwei Werte nicht gleich sind. Nur wenn sich der Status geändert hat und somit diese Bedingung wahr ist, soll der Workflow die nachfolgenden Befehle ausführen. Auf gleicher Ebene wird noch eine Else-Zweig erstellt. Dieser setzt nur das History Feld ohne den Status darin. Damit ist das reine bearbeiten des Elements ohne Statuswechsel dokumentiert.
4. Erstellung eines Listeneintrags
In der nächsten If-Schleife stellen wir mit der Bedingung ob die Variable PreviousStatus leer ist das Erstellen eines Elements fest. Der PreviousStatus ist nicht sichtbar und somit leer beim erstellen des Elements. Wir schreiben einen Eintrag in das Feld History, dass das Element erstellt wurde und verschicken eine E-Mail. Diese Bedingung wird in einem Step zusammengefasst.
5. Änderung eines Listeneintrags
Auf gleicher Ebene erstellen wir einen weiteren Step, der das ändern eines Eintrags bearbeitet. Starten wir mit einer If-Abfrage, ob der PreviousStatus nicht leer ist. Dies sollte immer der Fall sein, außer im Schritt davor. Aber nach dem erstellen des Eintrags ist das Feld gefüllt – dazu später mehr.
Eine weitere If-Abfrage stellt fest, ob der Status Running oder Completed ist. Ist dies der Fall wird eine E-Mail versendet, dass der Status sich geändert hat. Ist dies nicht der Fall wird nur die Variable History gesetzt, da es damit keine Status-Änderung gab sondern ein anderes Feld aktualisiert wurde.
6. Eintrag Updaten
Nach diesen beiden If-Abfragen werden die Variablen PreviousStatus und PreviousStatusTimestamp gesetzt. Der Variablen PreviousStatus wird der Wert der Variable Status zugewiesen, PreviousStatusTimestamp der Modified Wert.
7. Workflow beenden
Zum Schluss aktualisieren wir das Feld History mit dem Wert der Variablen StrHistory, setzen den Workflow-Status auf Completed und beenden den Workflow. Nachfolgend ein Screenshot vom kompletten Workflow.
8. Einstellungen des Workflows
In den Eigenschaften des Workflows müssen die Haken
- Für diesen Workflow zulassen, dass er manuell gestartet wird
- Diesen Workflow automatisch starten, wenn ein neues Element erstellt wird
- Diesen Workflow automatisch jedes Mal starten, wenn ein Element geändert wird
gesetzt sein.
Im nächsten Artikel beschreiben wir, wie wir einen Site Workflow erstellen.
blog
Neues von Impactory
Informieren Sie sich über das Neueste aus unserem Unternehmen und bleiben Sie auf dem neuesten Stand mit allem Wissenswerten über unsere intelligenten Lösungen und Dienstleistungen aus der vielfältigen Microsoft-Office-Welt.
IMPACTORY
Ihr zuverlässiger und performancestarker Partner
Bei uns erhalten Sie ein breites Service- und Beratungsangebot rund um Planung, Einführung und Umsetzung von SharePoint, Microsoft 365 oder Hybrid-Anwendungen. Profitieren Sie dabei von unserer langjährigen Branchenerfahrung