SharePoint – Workflow für alle Einträge einer Liste mit der PowerShell starten

SharePoint Workflows sind ja grundlegend eine tolle Sache. Was sie wirklich schlecht können sind mit Zeiten und bestimmten Auslösern zu agieren. Einzig die Möglichkeit „Bis Datum anhalten“ oder „Für Dauer anhalten“ stehen zur Verfügung. Ändert man eine Listeneintrag in einer SharePoint Bibliothek an welchem bereits ein im Status „angehalten“ läuft so werden diese Änderungen nicht im verarbeitet. Nur ein Beenden und neu starten des Workflows hilft wobei mir hier kein Automatismus bekannt ist.

Die Lösung von Microsoft ist ein sekundärer Workflow mit Hilfe einer zweiten Bibliothek (Link MS: Erstellen eines Sekundären Workflows). Diese Schachtelung macht selbst einfach einfach Workflows aber eher Komplex. Dank des Tipps eines Kollegen ich würde mich doch mit der gut auskennen war das der richtige Lösungsansatz.

Dabei setze ich den Workflow nicht mehr in einen Wartezustand sondern starte den Workflow mit Hilfe der Windows Aufgabenplanung zu bestimmten Zeiten. In meinem Beispiel wird der Workflow für jeder Listeneintrag gestartet. Eine Abfrage nach Feldern und Bedingungen ist aber auch möglich.

Das entsprechende PowerShell Skript noch als geplante Aufgabe einbinden und einen Trigger definieren und los gehts.

Hinweis: Beachtet bitte das der User welcher in der Aufgabenplanung den Task startet auch Rechte auf die Liste haben muss. Weiterhin wird bei vielen Listenelementen durch das starten vieler Workflows zur gleichen Zeit temporär eine hohe Last auf dem Server erzeugt.

Noch ein kleines Schlusswort:

Ich sehe mich selber eher als Berater und Administrator. Wenn es um den SharePoint Server geht dann kenne ich mich mit den Rollen und dem Sizing der Farm gut aus. Auch die Inbetriebnahme, erstellen von Bibliotheken, Apps und Workflows gehören noch zu meinen Aufgaben. Was ich aber nicht bin: Programmierer. Leider kommt man beim SharePoint schnell an genau diesen Punkt. Dabei ist mein Anliegen SharePoint Installationen so weit wie möglich zu standardisieren und so wenig wie möglich mit weiteren Lösungen oder Programmierungen anzupassen. Diese erleichtert spätere Probleme bei Migrationsszenarien und damit auch Zeit und Kosten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.