Ausführung eines Workflows über mehrere Elemente

Möchte man in einem SharePoint Projekt mit Bordmitteln einen Workflow über mehrere Elemente starten, steht man vor einer Herausforderung. Beispielsweise wird dies benötigt, um für eine Warenkorb-Funktionalität mehrere Elemente einer Artikel-Liste in eine andere Liste zu kopieren und um gegebenenfalls weitere Aktionen zu starten. Wünschenswert wäre daher eine Element-Mehrfachauswahl und ein Button um einen Workflow über die markierten Elemente zu starten.

Umsetzbar ist dies ab SharePoint 2010 mit Hilfe des SharePoint Designers und einigen Zeilen JavaScript. Wir erstellen mit dem Designer eine neue List Custom Action im Menüband auf dessen Klick über JavaScript der Nintex Workflow Webservice mit Übergabe der ausgewählten Elemente ausgeführt wird. Gestartet wird der empfangene Website-Workflow 'MultipleReceiver.nwf'. Innerhalb des Workflows sind die Werte mit Semikolon getrennt und über die Variable 'StringItems' abrufbar. Nach Trennung über einen regulären Ausdruck kann über die Elemente in einer Schleife iteriert werden.

Unterstützung erhalten wir von der freien JavaScript-Bibliothek jQuery. (https://jquery.com)

Vorgehen

1. Öffnen der Ziel-Website im SharePoint Designer

2. Erstellen eines Verzeichnisses für die JavaScript Dateien(hier: /Style Library/js)

01_SPDesigner_JS.png 

 

3. Anpassen der 'multipleChoice1.0.js' (Stelle XXX) an die nutzende Website:

   
   var webMethod = '/XXX/_vti_bin/nintexworkflow/workflow.asmx'

4. Upload der angehangenen Dateien jQuery und multipleChoice.

02_SPDesigner_JS.png 

 

5. Erstellung einer neuen Ansicht in der Liste mit der geplanten Mehrfachauswahl.

6. Ändern der Ansicht via SharePoint Designer im „Advanced Modus“ und Einbindung des JavaScript-Codes mittels Hinzufügen des Bereiches.

03_SPDesigner_JS.png 

 

7. In der Liste muss mit dem SharePoint Designer eine neue Custom Action mit folgendem Link angelegt werden:

 
   javascript:CustomActions.NintexSiteWorkflow.Command('MultipleReceiver');

04_SPDesigner_JS.png 

 

8. Als Buttons werden 2 Icons in entsprechender Größe benötigt. Hierfür eignet sich die Fat Cow Iconsammlung gut. (http://www.fatcow.com/free-icons - Nutzungsbedingungen beachten)

05_SPDesigner_JS.png 

 

9. Nach dem Speichern erhalten wir einen neuen Button in unserem Listen Menüband. Das JavaScript verhindert, dass der Button auch ohne vorherige Auswahl eines Elementes gestartet werden kann. Erst bei einem oder mehreren ausgewählten Elementen ist der Button aktiv. (farbig angezeigt)

06_SPDesigner_JS.png 

 

10. Erstellen des empfangenen Website-Workflow. (Import der Datei 'MultipleReceiver.nwf')

Fertig! Nach Auswahl einiger Elemente und Drücken des Buttons werden nun die markierten IDs an den Workflow gesendet. Dieser enthält zur Laufzeit eine Variablen-Collection mit den markierten IDs.

 

Mögliche Erweiterungen

  • Der Aufruf der Custom Action (Schritt 6) kann mit einem confirm('Sind Sie sicher?'); einen zusätzlichen Bestätigungsdialog erhalten.

  • An der folgenden Code-Stelle kann die Nutzbarkeit des Buttons beeinflusst werden. Möglich wäre hier auch eine Validierung, wie "mehr als 5 Elemente" oder "immer nur 2 Elemente". (return SP.ListOperation.Selection.getSelectedItems().length > 0;)

 

Anhang:

MultipleChoice.zip

Comments