23. Juni 2014 · von Joerg Sager

Lösung: 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)



Diesen Blogeintrag bewerten:


Haben Sie Fragen zu diesem Artikel oder brauchen Sie Unterstützung?

Nehmen Sie mit uns Kontakt auf!

Wir unterstützen Sie gerne bei Ihren SharePoint-Vorhaben!


2 Kommentare zu “Lösung: Alle Workflows stoppen oder starten im SharePoint”

Hallo,

das oben beschriebene Tool macht genau das, was wir brauchen.
Leider läuft es nicht bei uns.
Beim Laden einer Liste erhalten wir immer folgenden Fehler:

Aus einem Nullobjekt kann keine Methode aufgerufen oder eine Eigenschaft abgerufen werden. Das vom folgenden Aufrufstack zurückgegebene Objekt ist Null. „GetWorkflowSubscriptionService new Microsoft.SharePoint.WorkflowServices.WorkflowServicesManager() “

Haben Sie Erfahrung mit dieser Fehlermeldung und können uns ggf. weiterhelfen?

Besten Dank & Grüße,
Ron

Hallo Ron,

dieser Fehler tritt auf wenn die SharePoint 2013 Workflow Engine nicht existiert. Dies ist logischerweise der Fall wenn es sich um einen SharePoint Server 2010 handelt. Aber auch in einem SharePoint 2013 Foundation Server steht nur die SharePoint 2010 Workflow Engine zur Verfügung.

Für diesen Fallen haben wir PowerShell Skript geschrieben, da sich Workflows der SharePoint 2010 Engine nicht ohne weiteres per JavaScript Client Object Model starten oder beenden lassen. Dieses Skript kannst du hier herunterladen.

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.

Nach dem Aufruf leitet das Skript durch alles weitere.

Ich hoffe das Skript hilft dir.

Viele Grüße
Steffen

Schreibe einen Kommentar

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

Kontakt
Lassen Sie sich von uns beraten
Wir freuen uns über Ihr Interesse an unseren Leistungen. Hinterlassen Sie
uns Ihren Namen, Ihre Telefonnummer und E-Mail Adresse – wir melden
uns schnellstmöglich bei Ihnen.
Kontakt aufnehmen