Partager via


Ajouter des opérateurs arithmétiques et logiques à des règles en utilisant l’Éditeur de règles Microsoft (préversion)

S’applique à : Azure Logic Apps (Standard)

Important

Cette fonctionnalité est en préversion et est soumise aux conditions d’utilisation supplémentaires des préversions de Microsoft Azure.

Ce guide explique comment ajouter des opérateurs arithmétiques et logiques à des règles de votre ensemble de règles en utilisant l’Éditeur de règles Microsoft.

Prérequis

  • Avoir téléchargé et installé l’Éditeur de règles Microsoft.

  • Le fichier XML qui contient l’ensemble de règles sur lequel vous souhaitez travailler.

Ajouter un opérateur arithmétique à une règle

Vous pouvez ajouter un opérateur arithmétique à une condition ou à une action dans une règle. Le tableau suivant décrit les opérateurs arithmétiques disponibles :

Opérateur arithmétique Description
Ajouter L’opérateur d’addition qui ajoute arg1 à arg2.
Soustraire L’opérateur de soustraction qui soustrait arg1 de arg2.
Multiplier L’opérateur de multiplication qui multiplie arg1 par arg2.
Divide L’opérateur de division qui divise arg1 par arg2.
Reste L’opérateur de reste qui effectue arg1 modulo arg2.
  1. Dans l’Éditeur de règles Microsoft, chargez le fichier XML qui contient le magasin de règles sur lequel vous souhaitez travailler.

  2. Dans la fenêtre Explorateur d’ensemble de règles, recherchez et sélectionnez la règle souhaitée.

  3. Dans la fenêtre Explorateur de faits, sélectionnez l’onglet Vocabulaires.

  4. Sous Vocabulaires>Fonctions>Version 1.0, faites glisser l’opérateur arithmétique que vous souhaitez utiliser dans une condition de l’éditeur de conditions ou dans une action de l’éditeur d’actions.

  5. Dans les arguments de la condition ou de l’action, spécifiez les valeurs des opérandes de gauche et de droite.

    • Si les opérandes ont des types différents, le moteur de règles effectue une promotion numérique automatique, où il convertit le type d’opérande le plus petit vers le type d’opérande le plus grand.

      Par exemple, supposons que vous utilisez l’opérateur Addition sur un opérande qui a un type int et un opérande qui a un type long. Avant que le moteur effectue l’opération Addition, il convertit le type int en type long.

    • Si le moteur peut promouvoir les deux opérandes vers un type commun, il prend en charge la double promotion.

      Par exemple, supposons que vous utilisez l’opérateur Addition sur un opérande qui a un type int et un opérande qui a un type uint. Avant que le moteur effectue l’opération Addition, il convertit les types des deux opérandes en type long.

Ajouter un opérateur logique à une règle

Vous pouvez ajouter un opérateur logique à un prédicat dans une condition. Le tableau suivant décrit les opérateurs logiques disponibles :

Opérateur logique Description
AND Combine deux prédicats ou plus pour former une expression AND (ET) logique. Retourne true si les deux prédicats sont évalués à true. Sinon, retourne false.
OU Combine deux prédicats ou plus pour former une expression OR (OU) logique. Retourne true si un prédicat est évalué à true. Sinon, retourne false.
NOT Négation d’une expression logique ou d’un prédicat. Retourne true si un prédicat est évalué à false. Sinon, retourne false.
  1. Dans l’Éditeur de règles Microsoft, chargez le fichier XML qui contient le magasin de règles sur lequel vous souhaitez travailler.

  2. Dans la fenêtre Explorateur d’ensemble de règles, recherchez et sélectionnez la règle souhaitée.

  3. Dans le volet IF (SI), qui est l’éditeur de conditions, dans le menu contextuel Conditions, sélectionnez une des commandes suivantes :

    Opérateur logique Description
    Ajouter le AND logique Combine deux prédicats ou plus pour former une expression AND (ET) logique.
    Ajouter le OR logique Combine deux prédicats ou plus pour former une expression OR (OU) logique.
    Ajouter le NOT logique Négation d’une expression logique ou d’un prédicat.
  4. Dans l’éditeur de conditions, ouvrez le menu contextuel de l’opérateur, puis ajoutez les prédicats ou les opérateurs logiques imbriqués souhaités.

    Si les opérandes ont des types différents, le moteur de règles convertit le type d’un opérande pour le faire correspondre au type de l’autre opérande, ou il convertit les types pour les deux opérandes vers un type commun avant d’évaluer l’expression.

Traiter les valeurs Null

La section suivante décrit les comportements attendus pour les valeurs Null associées à différents types, et fournit des options pour vérifier si une valeur est Null, ou l’existence d’un champ ou d’un membre spécifique.

Classes .NET

  • Pour les types dérivés du type Object, vous pouvez définir leurs champs sur Null.

  • Vous pouvez passer Null en tant qu’argument pour les paramètres qui ne sont pas des types valeur, mais vous risquez d’obtenir une erreur d’exécution, en fonction de l’implémentation du membre.

  • Vous ne pouvez pas utiliser Null pour la comparaison si le type de retour n’est pas un type Object.

Éléments XML

  • Un document XML ne retourne jamais de valeur XML égale à Null. Au lieu de cela, cette valeur est une chaîne vide ou une erreur « N’existe pas ». Pour une chaîne vide, une erreur peut se produire lors de la conversion de certains types, comme des champs spécifiés avec le type entier quand vous créez une règle.

  • L’Éditeur de règles Microsoft ne vous permet pas de définir un champ sur Null ou de définir un type de champ sur Object.

  • Via le modèle d’objet, vous pouvez définir le type sur Object. Dans ce cas, la valeur retournée a le type avec lequel le XPath s’évalue, comme Float (Flottant), Boolean (Booléen) ou String (Chaîne), selon l’expression XPath.

Recherche d’une valeur Null ou de l’existence

Quand vous écrivez des règles, vous voulez naturellement vérifier qu’un champ existe avant de comparer sa valeur. Cependant, si le champ est Null ou qu’il n’existe pas, la comparaison de la valeur va provoquer une erreur.

Par exemple, supposons que vous avez la règle suivante :

IF Product/Quantity Exists AND Product/Quantity > 1

Si Product/Quantity (Produit/Quantité) n’existe pas, la règle génère une erreur. Pour contourner ce problème, vous pouvez passer un nœud parent à une méthode d’assistance qui retourne la valeur de Product/Quantity si cet élément existe ou qui retourne quelque chose d’autre si cet élément n’existe pas.

L’exemple suivant montre la règle de méthode d’assistance mise à jour et nouvelle :

Règle 1

IF Exists(Product/Quantity) THEN Assert(CreateObject(typeof(Helper), Product/Quantity))

Règle 2

IF Helper.Value == X THEN...

Une autre solution possible est de créer une règle comme l’exemple suivant :

IF Product/Quantity Exists THEN CheckQuantityAndDoSomething(Product/Quantity)

Dans l’exemple précédent, la fonction <CheckQuantityAndDoSomething> vérifie la valeur du paramètre et s’exécute si la condition est remplie.

Remarque

Vous pouvez aussi modifier la propriété XPath Field pour que le fait XML intercepte les éventuelles erreurs, mais cette approche n’est pas recommandée.