Compartilhar via

设置 switch 操作,以基于 Azure 逻辑应用工作流中的特定值来运行不同的操作路径

适用于:Azure 逻辑应用(消耗型 + 标准型)

若要根据对象、表达式或令牌的值运行不同的动作路径,请在工作流中添加一个分支动作。 此操作评估对象、表达式或令牌,选择与结果匹配的情况,并执行为该情况定义的动作路径。 Switch 操作运行时,应只有一个 一个 case 与结果相匹配。

例如,假设你想要基于电子邮件中选择的选项运行不同作路径的工作流。 在此示例中,工作流使用 RSS 触发器检查网站的 RSS 源以获取新内容。 当 RSS 源中出现新项时,工作流会向审批者发送电子邮件。 根据审批者选择批准还是拒绝,工作流将运行不同的操作。

提示

切换操作仅支持相等运算符。 如果需要其他关系运算符(例如 大于),请使用 条件作。 为了确保确定性行为,事例必须包含唯一和静态值,而不是动态标记或表达式。

先决条件

  • Azure 订阅。 如果没有订阅,可以注册 Azure 帐户

  • 若要执行本文中的示例,请使用 Outlook.com 帐户或者工作或学校帐户创建示例消耗逻辑应用工作流

    1. 添加发送电子邮件的操作时,请查找并选择该操作:发送审批电子邮件

    2. 提供以下信息:

      参数 必选 价值 说明
      是的 < 审批者电子邮件地址> 做出审批决定的人员的电子邮件地址。 若要测试示例,请使用自己的电子邮件地址进行测试。
      主题 < 电子邮件主题> 电子邮件审批请求的主题。
      用户选项 批准、拒绝 尽管为可选,但保留此示例的默认值。

      屏幕截图显示了“发送审批电子邮件”动作,其中包含可供输入地址和用户选项值的参数。

添加 switch 操作

若要根据审批电子邮件中的选定选项更改工作流执行路径,请在示例工作流的末尾添加切换作。

  1. 在设计器中,您需要按照以下常规步骤将名为Switch控制操作添加到工作流中。

    Switch 动作出现时,默认情况下为空。 Switch操作至少需要一个分支和默认分支。 稍后将添加更多案例。

    屏幕截图显示了具有空 default case 的 Switch 操作。

  2. 如果未选择“切换”操作导致信息窗格未打开,请选择“切换”标题栏。

  3. 在“参数”选项卡的“On”框中选择,然后选择闪电图标以打开动态内容列表。 在该列表中,在 “发送审批电子邮件”下,选择 “SelectedOption ”字段。

    SelectedOption 字段存储审批者选择的值,并确定要执行操作的案例。

    屏幕截图显示了动态内容列表,其中突出显示了 SelectedOption 值。

  4. 若要处理审批者选择 “批准 ”或 “拒绝”的情况,请为每个选项添加案例。 在 “默认” 案例旁边,选择加号(+)符号,然后选择 “添加案例”

    屏幕截图显示了“Switch”操作,其中添加了两个案例以及默认案例。

  5. 将这些操作添加到相应的 case:

    案件编号# SelectedOption 操作
    案例 批准 添加 Outlook 发送电子邮件操作,用于仅在审批者选择了“批准”时才发送有关该 RSS 项的详细信息。
    案例 2 拒绝 添加 Outlook 发送电子邮件操作,用于通知其他审批者该 RSS 项已被拒绝。
    默认 无需执行任何操作。 在此示例中,Default case 为空,因为 SelectedOption 只有两个选项。

    屏幕截图显示了一个包含两个案例和一个默认案例的Switch操作。每个添加的案例都包含一个要运行的发送电子邮件操作。

  6. 保存工作流。

  7. 若要测试此示例,请在设计器工具栏上选择“ 运行>运行 ”,直到触发器检测到新的 RSS 项并向你发送审批电子邮件。 选择“批准”以观察结果。

JSON 定义

现在,你已使用 Switch 作创建了工作流,请查看此作背后的 JavaScript 对象表示法(JSON)代码定义。

"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"
      ]
   }
}
标签 说明
"Switch" 默认动作名称 Switch,可以重命名以更准确地描述动作的目的。
"type": "Switch" 指定操作类型,即为 Switch 操作。
"expression" 在此示例中,指定了审批者选择的选项,Switch 操作将针对稍后会在定义中声明的每个 case 进行求值。
"cases" 可以定义任意数量的 case。 对于每个情况, "Case_*" 都是该事例的默认名称,可以重命名该名称以更好地描述事例的目的。
"case" 指定 case 的值,该值必须是 Switch 操作用于比较的常量和唯一值。 如果没有 case 与 switch 表达式结果匹配,请将运行 "default" 部分中的操作。