Power Automate - Switch、Condition 和 If()
if 语句是所有编程中最常用的表达式,是所有代码的基础。由于它如此基础,Power Automate 提供了多种方法来解决任何条件逻辑。关键在于了解所有这些方法以及何时使用它们。
- If 表达式
- 基本情况
- 逃脱条件
- 转变
- 追赶
1. If 表达式
if 表达式在 Power Automate 中仍未得到充分利用,它确实应该是您首先要考虑的条件。
if(equals({variable},'value'),'It matches','It doesn't match')
每当输入是条件时就应该使用它。我发现一个条件操作经常会设置一个变量,然后将其作为另一个操作的输入。在这种情况下,我们可以将条件移动到输入中,使流程更简单、更容易理解,并减少 API 调用。
另一个优点是,它可以根据需要设置任意复杂度。
if(
or(
equals(triggerBody()['text'],'value')
,
and(
greater(triggerBody()['number'],10)
,
contains(triggerBody()['text_1'],'Test Phrase')
)
)
,
'It matches'
,
'It doesnt match'
)
2.基本情况
这是每个人都会用到的,而且用得比实际的要多,但它确实有它的用途。它非常适合一种场景,比如需要根据一个条件执行两种不同的操作,例如,如果为真则添加,如果为假则删除。
要记住的关键是:
- 它不应该被用来设置变量(使用 if 表达式)
- 只有差异才应该存在于条件中(即将共享操作移到条件之上/之下)
上述内容可能需要不同的电子邮件正文,但那时我们应该使用 if 表达式作为正文输入。
3. 逃脱条件
我听到你问什么是转义条件,它并非实际的唯一操作,而是我们使用基本条件的方式。条件不应该用作分支,而应该始终重新合并成一个分支。但是,某些条件可能不需要进一步的操作,人们通常会让流程分支出来,以便流程能够贯穿所有条件,直到流程结束。我们应该使用转义条件,该条件用于决定是终止还是继续。
转义条件使流程更容易理解,因为它消除了嵌套并遵循“快速失败”的理念,即它立即结束而不是运行整个流程。
由于上述内容过于简单,可能无法显示全部好处,但如果流程扩大,顶部条件将更难阅读。
4. 切换
Switch 语句经常被开发者忽略,因为嵌套的 if 语句太常见了。(它甚至被微软开发者忽略了,因为它是唯一仍在使用 v2 定义的操作)。虽然它的用例有限,但在适当的情况下,它仍然应该优先于其他条件语句使用。不过,使用它确实有一些缺点:
- 由于宽度太宽,阅读起来可能会很困难
- 它只能做简单的比较
只要稍加创意,您就可以解决第二个问题。
假设你想要 3 个开关
- 值 = 第一个
- 值 = 秒
- 值 = 第三且值 2 = 1
我们可以在 Switch On 中使用 if 表达式。这样,我们就可以连接值来创建唯一的字符串。
我们使用以下公式来创造我们独特的价值
concat(
triggerBody()['text']
,
if(equals(triggerBody()['number'],1),1,'')
)
- 值 = 第一个
- 值 = 秒
- 值 = third1
5. 追赶
执行条件的最后一种方法是使用 Run After 条件。这非常类似于 JavaScript 的 Try、Catch、Finally 错误处理。
结合并行分支和 Run After 条件,我们可以构建另一种类型的条件。
此条件应仅在流逻辑无法使用的情况下作为最后手段使用。一个很好的例子是,如果您正在更新数据库中的某个项目,如果该项目缺失,则创建该项目。更好的方法是先检查它是否存在,但并非所有连接器/API都具备此功能。
有关更多异常处理,请参阅异常处理