Eingehendes Messaging

 

Veröffentlicht: Mai 2016

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.Bei diesen Nachrichten handelt es sich um unidirektionale Brokernachrichten, die voraussetzen, dass der Benutzer einen Filter als Bestandteil des Abonnements bereitstellt, der zum Zuordnen eingehender Nachrichten verwendet wird, die im entsprechenden Bereich übermittelt werden (der Bereich, in dem der Workflow gehostet wird).

Eingehendes Messaging

Workflowdefinitionen können selbst einen ActivationFilter definieren.Dieser Filter wird verwendet, um zu ermitteln, ob eine neue Instanz dieses Workflows erstellt werden muss, wenn eine Nachricht im Bereich veröffentlicht wird.Eine aktuell ausgeführte Workflowinstanz kann ebenfalls Filter mithilfe der Aktivitäten Subscribe und ReceiveNotification definieren.Weitere Informationen zu den Aktivitäten "Subscribe" und "ReceiveNotification" in Workflow-Manager 1.0 finden Sie unter 2af7983b-8357-4e0f-9ba9-dfdeed05a8a7#BKMK_PubSubActivities.

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.

  • Content – Dies ist der Inhalt der Nachricht.Ein Dictionary<string, object> sollte bereitgestellt werden, um den "InArguments" der Workflowdefinition oder der Content-Eigenschaft von "ReceiveNotifications" ("ReceiveParametersContent") zugeordnet zu werden.Der folgende Codeausschnitt zeigt, wie eine Nachricht in einem Bereich veröffentlicht wird.

    // Create the WorkflowInstanceManager 
    WorkflowInstanceManager wim = new WorkflowInstanceManager(new Uri(RootScope + ScopeName)); 
    // Publish New Order message 
    wim.PublishNotification(new WorkflowNotification() 
    { 
        Properties = 
        { 
            { "EventName", "New Order" } 
        }, 
        Content = new Dictionary() 
        { 
            { "OrderId", Int32.Parse(orderid) }, 
            { "Cost", Double.Parse(ordercost) } 
        } 
    });
    

Hinweis

Workflow-Manager 1.0 unterstützt zurzeit kein direktes SOAP-Messaging einschließlich bidirektionaler Kommunikation (Anforderungsantwort).