Condividi tramite


Auslösen eines SharePoint 2010-Workflows von einem SharePoint 2013-Workflow

Veröffentlichung des Originalartikels: 18.08.2012

 

Hallo allerseits,

Ich bin Chong Youn (John) Choe, ein PM im SharePoint Designer-Team. SharePoint und SharePoint Designer 2013 Beta 2 sind nun öffentlich verfügbar und die Product Group-Mitglieder würden gerne zusätzliche Blogbeiträge mit Ihnen teilen.

In diesem Blogbeitrag wird beschrieben, weshalb es möglich ist, einen Vorgängerworkflow aufzurufen und wie dieser verwendet wird.

Hintergrund

Mit diesem Feature soll zunächst die Wiederverwendbarkeit von SPD-Workflows wesentlich verbessert werden. Die Benutzer können problemlos wieder verwendbare Workflows auf SharePoint-Websites einrichten und die Workflows so wie Skripts oder Funktionen nutzen.

Die Funktionen der SharePoint 2013-Workflows konnten nicht in allen Fällen durch Funktionalität von SharePoint 2010-Aktionen ersetzt werden, da SharePoint 2013 auf einer anderen Plattform basiert und für diese neu entwickelt wurde. Die Workflowproduktteams investierten in die Entwicklung neuer Features, um umfangreichere neue Endbenutzerszenarien zu ermöglichen, und gaben seltener verwendete Features basierend auf Feedback von Benutzern auf.

Dennoch wollten die Workflowproduktteams unbedingt alle vorhandenen Szenarien abdecken. Deshalb sollten die Endbenutzer mit den Aktionen Workflow beginnen (Start a Workflow) SharePoint 2013 und SharePoint 2010 kombinieren können, indem in SharePoint 2013 Workflow aus SharePoint 2010 aufgerufen werden kann. Dies war die einzige ökonomische Lösung, um aktuellen SPD-Benutzern einen Migrationspfad zu bieten.

Bei Workflows lassen sich drei Typen kategorisieren; Listenworkflow, wieder verwendbarer Workflow und Websiteworkflow. Weitere Informationen finden Sie in diesem Blogbeitrag. Wieder verwendbarer Workflow akzeptiert zum Zuordnungszeitpunkt Eingabeparameter und kann für eine Liste und ein Listenelement ausgelöst werden, als ob es sich anschließend um einen Listenworkflow handeln würde. Um einen Workflow zu starten, sollte SharePoint 2010-Workflow in dem Moment, in dem er aufgerufen wird, zur Ausführung bereit sein. Das heißt, der Workflow muss bereits zugeordnet sein, falls es sich um einen wieder verwendbaren Workflow handelt. Diese werden nur von der Aktion Listenworkflow beginnen (Start a List Workflow) unterstützt, die drei Parameter akzeptiert, nämlich den zugeordneten SharePoint 2010-Workflow, der ausgelöst werden soll, Initiierungsformularparameter sowie das Zielelement, in dem der zugeordnete Workflow ausgeführt wird. Websiteworkflow benötigt dagegen kein Element zum Ausführen, weshalb Sie die Aktion Websiteworkflow beginnen (Start a Site Workflow) verwenden, für die zwei Parameter akzeptiert werden, nämlich der auszulösende SharePoint 2010-Websiteworkflow und Initiierungsformularparameter.

Für den Fall, das Sie wissen möchten, wie es unter der Oberfläche aussieht, finden Sie unter https://msdn.microsoft.com/en-us/library/sharepoint/jj163181(office.15) Informationen zur Workflow-Interop-Brücke (Workflow Interop Bridge).

 

Beispielszenario

Da Sie nun mit dem Konzept vertraut sind, werden wir uns anhand eines Beispielszenarios und einer schrittweisen Beschreibung damit befassen, wie und wann diese Aktionen verwendet werden.

Angenommen, auf der SharePoint 2010-Website wurde der Workflow Budgetgenehmigung (Budget Approval) verwendet. Ein IT-Administrator beschloss, ein Upgrade von SharePoint 2010 auf SharePoint 2013 vorzunehmen. Die vorhandenen SharePoint 2010-Workflows wurden anschließend zur neuen Website migriert (Hinweis: Dies bedeutet nicht, dass die Workflows auf SharePoint 2013-Workflows aktualisiert wurden; es handelt sich weiterhin um SharePoint 2010-Workflows). Mit dem Workflow Budgetgenehmigung (Budget Approval) wird das Budget von der Finanz- oder Personalabteilung angefordert. Für diesen Workflow sind vier Parameter als Eingabe zulässig: Angefordertes Budget (Budget requested) für den angeforderten Geldbetrag, Erläuterung (Explanation) zur Beschreibung, warum der Betrag erforderlich ist, Angefordertes Fälligkeitsdatum für Genehmigung (Requested approval due date) für das Fälligkeitsdatum der Antwort sowie Referenz (Reference) zum Verweis auf zugehörige Informationen.

Angenommen, Sie möchten den Workflow Budgetgenehmigung (Budget Approval) im Rahmen eines neuen Workflowprozesses verwenden. Früher hätten Sie einen neuen Workflow erstellen und im neuen Framework umschreiben müssen. Und wenn Sie die neu eingeführten Features des Workflows aus Version 2013 mit dem Workflow Budgetgenehmigung (Budget Approval) kombinieren wollten, war es eventuell nicht möglich, all dies in einem einzigen Workflow unterzubringen.

Die Aktionen Workflow beginnen (Start a Workflow) sind in diesem Fall eine perfekte Lösung. Gehen wir einmal davon aus, dass der Workflow Budgetgenehmigung (Budget Approval) ein Listenworkflow in der Liste Contoso-Finanzen (Contoso Finance) ist, in der die Finanzverfahren von Contoso durch Workflows automatisiert werden.

 

Designschritte

 

1. Fügen Sie eine Aktion Listenworkflow beginnen (Start a List Workflow) ein, wenn der auszulösende Zielworkflow ein Listenworkflow oder ein wieder verwendbarer Workflow ist, der einer Liste zugeordnet ist.

clip_image001

 

2. Nach dem Einfügen der Aktion muss der Workflow oder die Zuordnung zuerst ausgewählt werden. Klicken Sie dazu auf den Link SharePoint 2010-Listenworkflow (SharePoint 2010 list workflow).

clip_image002

 

3. Suchen Sie nach der Liste, in der sich der Zielworkflow befindet, und wählen Sie den Workflow aus.

image

 

4. Klicken Sie auf OK, um das obige Dialogfeld zu schließen. Klicken Sie im Aktionssatz Listenworkflow beginnen (Start a List Workflow) anschließend auf den Link Parameter (Parameters). SharePoint Designer 2013 analysiert dann den Workflow und zeigt Initiierungsparameter und deren vordefinierte Werte an.

image

In dem Dialogfeld werden für die verschiedenen Parameter zusätzliche Informationen zum Typ angezeigt. Dies liegt daran, dass der Autor des SharePoint 2013-Workflows möglicherweise nicht mit dem Autor des SharePoint 2010-Workflows identisch ist. Wir wollten aber dem Autor des SharePoint 2013-Workflows ausreichend Informationen liefern, um die Werte für die Initiierungsformularparameter festzulegen, ohne den aufgerufenen Workflow nachzuschauen.

 

5. Sie können den Wert jedes Parameters während der Entwurfszeit festlegen. Nachschlagewerte können hier ausgewählt werden, und der Wert wird zur Laufzeit festgelegt. Dies ist flexibel genug, um einen integrierten Prozess mithilfe eines SharePoint 2013-Workflowaufrufs und eines aufgerufenen SharePoint 2010-Workflows zu entwerfen.
Einschränkungen gelten auch für das Dialogfeld, weshalb Sie die Informationen des Parameters vorab kennen müssen.

image

 

6. Natürlich können Sie den Wert auch festlegen, indem Sie ihn direkt im Text-Editor eingeben. Beachten Sie, dass das Dialogfeld und dessen Funktionalität von den Parametertypen abhängen.

image

image

 

7. Wenn Sie auf die Schaltfläche mit den drei Punkten (…) klicken, wird ein entsprechender Designertyp für den Parametertyp, der aufgefüllt wird, angezeigt, und Sie werden bei der Eingabe begleitet. Durch Klicken auf die Schaltfläche Fx wird dagegen das standardmäßige Nachschlagedialogfeld angezeigt.

image

image

 

8. Schließen Sie das Dialogfeld Werte für Initiierungsparameter festlegen (Set Values for Initiation Parameters, wenn alle Parameter festgelegt sind. Die Anzahl der festgelegten Parameter wird direkt im Aktionssatz angezeigt.

image

image

 

9. Wählen Sie anschließend das Element aus, in dem der Zielworkflow ausgeführt wird. Gewöhnlich führen Sie den Prozess im aktuellen Element aus. Das heißt, der aufrufende Workflow und der auszuführende Workflow werden im selben Element ausgeführt, und Protokolle und Ergebnisse werden im selben Element gespeichert. Zur Unterstützung des allgemeinen Szenarios sollten Sie Aktuelles Element (Current Item) für den Parameter dieses Element (this item) auswählen.

image

 

Damit sind Sie fertig! Für das Aufrufen eines SharePoint 2010-Workflows müssen Sie lediglich einen Aktionssatz hinzufügen und entsprechende Werte festlegen. Dieser Vorgang ist mit dem Verhalten von Endbenutzern vergleichbar, die den SharePoint 2010-Workflow auf dem SharePoint-Server auslösen. Sie wählen eine Liste, ein Element und einen zugeordneten Workflow aus und füllen das Initiierungsformular aus. Die Schritte für den Endbenutzer auf dem SharePoint-Server sind im Folgenden beschrieben.

clip_image021

image

image

 

Ein weiteres großartiges Feature ist die Möglichkeit der Verwendung des Werts von Variablen eines aufgerufenen Workflows im SharePoint 2013-Workflowaufruf. Diese Variablen werden im SharePoint 2013-Workflow mithilfe des Nachschlagedialogfelds verfügbar gemacht.

Dies werde ich später anhand eines Beispielszenarios näher erläutern.

Eine neue Unternehmensrichtlinie wird festgelegt. Der Workflowdesigner muss eine Benachrichtigungs-E-Mail an die Teilnehmer des Budgetgenehmigungsprozesses senden, damit sie die neue Richtlinie prüfen.

 

10. Fügen Sie die Aktion E-Mail senden (Send an email) hinzu, um E-Mails an die Teilnehmer der Budgetgenehmigung zu senden.

image

 

11. Wählen Sie zum Nachschlagen der Variablen des SharePoint 2010-Workflows für An (To) die Option Workflow-Nachschlagevorgang für einen Benutzer (Workflow Lookup for a User) aus.

image

 

12. Eine neue Datenquelle wird automatisch erstellt, nachdem die Aktion Listenworkflow/Websiteworkflow beginnen (Start a List/Site Workflow) eingefügt wurde und der SharePoint 2010-Workflow ausgewählt wurde. Der Name der Datenquelle besteht aus dem statischen Text SharePoint 2010-Ausgabe (SharePoint 2010 Output) und dem Namen des Workflows.

image

 

13. Jede Variable der Budgetgenehmigung wird in der zweiten Dropdownliste, Quellenfeld (Field from source), angezeigt. Wählen Sie die erforderliche Variable aus, und klicken Sie dann auf OK, um den Wert für To (An) im E-Mail-Dialogfeld festzulegen.

image

 

14. Füllen Sie entsprechend den Abschnitt CC aus. Beachten Sie, dass die Variablen manuell von der Person erstellt werden, die den SharePoint 2010-Workflow erstellt hat. Geben Sie in den restlichen Feldern die gewünschten Werte ein.

image

image

 

Ich hoffe, dass Sie nun verstehen, wie Sie auch die Rückgabewerte von SharePoint 2010 verwenden.

Im vorherigen Beispiel wurde gezeigt, wie Sie mithilfe der Aktionen Workflow beginnen (Start a Workflow) einen Vorgängerworkflow aufrufen können. Dieses Konzept kann noch erweitert werden, indem Sie mithilfe derselben Aktion zusätzliche Funktionalität in den SharePoint 2013-Workflows hinzufügen. Beispielsweise gibt es Aktionen, die nur in den SharePoint 2010-Workflows verfügbar sind (z. B. die Aktion zum Nachschlagen eines Vorgesetzten). Sie könnten mithilfe der Aktionen Workflow beginnen (Start a Workflow) einen anderen Workflow auslösen, der diese Vorgängeraktionen verwendet und die Funktionalität erweitert.

Wenn Sie die Aktionen Workflow beginnen (Start a Workflow) und deren Verwendung gemeistert haben, werden Ihnen SharePoint 2013-Workflows und SharePoint 2010-Workflows nicht mehr wie separate Workflowformulare vorkommen.

Einschränkungen

Bei der Kombination der Vorteile von SharePoint 2013- und SharePoint 2010-Workflows gibt es Einschränkungen.

Einige Einschränkungen sind auf Designänderungen bei der neuen Plattform zurückzuführen. Beispielsweise werden Parameter vom Typ Zuweisungsphasen nicht in Workflow beginnen (Start a Workflow) unterstützt, da dieser Parametertyp in SharePoint 2013-Workflows nicht mehr unterstützt wird. Das heißt, Sie müssen SharePoint 2010-Workflow eigenständig verwenden, falls Sie Genehmigungsprozess starten verwenden müssen.

Darüber hinaus sollte jeder Workflow, den Sie mithilfe der Aktion Workflow beginnen (Start a Workflow) verknüpfen möchten, auf einer einzigen Website vorhanden sein. Für alle anderen Workflows werden jedoch die Workflowstatusseiten auf separaten Seiten angezeigt.

Schließlich können aufrufende Workflows, die einer anderen Liste zugeordnet sind, nicht für das aktuelle Element des SharePoint 2013-Workflows ausgeführt werden. Dies entspricht dem erwarteten Verhalten, da die beiden Workflows für unterschiedliche Listen ausgeführt würden. Wenn deshalb ein Workflow für eine andere Liste ausgeführt wird, müssen Sie ein bestimmtes Element in der Liste des Zielworkflows auswählen, für das der Workflow ausgeführt werden soll.

Zusammenfassung

Eine Aktion Workflow beginnen (Start a Workflow) löst zur Laufzeit einen SharePoint 2010-Workflow mitten in der Ausführung eines SharePoint 2013-Workflows aus. Zwei Arten von Aktionen hängen vom Typ des aufgerufenen Workflows ab, nämlich Listenworkflow beginnen (Start a List Workflow) und Websiteworkflow beginnen (Start a Site Workflow).

Wählen Sie den Zielworkflow aus, und legen Sie für die Initiierungsparameter des Workflows feste Werte oder dynamische Werte fest. Wählen Sie außerdem die Liste aus, zu der der Workflow gehört, sowie das Element, in dem der Workflow für Listenworkflow beginnen (Start a List Workflow) ausgeführt wird.

Sie können diese Aktion überall in einem SharePoint 2013-Workflow verwenden, und selbst das Aufrufen mehrerer SharePoint 2010-Workflows ist zulässig. Vorhandene SharePoint 2010-Workflows können wiederverwendet werden, ohne dass die darin enthaltenen Aktionen umgeschrieben werden müssen. Dies ist eine sehr effiziente und komfortable Methode, um SharePoint 2013- und SharePoint 2010-Workflows zu kombinieren.

Darüber hinaus werden die Rückgabewerte der aufgerufenen SharePoint 2010-Workflows für die Logik des aufrufenden SharePoint 2013-Workflows über das Nachschlagedialogfeld zur Verfügung gestellt. Die Rückgabewerte enthalten alle lokalen Variablen sowie ein paar weitere Bedingungsvariablen für jeden aufgerufenen SharePoint 2010-Workflow im selben SharePoint 2013-Workflow.

Ich hoffe Sie wissen die Vorteile zu nutzen!

Chong Youn (John) Choe

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter How to trigger a SharePoint 2010 workflow from a SharePoint 2013 workflow