Power Automate - Switch、Condition 和 If()

2025-06-10

Power Automate - Switch、Condition 和 If()

if 语句是所有编程中最常用的表达式,是所有代码的基础。由于它如此基础,Power Automate 提供了多种方法来解决任何条件逻辑。关键在于了解所有这些方法以及何时使用它们。

  1. If 表达式
  2. 基本情况
  3. 逃脱条件
  4. 转变
  5. 追赶

1. If 表达式

if 表达式在 Power Automate 中仍未得到充分利用,它确实应该是您首先要考虑的条件。



if(equals({variable},'value'),'It matches','It doesn't match')


Enter fullscreen mode Exit fullscreen mode

每当输入是条件时就应该使用它。我发现一个条件操作经常会设置一个变量,然后将其作为另一个操作的输入。在这种情况下,我们可以将条件移动到输入中,使流程更简单、更容易理解,并减少 API 调用。
另一个优点是,它可以根据需要设置任意复杂度。



if(
    or(
        equals(triggerBody()['text'],'value')
    ,
        and(
            greater(triggerBody()['number'],10)
        ,
            contains(triggerBody()['text_1'],'Test Phrase')         
        )
    )
,
    'It matches'
,
    'It doesnt match'
)


Enter fullscreen mode Exit fullscreen mode

2.基本情况

这是每个人都会用到的,而且用得比实际的要多,但它确实有它的用途。它非常适合一种场景,比如需要根据一个条件执行两种不同的操作,例如,如果为真则添加,如果为假则删除。

基本情况

要记住的关键是:

  • 它不应该被用来设置变量(使用 if 表达式)
  • 只有差异才应该存在于条件中(即将共享操作移到条件之上/之下)

不正确的条件
不正确的条件

正确条件
正确条件

上述内容可能需要不同的电子邮件正文,但那时我们应该使用 if 表达式作为正文输入。

3. 逃脱条件

我听到你问什么是转义条件,它并非实际的唯一操作,而是我们使用基本条件的方式。条件不应该用作分支,而应该始终重新合并成一个分支。但是,某些条件可能不需要进一步的操作,人们通常会让流程分支出来,以便流程能够贯穿所有条件,直到流程结束。我们应该使用转义条件,该条件用于决定是终止还是继续。

逃逸条件

转义条件使流程更容易理解,因为它消除了嵌套并遵循“快速失败”的理念,即它立即结束而不是运行整个流程。

不正确的条件
不正确的条件

正确的条件
校正条件

由于上述内容过于简单,可能无法显示全部好处,但如果流程扩大,顶部条件将更难阅读。

4. 切换

Switch 语句经常被开发者忽略,因为嵌套的 if 语句太常见了。(它甚至被微软开发者忽略了,因为它是唯一仍在使用 v2 定义的操作)。虽然它的用例有限,但在适当的情况下,它仍然应该优先于其他条件语句使用。不过,使用它确实有一些缺点:

  • 由于宽度太宽,阅读起来可能会很困难
  • 它只能做简单的比较

只要稍加创意,您就可以解决第二个问题。

假设你想要 3 个开关

  • 值 = 第一个
  • 值 = 秒
  • 值 = 第三且值 2 = 1

我们可以在 Switch On 中使用 if 表达式。这样,我们就可以连接值来创建唯一的字符串。

转变

我们使用以下公式来创造我们独特的价值



concat(
   triggerBody()['text']
,
   if(equals(triggerBody()['number'],1),1,'')
)


Enter fullscreen mode Exit fullscreen mode
  • 值 = 第一个
  • 值 = 秒
  • 值 = third1

5. 追赶

执行条件的最后一种方法是使用 Run After 条件。这非常类似于 JavaScript 的 Try、Catch、Finally 错误处理。
结合并行分支和 Run After 条件,我们可以构建另一种类型的条件。

基本异常处理

此条件应仅在流逻辑无法使用的情况下作为最后手段使用。一个很好的例子是,如果您正在更新数据库中的某个项目,如果该项目缺失,则创建该项目。更好的方法是先检查它是否存在,但并非所有连接器/API都具备此功能。
有关更多异常处理,请参阅异常处理

鏂囩珷鏉ユ簮锛�https://dev.to/wyattdave/power-automate-switch-condition-and-if-25
PREV
了解 Power Automate 定义
NEXT
如何 - 使用 Power Automate Cloud 进行网页抓取