Créer des variables pour stocker et gérer des valeurs dans Azure Logic Apps

S’applique à : Azure Logic Apps (Consommation + Standard)

Cet article explique comment créer et utiliser des variables pour stocker des valeurs dans votre flux de travail d’application logique. Des variables peuvent, par exemple, vous aider à suivre le nombre d’exécutions d’une boucle. Pour itérer sur un tableau ou rechercher un élément spécifique dans un tableau, vous pouvez utiliser une variable qui référence le numéro d’index de chaque élément du tableau.

Vous pouvez créer des variables pour des types de données tels que entier, flottant, booléen, chaîne, tableau et objet. Après avoir créé une variable, vous pouvez effectuer d’autres tâches, par exemple :

  • Obtenir ou référencer la valeur de la variable.
  • Augmenter ou réduire la variable d’une valeur constante, opérations également appelées incrémenter et décrémenter.
  • Affecter une valeur différente à la variable.
  • Insérer, ou ajouter, la valeur de la variable à la fin d’une chaîne ou d’un tableau.

Les variables existent et sont globales uniquement au sein de l’instance de flux de travail d’application logique qui les crée. En outre, elles sont conservées dans toutes les itérations de boucle à l’intérieur d’une instance de flux de travail. Quand vous référencez une variable, utilisez le nom de celle-ci comme jeton, au lieu du nom de l’action qui est la façon habituelle de référencer les résultats d’une action.

Important

Par défaut, les itérations d’une boucle «For each» s’exécutent en parallèle. Quand vous utilisez des variables dans des boucles, exécutez la boucle séquentiellement afin que les variables retournent des résultats prévisibles.

Prérequis

Les étapes suivantes utilisent le portail Azure, mais avec l’extension Azure Logic Apps appropriée, vous pouvez également utiliser les outils suivants pour créer des flux de travail d’application logique :

En fonction du workflow dont vous disposez (Consommation ou Standard), suivez la procédure correspondante :

Initialiser la variable

Vous pouvez créer une variable et déclarer son type de données et sa valeur initiale en utilisant d’une seule action dans votre flux de travail. Vous ne pouvez déclarer des variables qu’au niveau global, pas dans des étendues, des conditions ou des boucles.

  1. Sur le Portail Azure, ouvrez votre flux de travail dans le Concepteur.

  2. Dans le concepteur, suivez ces étapes générales pour ajouter une action nommée Initialize variable.

  3. Fournissez les informations suivantes concernant votre variable :

    Propriété Obligatoire Valeur Description
    Nom Oui <variable-name> Nom de la variable à incrémenter
    Type Oui <variable-type> Type de données de la variable.
    Valeur Non <start-value> Valeur initiale de votre variable.

    Conseil : bien que cette valeur soit facultative, il est recommandé de la définir afin de toujours savoir la valeur initiale de votre variable.

    L’exemple suivant montre les valeurs initiales de cet exemple de variable :

    Capture d’écran du portail Microsoft Azure, du flux de travail contrôle serveur consommateur, et de l’action dénommée Initialiser la variable.

  4. Continuez maintenant à ajouter les actions souhaitées pour votre scénario. Lorsque c’est chose faite, dans la barre d’outils du concepteur, sélectionnez Enregistrer.

Si vous passez du concepteur à l’éditeur de Code, voici comment l’action Initialiser la variable s’affiche dans la définition de votre flux de travail, qui est au format JSON (JavaScript Object Notation) :

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ 
            {
               "name": "Count",
               "type": "Integer",
               "value": 0
            }
         ]
      },
      "runAfter": {}
   }
},

Notes

Bien que l’action Initialiser la variable comporte un objet "variables" qui est structurée sous la forme d’un tableau, elle ne peut créer qu’une seule variable à la fois. Chaque nouvelle variable requiert une action Initialiser la variable individuelle.

Les exemples suivants montrent d’autres types de variables :

Variable booléenne

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myBooleanVariable",
               "type": "boolean",
               "value": false
            }
         ]
      },
      "runAfter": {}
   }
},

Variable flottante

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myFloatVariable",
               "type": "float",
               "value": 1.99999
            }
         ]
      },
      "runAfter": {}
   }
},

Variable de chaîne

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myStringVariable",
               "type": "string",
               "value": "lorem ipsum"
            }
         ]
      },
      "runAfter": {}
   }
},

variable objet

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "MyObjectVariable",
               "type": "object",
               "value": {
                  "ProductItem": {
                     "Name": "myProductName",
                     "ProductID": "000000"
                  }
               }
            }
         ]
      },
      "runAfter": {}
   }
},

Tableau d’entiers

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": [1, 2, 3]
            }
         ]
      },
      "runAfter": {}
   }
},

Tableau de chaînes

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": ["red", "orange", "yellow"]
            }
         ]
      },
      "runAfter": {}
   }
},

Obtenir la valeur d’une variable

Pour extraire ou référencer le contenu d’une variable, vous pouvez également utiliser la fonction variables() dans le concepteur de flux de travail et l’éditeur en mode Code. Quand vous référencez une variable, utilisez le nom de celle-ci comme jeton, au lieu du nom de l’action qui est la façon habituelle de référencer les résultats d’une action.

Par exemple, cette expression obtient les éléments de la variable tableau créée précédemment dans cet article à l’aide de la fonction variables(). La fonction string() retourne le contenu de la variable sous forme de chaîne : "1, 2, 3, red"

@{string(variables('myArrayVariable'))}

Incrémenter une variable

Pour augmenter ou incrémenter une variable d’une valeur constante, ajoutez l’action Incrémenter une variable à votre flux de travail. Cette action fonctionne uniquement avec les variables de type entier et flottant.

  1. Dans le concepteur de flux de travail, suivez ces étapes générales pour ajouter une action nommée Incrémenter la variable.

  2. Pour cette action, vous devrez fournir les informations suivantes :

    Propriété Obligatoire Valeur Description
    Nom Oui <variable-name> Nom de la variable à incrémenter
    Valeur Non <increment-value> Valeur utilisée pour incrémenter la variable. La valeur par défaut est 1.

    Conseil : bien que cette valeur soit facultative, il est recommandé de la définir afin de toujours savoir la valeur spécifique de l’incrémentation de votre variable.

    L’exemple suivant montre les exemples de valeurs pour cette action :

    Capture d’écran du portail Azure, du flux de travail de consommation, et de l’action dénommée Incrémenter la variable.

  3. Lorsque vous avez terminé, enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

Si vous passez du concepteur à l’éditeur de Code, voici comment l’action Incrémenter la variable s’affiche dans la définition de votre flux de travail, qui est au format JSON (JavaScript Object Notation) :

"actions": {
   "Increment_variable": {
      "type": "IncrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Exemple : créer un compteur de boucle

Des variables sont couramment utilisées pour compter le nombre d’exécutions d’une boucle. Cet exemple montre comment créer et utiliser des variables pour cette tâche en créant une boucle qui compte les pièces jointes à un e-mail.

  1. Dans le Portail Azure, créez votre ressource d’application logique Consommation avec un flux de travail vide. Ajoutez un déclencheur qui vérifie la présence de nouveaux e-mails et pièces jointes.

    Cet exemple utilise le déclencheur Office 365 Outlook quand un nouvel e-mail arrive. Vous pouvez configurer ce déclencheur de façon à ce qu’il s’active uniquement lorsque l’e-mail contient des pièces jointes. En revanche, vous pouvez utiliser n’importe quel connecteur qui vérifie la présence de nouveaux e-mails contenant des pièces jointes, tel que le connecteur Outlook.com.

  2. Dans le déclencheur, pour vérifier la présence de pièces jointes et le passage de celles-ci au flux de travail de votre application logique, sélectionnez Oui pour ces propriétés :

    • Uniquement avec pièce jointe
    • Inclure des pièces jointes

    Capture d’écran montrant le portail Azure, le flux de travail de consommation et les propriétés sélectionnées pour vérifier et inclure les pièces jointes.

  3. Ajoutez l’action Initialiser la variable pour créer une variable entière nommée Count dont la valeur de début est définie sur 0.

  4. Pour itérer au sein de chaque pièce jointe, suivez ces étapes générales pour ajouter une action appelée boucle For each.

  5. Dans la boucle, sélectionnez à l’intérieur de la zone nommée Sélectionner une sortie des étapes précédentes. Dans la liste de contenu dynamique, sous À la réception d’un e-mail, sélectionnez Pièces jointes.

    Capture d’écran montrant le flux de travail de consommation, pour chaque boucle, une liste de contenu dynamique ouverte et une sortie des pièces jointes sélectionnées.

    La propriété Pièces jointes transmet un tableau qui contient les pièces jointes à l’e-mail de la sortie du déclencheur dans la boucle pour que votre flux de travail effectue une itération.

  6. Dans la boucle For each, sélectionnez Ajouter une action.

  7. Suivez ces étapes générales pour ajouter une action appelée Incrémenter une variable à la boucle.

    Notes

    Assurez-vous que l’action Incrémenter une variable apparaît dans la boucle. Si l’action apparaît hors de la boucle, faites-la glisser dans la boucle.

  8. Dans l’action Incrémenter une variable, dans la liste Nom, sélectionnez la variable Nombre. Définissez la propriété Value sur 1.

    Capture d’écran affichant le flux de travail de consommation avec la variable sélectionnée nommée « Count. »

  9. Sous la boucle, ajoutez une action qui vous envoie le nombre de pièces jointes. Dans l’action, incluez la valeur de la variable Nombre, par exemple :

    Capture d’écran du flux de travail de la consommation et d’une action qui envoie les résultats.

  10. Lorsque vous avez terminé, enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

Tester votre workflow

  1. Pour déclencher manuellement votre flux de travail, suivez l’étape correspondante :

    Workflow Consommation

    Dans la barre d’outils du concepteur, sélectionnez Exécuter le déclencheur >Exécuter pour démarrer manuellement le flux de travail.

    Workflow Standard

    Dans le menu du flux de travail, sélectionnez Vue d’ensemble. Dans la barre d’outils, sélectionnez Démarrer>Démarrer.

  2. Envoyez un e-mail avec une ou plusieurs des pièces jointes au compte de courrier que vous avez utilisé dans cet exemple.

    Cette étape déclenche le déclencheur de flux de travail, qui crée et exécute une instance de flux de travail. Ensuite, le flux de travail vous envoie un message ou un e-mail indiquant le nombre de pièces jointes dans l’e-mail que vous avez envoyé.

Si vous passez du concepteur à l’éditeur de Code, voici comment la boucle For each s’affiche avec l’action Incrémenter la variable dans la définition de votre flux de travail, qui est au format JSON (JavaScript Object Notation) :

"actions": {
   "For_each": {
      "type": "Foreach",
      "actions": {
         "Increment_variable": {
           "type": "IncrementVariable",
            "inputs": {
               "name": "Count",
               "value": 1
            },
            "runAfter": {}
         }
      },
      "foreach": "@triggerBody()?['Attachments']",
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Décrémenter une variable

Pour diminuer ou décrémenter une variable d’une valeur constante spécifique, procédez de la même manière que pour incrémenter une variable, mais ajouter à la place l’action Décrémenter une variable à votre flux de travail. Cette action fonctionne uniquement avec les variables de type entier et flottant.

Le tableau suivant décrit les informations relatives à l’action Décrémenter la variable :

Propriété Obligatoire Valeur Description
Nom Oui <variable-name> Nom de la variable à décrémenter
Valeur Non <increment-value> Valeur de la décrémentation de la variable. La valeur par défaut est 1.

Conseil : Bien que cette valeur soit facultative, nous vous recommandons de la définir afin de toujours connaître la valeur spécifique pour la décrémentation de votre variable.

Si vous passez du concepteur à l’éditeur de Code, voici comment l’action Décrémenter la variable s’affiche dans la définition de votre flux de travail, qui est au format JSON (JavaScript Object Notation) :

"actions": {
   "Decrement_variable": {
      "type": "DecrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Définir une variable

Pour attribuer une valeur différente à une variable, procédez de la même manière que pour incrémenter une variable sauf que vous devez :

  1. Rechercher et sélectionner l’action Définir une variable à la place.

  2. Fournissez le nom de la variable et la valeur à lui attribuer. Le type de données de la nouvelle valeur et de la variable doivent être le même. La valeur est requise, car cette action n’a pas de valeur par défaut.

Le tableau suivant décrit les informations relatives à l’action Définir une variable :

Propriété Obligatoire Valeur Description
Nom Oui <variable-name> Nom de la variable à modifier
Valeur Oui <new-value> Valeur que vous souhaitez attribuer à la variable. Le type de données des deux doit être identique.

Notes

Sauf si vous incrémentez ou décrémentez des variables, la modification de variables dans des boucles peut produire des résultats inattendus, car les boucles s’exécutent en parallèle ou simultanément par défaut. Dans ce cas, essayez de définir votre boucle pour qu’elle s’exécute de manière séquentielle. Par exemple, lorsque vous souhaitez référencer la valeur de la variable à l’intérieur de la boucle et attendez la même valeur au début et à la fin de cette instance de boucle, procédez comme suit pour modifier la façon dont la boucle s’exécute :

  1. Sur votre boucle, recherchez et ouvrez les paramètres de la boucle.

  2. En fonction du type de votre flux de travail, suivez les étapes correspondantes :

    • Consommation : modifiez le paramètre Contrôle d’accès concurrentielde Désactivé à Activé.

    • Standard : sous Général, remplacez le paramètre Contrôle d’accès concurrentielde Désactivé à Activé.

  3. Positionnez le curseur Degré de parallélisme sur 1.

Si vous passez du concepteur à l’éditeur de Code, voici comment l’action Définir la variable s’affiche dans la définition de votre flux de travail, qui est au format JSON (JavaScript Object Notation) :

Cet exemple change la valeur actuelle de la variable Count vers une autre valeur :

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
               "name": "Count",
               "type": "Integer",
               "value": 0
          } ]
      },
      "runAfter": {}
   },
   "Set_variable": {
      "type": "SetVariable",
      "inputs": {
         "name": "Count",
         "value": 100
      },
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Ajouter à une variable

Pour les variables qui stockent des chaînes ou des tableaux, vous pouvez insérer ou ajouter la valeur d’une variable à la fin de ces chaînes ou des tableaux. Vous pouvez suivre les étapes d’incrémentation d’une variable avec les exceptions suivantes :

  1. Recherchez et sélectionnez une des actions suivantes, selon que votre variable est une chaîne ou un tableau :

    • Ajouter à une variable chaîne
    • Ajouter à une variable tableau
  2. Spécifiez la valeur à ajouter à la fin de la chaîne ou du tableau. Cette valeur est requise.

Le tableau suivant décrit les informations relatives aux actions Ajouter à... :

Propriété Obligatoire Valeur Description
Nom Oui <variable-name> Nom de la variable à modifier
Valeur Oui <append-value> Valeur que vous souhaitez ajouter, qui peut être de tout type

Si vous passez du concepteur à l’éditeur de Code, voici comment l’action Ajouter à une variable tableau s’affiche dans la définition de votre flux de travail, qui est au format JSON (JavaScript Object Notation).

Cet exemple crée une variable tableau et ajoute une autre valeur à la fin du tableau. Le résultat est une variable mise à jour qui contient ce tableau : [1,2,3,"red"]

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
            "name": "myArrayVariable",
            "type": "Array",
            "value": [1, 2, 3]
         } ]
      },
      "runAfter": {}
   },
   "Append_to_array_variable": {
      "type": "AppendToArrayVariable",
      "inputs": {
         "name": "myArrayVariable",
         "value": "red"
      },
      "runAfter": {
        "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Étapes suivantes