Kategorien

Alle Workflows stoppen oder starten im SharePoint

Kennen Sie das Problem? Sie ändern etwas an einem Workflow und wollen alle bestehenden Workflows stoppen und mit dem neuen Workflow nochmal starten? SharePoint bietet leider auch in der Version 2013 keine Möglichkeit für alle Listenelemente einen Workflow zu starten oder zu stoppen. Hier die Lösung für dieses häufig gesuchte Problem!

Jeder der viel mit SharePoint Workflows arbeitet, weiß, dass Diese auch mal angepasst oder verändert werden. Ärgerlich, wenn der alte Workflow für knapp 200 Listenelemente weiterläuft. Jeden Workflow einzeln stoppen und neustarten, wäre ein riesen Aufwand. Wir haben ein kleine Lösung geschaffen, welche ohne großen Aufwand zum Erfolg führt.
Auch für Wartungsworkflows ist hier ein Anwendungsfall.

(Download am Ende des Artikels).

Die Lösung enthält auf dem JSOM (JavaScript Object Model) basierenden Code, welcher es ermöglicht ohne Deployment und ohne „Sonderrechte“ diesen Schritt durchzuführen. Jediglich SharePoint-Designer Rechte für die Installation und natürlich die Rechte zum Starten und Stoppen von Workflows werden benötigt.

Die Installation

1. Laden Sie das Zip am Ende des Artikels runter und entpacken Sie Dieses.

2. Erstellen Sie einen Ordner unter Alle Dateien im SharePoint Designer.
Ordner anlegen3. Kopieren Sie die entpackten Dateien aus dem Zip in diesen neuangelegten Ordner. In diesem Fall heißt er Gate4WorkflowRebooter.

Dateien hinzugefügt

Die Installation ist damit abgeschlossen.

Benutzung

Rufen Sie mit Hilfe der Site-Url und dem Ordnernamen die Rebooting.aspx in dem Ordner auf. Beispiel: http://d4js/demosub/Gate4WorkflowRebooter/Rebooting.aspx (http://sharepoint-url.local/subsite/Ordnernamen/Rebooting.aspx).

Die ASPX-Seite erscheint und liest alle Listen der Seite zur Auswahl aus. Wählen Sie die Liste aus in der die Workflowaktionen durchgeführt werden sollen und drücken Sie auf den Button Laden.

1_Aufruf

Als Nächstes wählen Sie den Workflow aus, den Sie für alle Listenelemente starten oder stoppen wollen. Drücken Sie den Button für das Starten oder das Stoppen, damit das Script für die gewünschte Liste, für alle Listenelemente den ausgewählten Workflow stoppt oder startet.

Nach dem der Button Starten oder Stoppen gedrückt wurde läuft das Script los und verarbeitet alle Listenelemente in kleinen Arbeitspaketen, damit auch bei großen Listen eine Durchführung erfolgreich ist.

4_RunAnmerkung

Da man per JSOM nur Workflows der SharePoint 2013 Workflow Engine starten/beenden kann unterstützt diese Lösung nur Workflows, welche auf der SharePoint 2013 Workflow Engine laufen. Falls ein Workflow auf der SharePoint 2010 Workflow Engine läuft, dann wird er von der Web Lösung nicht gefunden.
Existiert keine SharePoint 2013 Workflow Engine kommt es beim Laden der Workflows für eine Liste zu einem Fehler:

wf_reboot_no_2013_error

Dies ist logischerweise auf einem SharePoint 2010 Server der Fall. Ein SharePoint 2013 Foundation Server verfügt allerdings auch nur über eine SharePoint 2010 Workflow Engine.
Für diesen Fall haben wir ein PowerShell Skript geschrieben. Es kann hier heruntergeladen werden.

Das Skript muss anschließend auf den SharePoint Server kopiert werden. Als Parameter erwartet das Skript “-Url “. Hier muss die Url der SharePoint Seite angegeben werden in der sich die Liste befindet für die ein Workflow gestartet oder beendet werden soll. Als Optionaler Parameter kann “-StopWf” übergeben werden. Wird für den StopWf Parameter $true übergeben wird ein Workflow für alle Items einer Liste abgebrochen anstatt gestartet zu werden.

Ein solcher Aufruf kann z.B. wie folgt aussehen:

PS C:> cd C:PSScripts
PS C:PSScripts> .SP-WorkflowReboot.ps1 -Url http://sp-foundation -StopWf $true

Nach dem Aufruf leitet das Skript durch alles weitere.

Fazit

Dieses ist eine sehr einfache und stressfreie Lösung, welche einen hohen Mehrwert im Alltag bringt. Starten und Stoppen Sie Workflows für alle Listenelemente ohne umständliche PowerShell-Scripts.

✔ Office365 fähig

Hier die Lösung runterladen:
Download SharePoint Workflow Rebooter (für SharePoint Server 2013 außer Foundation)
Download SharePoint Workflow Rebooter (PowerShell, für SharePoint Server 2010 und SharePoint 2013 Foundation)

 

Quelle: https://gate4.com/blog/loesung-alle-workflows-stoppen-oder-starten-im-sharepoint/