Créer des instructions switch qui exécutent des actions de workflow basées sur des valeurs spécifiques dans Azure Logic AppsCreate switch statements that run workflow actions based on specific values in Azure Logic Apps

Pour exécuter des actions spécifiques basées sur les valeurs d’objets, d’expressions ou de jetons, ajoutez une instruction switch,.To run specific actions based on the values of objects, expressions, or tokens, add a switch statement. Cette structure évalue l’objet, l’expression ou le jeton, choisit le cas qui correspond au résultat et exécute des actions spécifiques à ce cas seulement.This structure evaluates the object, expression, or token, chooses the case that matches the result, and runs specific actions only for that case. Lors de l’exécution de l’instruction switch, un seul cas doit correspondre au résultat.When the switch statement runs, only one case should match the result.

Par exemple, supposez que vous souhaitiez une application logique qui prenne des étapes différentes selon l’option sélectionnée dans l’e-mail.For example, suppose you want a logic app that takes different steps based on an option selected in email. Dans cet exemple, l’application logique vérifie le flux RSS d’un site web pour y rechercher un nouveau contenu.In this example, the logic app checks a website's RSS feed for new content. Si un nouvel élément s’affiche dans le flux RSS, l’application logique envoie un e-mail à un approbateur.When a new item appears in the RSS feed, the logic app sends email to an approver. Selon que l’approbateur sélectionne « Approuver » ou « Rejeter », l’application logique suit des étapes différentes.Based on whether the approver selects "Approve" or "Reject", the logic app follows different steps.

Conseil

Comme dans tous les langages de programmation, les instructions switch ne prennent en charge que les opérateurs d’égalité.Like all programming languages, switch statements support only equality operators. Si vous avez besoin d’autres opérateurs de relation, par exemple « supérieur à », utilisez une instruction de condition.If you need other relational operators, such as "greater than", use a conditional statement. Pour garantir un comportement d’exécution déterministe, les cas doivent contenir une valeur statique unique et non des jetons ou des expressions dynamiques.To ensure deterministic execution behavior, cases must contain a unique and static value instead of dynamic tokens or expressions.

PrérequisPrerequisites

  • Un abonnement Azure.An Azure subscription. Si vous n’avez pas encore d’abonnement, vous pouvez vous inscrire pour obtenir un compte Azure gratuitement.If you don't have a subscription, sign up for a free Azure account.

  • Pour suivre l’exemple présenté dans cet article, créez cet exemple d’application logique avec un compte Outlook.com ou Office 365 Outlook.To follow the example in this article, create this sample logic app with an Outlook.com or Office 365 Outlook account.

    1. Si vous ajoutez l’action permettant d’envoyer un e-mail, recherchez et sélectionnez plutôt cette action : Envoyer un e-mail d’approbationWhen you add the action to send email, find and select this action instead: Send an approval email

      Sélectionner « Envoyer un e-mail d’approbation »

    2. Renseignez les champs obligatoires, tels que l’adresse e-mail de la personne qui reçoit l’e-mail d’approbation.Provide the required fields, like the email address for the person who gets the approval email. Sous Options utilisateur, entrez « Approuver, Rejeter ».Under User Options, enter "Approve, Reject".

      Entrer les détails de l’e-mail

Ajout d’une instruction switchAdd switch statement

  1. Pour cet exemple, ajoutez une instruction switch à la fin de votre exemple de flux de travail.For this example, add a switch statement at the end your sample workflow. Après la dernière étape, choisissez Nouvelle étape.After the last step, choose New step.

    Si vous souhaitez ajouter une instruction switch entre les étapes, placez le pointeur sur la flèche là où vous souhaitez l’ajouter.When you want to add a switch statement between steps, move the pointer over the arrow where you want to add the switch statement. Cliquez sur le signe plus ( + ) qui s’affiche, puis choisissez Ajouter une action.Choose the plus sign (+) that appears, then choose Add an action.

  2. Dans la zone de recherche, entrez le filtre « switch ».In the search box, enter "switch" as your filter. Sélectionnez cette action : Switch - ContrôleSelect this action: Switch - Control

    Ajout d’une instruction switch

    Une instruction switch s’affiche avec un cas et un cas par défaut.A switch statement appears with one case and a default case. Par défaut, une instruction switch requiert au moins un cas plus le cas par défaut.By default, a switch statement requires at least one case plus the default case.

    Instruction switch vide par défaut

  3. Cliquez dans la zone Activé pour afficher la liste du contenu dynamique.Click inside the On box so that the dynamic content list appears. Dans cette liste, sélectionnez le champ SelectedOption dont la sortie détermine l’action à effectuer.From that list, select the SelectedOption field whose output determines the action to perform.

    Sélection du champ SelectedOption

  4. Pour gérer les cas dans lesquels l’approbateur sélectionne Approve ou Reject, ajoutez un autre cas entre Cas et Par défaut.To handle the cases where the approver selects Approve or Reject, add another case between Case and Default.

    Ajout d’un autre cas

  5. Ajoutez ces actions aux cas correspondants :Add these actions to the corresponding cases:

    N° de casCase # SelectedOptionSelectedOption ActionAction
    Cas 1Case 1 ApprouverApprove Ajoutez l’action Envoyer un e-mail Outlook pour envoyer des détails sur l’élément RSS uniquement si l’approbateur a sélectionné Approuver.Add the Outlook Send an email action for sending details about the RSS item only when the approver selected Approve.
    Cas 2Case 2 RejeterReject Ajoutez l’action Envoyer un e-mail Outlook pour informer les autres approbateurs que l’élément RSS a été rejeté.Add the Outlook Send an email action for notifying other approvers that the RSS item was rejected.
    DefaultDefault AucunNone Aucune action requise.No action necessary. Dans cet exemple, le cas Par défaut n’est pas renseigné, car SelectedOption possède uniquement deux options.In this example, the Default case is empty because SelectedOption has only two options.

    Instruction switch terminée

  6. Enregistrez votre application logique.Save your logic app.

    Pour tester manuellement cet exemple, choisissez Exécuter jusqu’à ce que l’application logique trouve un nouvel élément RSS et envoie un e-mail d’approbation.To manually test this example, choose Run until the logic app finds a new RSS item and sends an approval email. Sélectionnez Approuver pour observer les résultats.Select Approve to observe the results.

Définition JSONJSON definition

Maintenant que vous avez créé une application logique avec une instruction switch, examinons la définition de code générale derrière l’instruction switch.Now that you created a logic app using a switch statement, let's look at the high-level code definition behind the switch statement.

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
           "Send_an_email": {}
         },
         "case" : "Approve"
      },
      "Case_2": {
         "actions": {
           "Send_an_email_2": {}
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": {}
   },
   "runAfter": {
      "Send_approval_email": [
         "Succeeded"
      ]
   }
}
ÉtiquetteLabel DescriptionDescription
"Switch" Nom de l’instruction switch que vous pouvez modifier pour plus de lisibilité.The name of the switch statement, which you can rename for readability
"type": "Switch" Indique que l’action est une instruction switch.Specifies that the action is a switch statement
"expression" Dans cet exemple, spécifie l’option sélectionnée par l’approbateur qui est confrontée à chacun des cas déclarés plus loin dans la définition.In this example, specifies the approver's selected option that's evaluated against each case as declared later in the definition
"cases" Définit un nombre quelconque de cas.Defines any number of cases. Pour chaque cas, "Case_*" est le nom par défaut du cas donné, que vous pouvez modifier pour plus de lisibilité.For each case, "Case_*" is the default name for that case, which you can rename for readability
"case" Spécifie la valeur du cas qui doit être une valeur unique et constante utilisée par l’instruction switch pour la comparaison.Specifies the case's value, which must be a constant and unique value that the switch statement uses for comparison. Si aucun cas ne correspond au résultat de l’expression switch, les actions de la section "default" sont exécutées.If no cases match the switch expression result, the actions in the "default" section are run.

Obtenir de l’aideGet support

Étapes suivantesNext steps