Vytvořte příkazy Switch, které spouštějí akce pracovního postupu na základě konkrétních hodnot v Azure Logic AppsCreate switch statements that run workflow actions based on specific values in Azure Logic Apps

Chcete-li spustit konkrétní akce založené na hodnotách objektů, výrazů nebo tokenů, přidejte příkaz Switch .To run specific actions based on the values of objects, expressions, or tokens, add a switch statement. Tato struktura vyhodnocuje objekt, výraz nebo token, zvolí případ, který odpovídá výsledku, a spustí konkrétní akce pouze pro tento případ.This structure evaluates the object, expression, or token, chooses the case that matches the result, and runs specific actions only for that case. Při spuštění příkazu switch by byl výsledek odpovídat pouze jednomu případu.When the switch statement runs, only one case should match the result.

Předpokládejme například, že chcete, aby aplikace logiky, která provede různé kroky, byla založena na možnosti vybrané v e-mailu.For example, suppose you want a logic app that takes different steps based on an option selected in email. V tomto příkladu aplikace logiky kontroluje nový obsah v informačním kanálu RSS webu.In this example, the logic app checks a website's RSS feed for new content. Když se v informačním kanálu RSS objeví nová položka, aplikace logiky pošle e-mail schvalovateli.When a new item appears in the RSS feed, the logic app sends email to an approver. V závislosti na tom, jestli schvalovatel vybere "schválit" nebo "zamítnout", aplikace logiky provede jiný postup.Based on whether the approver selects "Approve" or "Reject", the logic app follows different steps.

Tip

Podobně jako u všech programovacích jazyků podporují příkazy Switch jenom operátory rovnosti.Like all programming languages, switch statements support only equality operators. Pokud potřebujete jiné relační operátory, například "větší než", použijte podmíněný příkaz.If you need other relational operators, such as "greater than", use a conditional statement. Aby bylo zajištěno deterministické chování při spuštění, musí být v případech jedinečné a statické hodnoty namísto dynamických tokenů nebo výrazů.To ensure deterministic execution behavior, cases must contain a unique and static value instead of dynamic tokens or expressions.

PožadavkyPrerequisites

  • Předplatné Azure.An Azure subscription. Pokud předplatné nemáte, zaregistrujte si bezplatný účet Azure.If you don't have a subscription, sign up for a free Azure account.

  • Pokud chcete postupovat podle příkladu v tomto článku, vytvořte tuto ukázkovou aplikaci logiky s účtem Outlook.com nebo pracovním nebo školním účtem.To follow the example in this article, create this sample logic app with an Outlook.com account or a work or school account.

    1. Když přidáte akci pro odeslání e-mailu, najděte a vyberte tuto akci, ale odešlete e-mail pro schválení .When you add the action to send email, find and select this action instead: Send an approval email

      Vyberte Odeslat e-mail pro schválení.

    2. Zadejte požadovaná pole, jako je e-mailová adresa osoby, která získá schvalovací e-mail.Provide the required fields, like the email address for the person who gets the approval email. V části Možnosti uživatele zadejte "schválit, odmítnout".Under User Options, enter "Approve, Reject".

      Zadat podrobnosti e-mailu

Přidat příkaz switchAdd switch statement

  1. V tomto příkladu přidejte příkaz switch na konci ukázkového pracovního postupu.For this example, add a switch statement at the end your sample workflow. Po posledním kroku vyberte Nový krok.After the last step, choose New step.

    Chcete-li přidat příkaz switch mezi kroky, přesuňte ukazatel myši na šipku, kam chcete přidat příkaz switch.When you want to add a switch statement between steps, move the pointer over the arrow where you want to add the switch statement. Zvolte symbol plus ( + ), který se zobrazí, a pak zvolte přidat akci.Choose the plus sign (+) that appears, then choose Add an action.

  2. Do vyhledávacího pole zadejte jako filtr "Switch".In the search box, enter "switch" as your filter. Vyberte tuto akci: ovládací prvek SwitchSelect this action: Switch - Control

    Přidat přepínač

    Příkaz switch se zobrazí s jedním případem a výchozím případem.A switch statement appears with one case and a default case. Ve výchozím nastavení příkaz switch vyžaduje aspoň jeden případ Plus výchozí případ.By default, a switch statement requires at least one case plus the default case.

    Prázdný výchozí příkaz switch

  3. Klikněte do pole zapnuto , aby se zobrazil seznam dynamického obsahu.Click inside the On box so that the dynamic content list appears. V tomto seznamu vyberte pole SelectedOption , jehož výstup Určuje akci, která má být provedena.From that list, select the SelectedOption field whose output determines the action to perform.

    Vyberte "SelectedOption"

  4. Chcete-li zpracovat případy, kde schvalovatel vybere Approve nebo Reject , přidejte jiný případ mezi případ a výchozí.To handle the cases where the approver selects Approve or Reject, add another case between Case and Default.

    Přidat další případ

  5. Přidejte tyto akce do odpovídajících případů:Add these actions to the corresponding cases:

    Tom #Case # SelectedOptionSelectedOption AkceAction
    Případ 1Case 1 SchváleníApprove Přidání e-mailové akce Odeslat e-mail pro odeslání podrobností o položce RSS pouze v případě, že schvalovatel zvolil schválení.Add the Outlook Send an email action for sending details about the RSS item only when the approver selected Approve.
    Případ 2Case 2 OdmítnoutReject Přidání e-mailové akce Odeslat e-mail pro upozorňování dalších schvalovatelů, že položka RSS byla odmítnuta.Add the Outlook Send an email action for notifying other approvers that the RSS item was rejected.
    VýchozíDefault ŽádnéNone Žádná akce není nutná.No action necessary. V tomto příkladu je výchozí případ prázdný, protože SelectedOption má jenom dvě možnosti.In this example, the Default case is empty because SelectedOption has only two options.

    Dokončený příkaz switch

  6. Uložte aplikaci logiky.Save your logic app.

    Pokud chcete tento příklad otestovat ručně, klikněte na tlačítko Spustit , dokud aplikace logiky nenajde novou položku RSS a odešle e-mail pro schválení.To manually test this example, choose Run until the logic app finds a new RSS item and sends an approval email. Vyberte schválit a sledujte výsledky.Select Approve to observe the results.

Definice JSONJSON definition

Teď, když jste vytvořili aplikaci logiky pomocí příkazu switch, se podívejme na definici kódu na nejvyšší úrovni za příkazem 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"
      ]
   }
}
PopisekLabel DescriptionDescription
"Switch" Název příkazu switch, který lze přejmenovat pro čitelnostThe name of the switch statement, which you can rename for readability
"type": "Switch" Určuje, že akce je příkaz switch.Specifies that the action is a switch statement
"expression" V tomto příkladu určuje možnost schvalovatele, která se vyhodnocuje pro každý případ deklarovaný později v definici.In this example, specifies the approver's selected option that's evaluated against each case as declared later in the definition
"cases" Definuje libovolný počet případů.Defines any number of cases. U každého případu "Case_*" je výchozím názvem pro tento případ, který můžete přejmenovat pro čitelnost.For each case, "Case_*" is the default name for that case, which you can rename for readability
"case" Určuje hodnotu případu, která musí být konstantou a jedinečnou hodnotou, kterou příkaz switch používá pro porovnání.Specifies the case's value, which must be a constant and unique value that the switch statement uses for comparison. Pokud se ve výsledku výrazu Switch neshodují žádné případy, akce v "default" části se spustí.If no cases match the switch expression result, the actions in the "default" section are run.

Získání podporyGet support

Další krokyNext steps