Workflow Manager 1.0 - Pub/Sub-Aktivitäten

 

Workflow-Manager 1.0 ermöglicht, dass Workflows Nachrichten abonnieren und empfangen können – für die Erstellung neuer Instanzen sowie für die Korrelation mit vorhandenen Instanzen.Die Instanzerstellung wird durch einen ActivationFilter einer Workflowdefinition gesteuert. Workflowinstanzen, die eine bestimmte Sammlung korrelierender Nachrichten dynamisch zur Laufzeit abonnieren möchten, können zu diesem Zweck die Aktivitäten Subscribe und ReceiveNotification verwenden.

Hinweis

Dieses Modell unterscheidet sich vom WF4-Modell, das die Eigenschaft CanCreateInstance von Receive verwendet, insofern, als diese Aktivierungsinformation außerhalb des Workflows (als Teil seiner WorkflowDefinition) angegeben werden.

Pub/Sub-Aktivitäten

Es sind vier Kernaktivitäten verfügbar, die zum Empfangen von Benachrichtigungen verwendet werden können:

  • BuildMatchAllFilter – Diese Aktivität definiert den Filter, der zum Zuordnen von eingehenden Nachrichten (am Benachrichtigungsendpunkt des Bereichs) zur Workflowinstanz verwendet wird.Dieser Filter ermittelt eine genaue Übereinstimmung für jede der Eigenschaften, die für den bereitgestellten Wert angegeben werden.Hinweis: Der definierte Typ ist für die Übereinstimmungssemantik relevant. Dies bedeutet, dass ein Integerwert 1 nicht mit einer Zeichenfolge "1" in der veröffentlichten Nachricht übereinstimmt.

  • ReceiveNotification – Dieses Aktivität wird zum Blockieren der Workflowausführung verwendet, bis eine übereinstimmende Benachrichtigung empfangen wurde.Die Aktivität stellt außerdem die Nachrichteneigenschaften und -inhalte zur Verfügung, damit diese an Workflowvariablen gebunden werden können.Der Filter kann explizit für die Aktivität bereitgestellt werden, oder es kann ein SubscriptionHandle aus einer vorherigen Aktivität Subscribe verwendet werden.Der erste Modus wird verwendet (und stellt den Filter für die Aktivität bereit), dann wird das Abonnement implizit beendet, nachdem die Nachricht empfangen und an den Workflow übermittelt wurde.

  • Subscribe – Diese Aktivität kann zum expliziten Erstellen der Abonnementregel basierend auf dem Eingabefilter verwendet werden.Das Abonnement wird in einer Variablen SubscriptionHandle gespeichert, die für nachfolgende Aktivitäten ReceiveNotification und/oder Unsubscribe verwendet werden kann.

  • Unsubscribe – Diese Aktivität kann zum expliziten Beenden des Abonnements basierend auf einem Eingabe-SubscriptionHandle verwendet werden.Hinweis: Wenn eine Variable "SubscriptionHandle" den Bereich verlässt, wird implizit "Unsubscribe" aufgerufen, damit Handles nicht ungültig werden. Die Aktivität "Unsubscribe" ist daher nicht immer erforderlich.

Nachrichten werden mithilfe des Benachrichtigungsendpunkts oder mithilfe der .NET-Client-API (WorkflowInstanceManager) im Bereich veröffentlicht, um die Benachrichtigung zu veröffentlichen.Eine Benachrichtigung besteht aus zwei Teilen:

  • Eigenschaften – Diese bestehen aus einer flachen Liste von Schlüssel-Wert-Paaren, die zu Filterzwecken verwendet werden können. Auf sie kann auch im Workflow mithilfe der Eigenschaft Properties von ReceiveNotification zugegriffen werden.

  • Content – Dies ist der Inhalt der Nachricht.Ein "Dictionary<string, object>" kann bereitgestellt werden, um die Eigenschaft "Content" von "ReceiveNotification" ("ReceiveParametersContent") zuzuordnen, oder es kann ein bestimmtes Objekt übergeben werden, das dem Workflow als die Nutzlast von "ReceiveMessageContent" zugeordnet wird.

Weitere Informationen zum Messaging in Workflow-Manager 1.0 finden Sie unter Eingehendes Messaging.