Verwenden von Workflow-Interop für SharePoint

Enthält eine Erörterung der Verwendung von SharePoint-Workflow Interop im Workflow-Designer Visual Studio 2012. Workflow-Interop ermöglicht Ihnen, einen Workflow SharePoint 2010 innerhalb eines Workflows SharePoint von aufgerufen werden soll. Dies ist ein wichtiges Feature, mit dem Sie die vorhandenen Workflowfeatures wiederverwenden und zum Aufrufen von für Workflow-Aktivitäten, die nicht in SharePoint integriert werden.

Hinweis

SharePoint 2010-Workflows wurden am 1. August 2020 für neue Mandanten eingestellt und am 1. November 2020 aus bestehenden Mandanten entfernt. Wenn Sie SharePoint 2010-Workflows verwenden, empfehlen wir die Migration zu Power Automate oder anderen unterstützten Lösungen. Weitere Informationen hierzu finden Sie unter Einstellung von SharePoint 2010-Workflows.

Wichtig

Informationen zur Verwendung der SharePoint-Workflowinteropfunktionalität in SharePoint Designer 2013 finden Sie unter Grundlegendes zu Koordinationsaktionen in SharePoint Designer 2013.

SharePoint-Workflowinteroperabilität

Es folgt das Problem. Sie haben legacy SharePoint 2010 Workflows, die Sie auf Ihrer SharePoint Plattform wiederverwenden möchten. Oder, schlechter, Sie neue SharePoint Workflows erstellen, und Sie benötigen, Aktivitäten aufgerufen werden soll, die nur in der SharePoint 2010-Plattform verfügbar sind. Und Sie nicht wissen, was zu tun. Tatsächlich, die Lösung ist einfach: Verwenden von SharePoint-Workflow Interop.

SharePoint-workflowinteroperabilität kann SharePoint 2010 Workflows (basierend auf Windows Workflow Foundation 3) reibungslos das Workflowmodul SharePoint entwickelt dem Windows Workflow Foundation 4 basiert. Während die neue Windows Workflow Foundation 4 Ausführung Engine in Workflow-Manager,, der als externer Dienst ausgeführt wird gehostet wird, enthält SharePoint noch den Vorversionen SharePoint Workflow-Host die verwendet wird, um SharePoint 2010 Workflows zu verarbeiten. SharePoint-workflowinteroperabilität handelt die beiden ausführungsumgebungen, wie in Abbildung 1 dargestellt.

Abbildung 1: SharePoint-Workflowinterop in Aktion

Workflow-Interopbrücke

Lassen Sie uns durchgehen des Prozess, der in Abbildung 1 dargestellt. Verwenden Sie die Buchstaben auf Punkt der Hervorhebung in der Abbildung verweisen:

( A ) eine Instanz eines Workflows SharePoint gestartet in dann Windows Workflow Foundation 4-basierte Workflow-Manager. Beachten Sie, dass der Workflow-Manager nicht in SharePoint ist, aber stattdessen als externer Dienst ausgeführt wird.

( B ) erreichen Sie einen Punkt im SharePoint Workflow - Schrittnummer 3 im Workflow-Manager -, an den Sie einen Workflow SharePoint 2010 aufrufen möchten. In der Workflow-Designer Visual Studio 2012 führen Sie dies durch die Implementierung der Aktivitätsfeeds Start 2010 WF wie in Abbildung 2 dargestellt.

Abbildung 2: Phasenkachel zum Starten eines SharePoint 2010-Workflows.

Starten eines 2010-Workflows

Aus sicht des SharePoint-Objektmodells wird dies mithilfe der StartWorkflow-Methode für die WorkflowInteropService-Klasse erreicht.

( C ) beginnt zu diesem Zeitpunkt der SharePoint 2010 Workflow in der Windows Workflow Foundation 3.5 Workflow-Host innerhalb von SharePoint ausgeführt. Aber ein wichtiger Aspekt angezeigt wird. In einigen Szenarien sollten Sie den Workflow 2013 warten, bis des 2010-Workflows, bis Sie abgeschlossen (und möglicherweise einige Daten zurückgeben) vor dem Ausführen den 2013-Workflow fortfahren. In anderen Szenarien Dies kann nicht erforderlich sein, und beide Workflows unabhängig und parallel ausgeführt.

Um dieses Verhalten zu steuern, stellt die WorkflowInterop-Klasse , die die Ausführung von Workflows im Windows Workflow Foundation 3.5-Workflowhost steuert, eine Wait-Eigenschaft bereit. Durch Festlegen dieser Boolean-Eigenschaft auf " Ja " (im Dialogfeld Designer) oder auf true in der für die Eigenschaft Wait bewirkt, dass den 2013-Workflow angehalten wird, bis die 2010 Ausführung beendet und eine Meldung completed zurückgegeben.

Abbildung 3: Dialogfeld "Workfloweigenschaften starten".

Festlegen von Eigenschaften für eine Aktivität zum Starten eines Workflows

( D ) die praktische Auswirkung der Auswahl von true oder false auf die Wait -Eigenschaft ( Yes oder No im Dialogfeld Eigenschaften) wird hier dargestellt. Wenn Waitauf true festgelegt ist, übergibt der Workflow 2010 ein WorkflowCompleted-Ereignis (und gibt optional Daten als DynamicValue-Eigenschaft zurück). Weitere Informationen über dynamische Werte finden Sie unter Understanding Dynamic Value.

Natürlich Wait auf falsefestgelegt ist, klicken Sie dann 2010-Workflows ausgeführt wird, dann normal beendet.

( E ) dieser Schritt ist nur relevant, wenn der Aufruf des Workflows 2010 Wait=trueangegeben. In diesem Fall der 2013-Workflow WorkflowCompleted -Ereignis empfangen und startet die Ausführung des Workflows 2013 an der Stelle, die sie unterbrochen.

( F ) 2013-Workflow dann nach abgeschlossener Ausführung und normal beendet. Wenn Wait=false, klicken Sie dann den 2013-Workflow ausgeführt wird und unabhängig von der 2010-Workflow wird beendet.

Workflow-Interop-design

SharePoint-workflowinteroperabilität ist eine messaging-Framework, das eine Instanz 1: 1-Zuordnung zwischen WF-3 und 4 WF-Workflow-Aktivitäten unterstützt. WF 3 und WF 4 arbeiten über Nachrichtenaustausche zusammen, die von einer Reihe von WF 4-Aktivitäten in WorkflowInteropService umschlossen sind.

Zur Unterstützung der Workflowinteroperabilität bietet die Workflowentwurfsoberfläche in SharePoint Designer Zugriff auf eine neue Workflowaktivität, Start 2010 WF, bei der es sich um einen Wrapper für die StartWorkflow-Methode handelt. Dadurch können Sie einen Listenworkflow oder Website-Workflow starten.

Die Aktivität ist tatsächlich eine Folge von Nachrichten, die stattfinden zwischen den Workflow-Manager und SharePoint 2010 Workflow-Host, der in SharePoint ausgeführt wird. Diese beiden sind von messaging-Ebene vermittelt, wie in Abbildung 4 dargestellt. Die Sequenz beginnt im Workflow-Manager SharePoint mit einem Aufruf der Methode StartWorkflow. Die Meldung "Start" wechselt zu den Workflowdienst innerhalb von SharePoint, wobei wiederum er den Workflow im Workflow-Host SharePoint 2010 gestartet. Nach Abschluss der Ausführung des Workflows 2010 ist ein Ereignis ausgelöst, die eine "Abgeschlossene" Nachricht über Herausgeber des Ereignisses zurück an den 2013-Workflow-Manager sendet.

Abbildung 4: SharePoint-Workflow-Interop-Messagingprotokoll

Workflow-Interop-Messaging

Siehe auch