Partager via


Configuration de la forme Réception

Image qui représente la forme Receive.
Forme Réception

Une forme de réception peut être utilisée pour démarrer une orchestration. Si vous définissez la propriété Activate sur True, le moteur d’exécution teste un message entrant pour voir s’il est du type approprié et, si un filtre a été appliqué, si l’expression de filtre est satisfaite. Si les critères de réception du message sont remplis, le moteur d’exécution crée et exécute une nouvelle instance d’orchestration, et la forme Recevoir reçoit le message.

Notes

Si la propriété Activate d’une forme de réception a la valeur True, la réception doit être la première action de l’orchestration.

Notes

Si la propriété Activate a la valeur False sur toutes les formes de réception , votre orchestration doit être appelée par une autre orchestration pour pouvoir s’exécuter.

Notes

Si vous placez une forme de réception à l’intérieur d’une étendue avec la propriété Activate définie sur True, puis que vous ajoutez une variable de classe .NET à votre orchestration sans modifier la propriété Use Default Constructor de la variable sur False, l’instruction activate receive se trouve en dehors de l’étendue dans le code XLANG/S généré, mais l’aire de conception continue de l’afficher comme étant à l’intérieur de l’étendue.

Chaque orchestration doit avoir au moins une forme de réception avec la propriété Activate définie sur True.

Recevoir l’activation de la forme True

Si vous vous attendez à recevoir une réponse indirecte ou asynchrone à un message précédemment envoyé (sans passer par un port de requête-réponse), vous devez mettre le message en corrélation avec l'instance d'orchestration en cours d'exécution, afin que la réponse puisse être dirigée vers l'instance appropriée. Vous pouvez appliquer à la forme Envoi un ensemble de corrélations initial, si vous prévoyez d'effectuer une corrélation ultérieure des valeurs du message entrant, ou un ensemble de corrélations ultérieur pour une corrélation utilisant un ensemble de corrélations précédemment initialisé. Pour plus d’informations, consultez Utilisation de corrélations dans les orchestrations.

Pour configurer une forme Réception

  1. Définissez un message et une opération de port.

    1. Dans la fenêtre Vue Orchestration, vérifiez que votre orchestration comporte à la fois un message et une opération de port définis pour le type de message reçu.

      Dans le Fenêtre Propriétés, sélectionnez le message à recevoir dans la liste déroulante Propriété message.

    2. Dans le Fenêtre Propriétés, sélectionnez l’opération de port pour recevoir le message dans la liste déroulante Opération.

      —Ou—

      Faites glisser le connecteur de réception de la forme Recevoir vers le socket de port qui recevra le message.

  2. Spécifiez que la forme De réception active l’orchestration.

  3. Dans la fenêtre Propriétés, définissez la propriété Activer sur True.

    1. Dans le Fenêtre Propriétés, cliquez sur le bouton Points de suspension (...) de la propriété Filter Expression pour créer un filtre afin de limiter les messages acceptés par cette forme de réception.

      —Ou—

      Cliquez avec le bouton droit sur la forme Recevoir , puis cliquez sur Modifier l’expression de filtre.

    2. La boîte de dialogue Filtrer l’expression s’affiche . Utilisez cette boîte de dialogue pour créer une ou plusieurs expressions de filtre.

      Notes

      Un type de message doit être défini et affecté à la forme De réception avant de pouvoir lui appliquer un filtre.

  4. Spécifiez des jeux de corrélations pour restreindre les messages que la forme de réception accepte.

    • Pour chaque jeu de corrélations que vous souhaitez suivre, case activée un jeu de corrélations à partir de la liste déroulante de la propriété Jeux de corrélations suivants.

    • Pour chaque jeu de corrélations que vous souhaitez initialiser, case activée un jeu de corrélations à partir de la liste déroulante de la propriété Initializing Correlation Sets.

Contrôle de grille Expression de filtre

Créez une expression de filtre à l'aide de ce contrôle de grille pour définir les prédicats composant l'expression. Vous pouvez ajouter, modifier et supprimer des prédicats dans les cellules de la grille. Ce contrôle de grille comporte quatre colonnes : Propriété, Opérateur, Valeur et Regroupement.

  • Propriété. Vous pouvez entrer une référence de propriété ou en sélectionner une dans la liste déroulante de la cellule. La liste comprend des propriétés de message entrant.

  • Opérateur. Vous pouvez entrer valeur dans cette cellule ou sélectionner un opérateur dans la liste déroulante de la cellule. Les sélections possibles sont les suivantes :

    Opérande Signification
    == Est égal à
    != N’est pas égal à
    < Est inférieur à
    <= Est inférieur ou égal à
    > Est supérieur à
    >= Est supérieur ou égal à
    Exists Exists
  • Valeur. Les cellules de la colonne Valeur peuvent contenir n’importe quelle constante que vous tapez : un littéral de chaîne, un entier-littéral ou null.

    Notes

    Si la propriété sélectionnée est du type chaîne, la valeur doit être encadrée par des guillemets. Par exemple, SMTP.From = "MyServer".

  • Groupement. Utiliser cette colonne pour contrôler les groupes de prédicats. Les expressions de filtre sont toujours exprimées sous forme normale disjonctive (DNF) afin que le regroupement puisse être déterminé automatiquement. AND indique que le prédicat doit être regroupé avec le prédicat suivant, tandis que OR indique que le prédicat est séparé du prédicat de la ligne suivante. Des parenthèses grises à gauche du contrôle de grille apparaissent lorsque les prédicats sont regroupés ensemble. Il est impossible d'imbriquer des groupes de prédicats. Si vous n'entrez pas de valeur dans cette cellule, la valeur par défaut est AND.

    Par exemple, vous pouvez créer l'expression suivante :

    MSMQ.MsgID = 1

    Avec ce filtre, le groupe de ports d'envoi s'abonnera uniquement aux messages ayant un ID de message MSMQ correspondant à 1.

    Vous pouvez créer des expressions supplémentaires et leur définir une relation AND ou OR avec d'autres expressions, par exemple :

    MSMQ.MsgID = 1 OR

    SMTP.From = "MyServer"

    Dans ce cas, le groupe de ports d'envoi s'abonnera à tous les messages ayant un ID de message MSMQ de 1 ou qui proviennent du serveur SMTP nommé MyServer.

Étiquette d'indication

Ce champ constitue une aide pour l'utilisateur. Le texte de l'étiquette change en fonction de la colonne contenant la cellule active. Le texte affiche le nom de la colonne suivi par une indication, comme suit :

  • Propriété. Veuillez sélectionner une propriété pour le message entrant dans la liste.

  • Opérateur. Sélectionnez un opérateur afin de comparer la Propriété avec la Valeur.

  • Valeur. Sélectionnez une propriété de message dans la liste, ou tapez une valeur littérale.

  • Groupement. Spécifiez la manière dont cette lignée doit être regroupée avec la ligne suivante. "AND" entraîne la liaison des lignes, "OR" les sépare.

Bouton Monter

Cliquez sur ce bouton pour déplacer la ligne sélectionnée vers le haut. (Sélectionnez d’abord une ligne en cliquant sur le bouton flèche droite (>) à gauche du contrôle grille.)

Bouton Descendre

Cliquez sur ce bouton pour déplacer la ligne sélectionnée vers le bas. (Sélectionnez d’abord une ligne en cliquant sur le bouton flèche droite (>) à gauche du contrôle grille.)

Champ Expression de filtre créée

Cette zone de texte en lecteur seule contient l'expression telle que vous l'avez créée.

Dans cette section

Utilisation des filtres avec la forme Réception de messages