编写复杂表达式
当您合并多个函数以获取所需结果时,这称为复杂表达式。 在数学函数以及日期和时间函数部分中,您已见过这些表达式的示例。 您了解到,若要对三个数字加和,需要合并两个 add 函数,例如:
add(add(12,13),15)
输出结果为 40。
然后,您了解了如何使用 utcNow 函数获取当前日期和时间,然后使用 convertFromUtc 将其更改为东部标准时区,如下所示:
convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )
输出结果为 09-02-2024 11:28 AM。
当考虑复杂表达式时,表达式中始终签入多个函数,将其中一个函数的输出用作另一个函数的输入。 不存在特殊的语法、运算符或注意事项。
最后一个复杂表达式示例应用场景:手动触发流触发器包含若干输入,然后在公式中使用该输入计算新时间。 您可以使用用于测试表达式的示例流或生成类似以下流的新流。
现在选择手动触发流下的添加输入并添加数字。 然后,再次选择添加输入并添加日期。 您的触发器现在应如下所示:
现在,在撰写步骤中,创建表达式以向日期添加触发器的天数。
addDays(triggerBody()?['date'], triggerBody()?['number'])
此表达式使用日期时间函数 addDays 和引用函数 triggerBody。
注意
如果有“如何确定触发器正文内容?”的疑问,则说明您的思路是正确的。 秘诀在于将动态内容合并到表达式中。 为此,在表达式开头键入 addDays(),然后将光标置于 () 之间,选择动态内容。 然后,可以选择您的字段。 这是引用该内容的好方法,让 Power Automate 完成编写表达式的艰难工作。
如果您测试流并输入日期 2024-02-09 和数字 2,输出将为 2024-02-11T00:00:00.0000000。 采用 2024 年 2 月 11 日的 UTC 格式。
现在,您可以使用另一个包含以下表达式的“撰写”操作确定星期几:
dayOfWeek(outputs('Compose'))
第一个“撰写”操作的输出为 2024-02-11T00:00:00.000000。 第二个“撰写”操作的输出为 0,表示星期日。 星期日是 0,随后每天增加 1。 下面的屏幕截图显示了您的流的外观,其中包含两个撰写操作以及第二个撰写操作中的 dayOfWeek 公式。
现在,添加其他“撰写”步骤以检查选定日期是否为星期四。 输入以下表达式:
if(equals(outputs('Compose_1'),4), 'You chose a Thursday', 'You didn't choose a Thursday')
针对 2024 年 2 月 9 日,将返回字符串“您未选择星期四”。
本示例是复杂表达式的典型生成模式,使用单独的步骤逐步生成。 现在,您已制定所有必要函数,添加其他“撰写”步骤。 在新“撰写”中,编写在一个步骤中执行所有操作的较大表达式。 表达式如下所示:
if(equals(dayOfWeek(addDays(triggerBody()['date'], triggerBody()['number'])),4), 'You chose a Thursday', 'You did not choose a Thursday' )
2024 年 2 月 9 日的输出为字符串“您未选择星期四”。如果这是您所期望的,则可以从流中删除所有初步撰写操作以进行清理。
恭喜。 您已逐步编写复杂表达式,最后进行合并。