Share via


Messagerie entrante

 

Publication: mai 2016

Workflow Manager 1.0 permet aux flux de travail de s’abonner à des messages et d’en recevoir, à la fois pour la création d’instances et pour la corrélation aux instances existantes.Ces messages sont des messages répartis à sens unique nécessitant que l’utilisateur fournisse un filtre dans le cadre de l’abonnement qui est utilisé pour mettre en correspondance les messages entrants remis à l’étendue correspondante (c’est-à-dire, l’étendue sous laquelle le flux de travail est hébergé).

Messagerie entrante

Les définitions de flux de travail peuvent elles-mêmes définir un ActivationFilter.Ce filtre permet de déterminer si une nouvelle instance de ce flux de travail doit être créée lorsqu’un message est publié dans l’étendue.Une instance de flux de travail en cours d’exécution peut également définir des filtres à l’aide des activités Subscribe et ReceiveNotification.Pour plus d'informations sur les activités Subscribe et ReceiveNotification dans Workflow Manager 1.0, voir 2af7983b-8357-4e0f-9ba9-dfdeed05a8a7#BKMK_PubSubActivities.

Les messages sont publiés dans l’étendue à l’aide du point de terminaison Notifications, ou en utilisant l’API Client .NET (WorkflowInstanceManager) pour publier le message de notification.Un message de notification est formé de deux parties :

  • Propriétés : il s’agit d’une liste plate de paires clé-valeur pouvant être utilisée à des fins de filtrage.

  • Content : il s’agit du contenu du message.Un Dictionary<string, object> doit être indiqué afin de mapper vers les InArguments de la définition du flux de travail ou la propriété Content de l'activité ReceiveNotification (ReceiveParametersContent).L’extrait de code suivant présente la publication d’un message dans une étendue.

    // 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) } 
        } 
    });
    

Notes

Workflow Manager 1.0 ne prend actuellement pas en charge la messagerie SOAP directe, y compris les communications bidirectionnelles (requête-réponse).