Создание операторов switch, которые запускают действия рабочего процесса на основе определенных значений в Azure Logic AppsCreate switch statements that run workflow actions based on specific values in Azure Logic Apps

Оператор switch позволяет выполнять определенные действия на основе значений объектов, выражений или токенов.To run specific actions based on the values of objects, expressions, or tokens, add a switch statement. Эта структура оценивает объект, выражение или маркер, выбирает вариант, который соответствует результату, и выполняет определенные действия только для этого варианта.This structure evaluates the object, expression, or token, chooses the case that matches the result, and runs specific actions only for that case. При выполнении оператора switch результат должен совпадать только с одним вариантом.When the switch statement runs, only one case should match the result.

Например, предположим, что вы хотите, чтобы приложение логики выполняло различные действия на основе параметра, выбранного в сообщении.For example, suppose you want a logic app that takes different steps based on an option selected in email. В этом примере приложение логики проверяет RSS-канал веб-сайта для обнаружения нового содержимого.In this example, the logic app checks a website's RSS feed for new content. Если в RSS-канале появляется новый элемент, приложение логики отправляет сообщение утверждающему лицу.When a new item appears in the RSS feed, the logic app sends email to an approver. В зависимости от того, что выбрал утверждающий ("Утвердить" или "Отклонить"), приложение логики выполняет различные действия.Based on whether the approver selects "Approve" or "Reject", the logic app follows different steps.

Совет

Как и в других языках программирования, операторы switch поддерживают только операторы равенства.Like all programming languages, switch statements support only equality operators. Если вам нужны другие операторы отношения (к примеру, оператор greater than), используйте условный оператор.If you need other relational operators, such as "greater than", use a conditional statement. Чтобы выполнение было детерминированным, варианты должны содержать уникальные статические значения, а не динамические маркеры или выражения.To ensure deterministic execution behavior, cases must contain a unique and static value instead of dynamic tokens or expressions.

Предварительные требованияPrerequisites

  • Подписка Azure.An Azure subscription. Если у вас нет ее, вы можете зарегистрироваться для получения бесплатной учетной записи Azure.If you don't have a subscription, sign up for a free Azure account.

  • Чтобы выполнить действия, указанные в данной статье, создайте этот пример приложения логики, используя учетную запись Outlook.com или 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. Когда вы добавляете действие для отправки сообщения, найдите и выберите действие Send an approval email (Отправить сообщение с утверждением)When you add the action to send email, find and select this action instead: Send an approval email

      Выбор Send an approval email (Отправить сообщение с утверждением)

    2. Заполните необходимые поля, например адрес электронной почты получателя письма с утверждением.Provide the required fields, like the email address for the person who gets the approval email. В разделе Параметры пользователя введите "Утвердить", "Отклонить".Under User Options, enter "Approve, Reject".

      Ввод сведений о сообщении

Добавление оператора switchAdd switch statement

  1. В этом примере добавьте оператор switch в конце вашего рабочего процесса.For this example, add a switch statement at the end your sample workflow. После выполнения последнего шага выберите Новый шаг.After the last step, choose New step.

    Если вы хотите добавить оператор 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. Выберите отображаемый знак плюса (+), а затем щелкните Добавить действие.Choose the plus sign (+) that appears, then choose Add an action.

  2. В поле поиска введите слово "switch" в качестве фильтра.In the search box, enter "switch" as your filter. Выберите действие: Switch — Элемент управленияSelect this action: Switch - Control

    Добавление switch

    Появится оператор switch с одним вариантом и вариантом по умолчанию.A switch statement appears with one case and a default case. По умолчанию в операторе switch должен быть создан по меньшей мере один вариант, помимо варианта по умолчанию.By default, a switch statement requires at least one case plus the default case.

    Оператор switch являается пустым по умолчанию

  3. Щелкните внутри поля On, чтобы отобразился список динамического содержимого.Click inside the On box so that the dynamic content list appears. Выберите в списке поле SelectedOption, выходные данные которого определяют действие для выполнения.From that list, select the SelectedOption field whose output determines the action to perform.

    Выберите "SelectedOption"

  4. Для обработки вариантов, когда утверждающий выбирает Approve или Reject, добавьте другой вариант между Вариант и По умолчанию.To handle the cases where the approver selects Approve or Reject, add another case between Case and Default.

    Добавление еще одного варианта

  5. Добавьте следующие действия в соответствующие варианты:Add these actions to the corresponding cases:

    № вариантаCase # SelectedOptionSelectedOption ДействиеAction
    Вариант 1Case 1 УтверждениеApprove Добавьте действие Outlook Send an email (Отправить сообщение), чтобы отправить сведения об элементе RSS только после того, как утверждающий выбрал Утвердить.Add the Outlook Send an email action for sending details about the RSS item only when the approver selected Approve.
    Вариант 2Case 2 RejectReject Добавьте действие Outlook Send an email (Отправить сообщение), чтобы уведомить других утверждающих о том, что элемент RSS был отклонен.Add the Outlook Send an email action for notifying other approvers that the RSS item was rejected.
    Значение по умолчаниюDefault NoneNone Никаких действий не требуется.No action necessary. В этом примере вариант По умолчанию пуст, потому что для SelectedOption доступны только два варианта.In this example, the Default case is empty because SelectedOption has only two options.

    Оператор switch готов

  6. Сохраните приложение логики.Save your logic app.

    Чтобы вручную протестировать этот пример, выберите Запуск. Приложение логики должно найти новый элемент RSS и отправить письмо с утверждением.To manually test this example, choose Run until the logic app finds a new RSS item and sends an approval email. Выберите Утвердить, чтобы просмотреть результаты.Select Approve to observe the results.

Определение JSONJSON definition

Теперь, когда приложение логики создано с помощью оператора switch, можно рассмотреть определение программного высокоуровневого кода оператора 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"
      ]
   }
}
МеткаLabel ОписаниеDescription
"Switch" Имя оператора switch, которое можно изменить для большей удобочитаемости.The name of the switch statement, which you can rename for readability
"type": "Switch" Указывает на то, что конструкция является оператором switch.Specifies that the action is a switch statement
"expression" В этом примере указывает на вариант, выбранный подтверждающим лицом, который сравнивается с указанными далее в определении вариантами значений.In this example, specifies the approver's selected option that's evaluated against each case as declared later in the definition
"cases" Определяет любое число вариантов.Defines any number of cases. Для каждого варианта "Case_*" является именем по умолчанию, которое можно изменить для большей удобочитаемости.For each case, "Case_*" is the default name for that case, which you can rename for readability
"case" Указывает значение варианта, которое оператор switch использует для сравнения. Это значение должно быть постоянным и уникальным.Specifies the case's value, which must be a constant and unique value that the switch statement uses for comparison. Если ни один вариант не соответствует результату выражения switch, выполняются действия в разделе "default".If no cases match the switch expression result, the actions in the "default" section are run.

Получение поддержкиGet support

Дальнейшие действияNext steps