跳转到内容

条件步骤执行

工作流步骤通常按照工作流中定义的顺序执行。但有时只在满足预定义条件时才执行某些步骤会很有用。通过使用步骤条件功能,可以基于以下选项控制执行:

  • 变量值
  • 表有行或为空
  • 表存在或不存在
  • Document 中存在某个文件
  • Document 中缺少某个文件
  • 表查询结果
  • 满足日期和时间条件

对于变量或表查询结果的比较,可以使用以下比较方式:

  • 等于
  • 不等于
  • 包含
  • 不包含
  • 开头为
  • 结尾为
  • 大于
  • 小于
  • 大于或等于
  • 小于或等于

还需要注意的是,可以设置多个必须同时满足的条件,步骤才会执行。这为精确控制步骤的执行时机提供了强大的工具。

前一步骤 是否满足条件? 变量 · 行 · 文档存在 是 否 步骤运行 步骤被跳过 下一步
条件决定步骤是否执行:满足则步骤运行;不满足则跳过。无论哪种情况,工作流都会继续执行下一个步骤。条件可以测试变量、表是否有行,或文档是否存在。

要在步骤上激活并添加条件:

  1. 找到要添加条件的步骤
  2. 右键单击该步骤并选择编辑步骤详细信息,或单击其齿轮图标并切换到常规选项卡
  3. 滚动到常规选项卡底部的条件检查部分
  4. 勾选运行前检查条件复选框以启用对话框并添加条件。
  5. 在左侧的条件检查部分,选择“+”以添加新条件
  6. 从右侧的选项卡式部分添加条件
  7. 根据需要重复步骤 5、6,直至添加所有条件

无需打开步骤,即可在可视化画布上看到该步骤的条件。通向条件步骤的连接线是虚线,并在箭头处带有一个小盾牌。当缩小到盾牌太小而难以辨认时,可以通过虚线来识别。

单击盾牌即可打开该步骤,并已将其条件检查滚动到可见位置;也可以右键单击连接线并选择编辑条件…,效果相同。步骤自身图块左下角的盾牌仍然像以往一样标记该步骤为条件步骤。

有两种情况按设计不会在箭头上显示盾牌:

  • 没有传入连接线的步骤。 以日期或变量为条件的步骤可以位于工作流的起点,前面没有任何连接线。没有可标记的箭头,因此只会显示图块上的盾牌。
  • 位于已折叠分组内的步骤。 其图块已折叠到分组的图块中,箭头锚定在分组而不是步骤上,因此标记它会把条件归到错误的对象上。

有多条传入连接线的步骤只会得到一个盾牌,而不是每个箭头一个。

盾牌的工具提示会列出该步骤实际检查的内容,而不只是告诉您它在检查某些内容:

Table Row Count (sales_2026) > 0 where region = 'EU'
Day of Week = Monday (UTC+2)
Project Variable (run_mode) = "full"

最多列出三项检查,其后是其余项的计数,即 …以及另外 2 项检查,这样在条件很多的步骤上,列表仍然易于阅读。同样的摘要也会出现在步骤自身图块的盾牌上,对于没有传入连接线的步骤,这是它唯一的盾牌。

选中该步骤后,同样的列表会显示在检查器面板的条件部分,在那里阅读较长的列表更方便。

关于措辞,需要了解以下几点:

  • 日期和月份检查显示为名称,而不是为其存储的数字,即 星期几 = 星期一,而不是 星期几 = 3。
  • 仅当时区不是 UTC 时才显示时区,如上例中的 (UTC+2)。
  • 表检查上的筛选器会显示在 where 之后,过长时会缩短。
  • 聚合比较会注明这一点:查询值(聚合 sales_2026.amount)>= 100 比较的是整个表的合计值,而 查询值(sales_2026.amount)>= 100 比较的是单行的值。
  • 文档检查显示路径,但不显示账户。 在不同 Document 账户中检查同一路径的两个条件,读起来完全相同;请打开步骤来区分它们。
  • 从树浏览器中选取的表会显示其名称,前提是工作流在某处读取或写入了该表。如果没有,则该检查列出时不带表名,而不是显示内部标识符。

将鼠标悬停在盾牌上而不单击,画布会用虚线高亮勾勒出条件步骤及其下游的所有步骤,即如果该条件拦截,则不会运行的步骤。不会有任何更改;移开指针后高亮就会消失。上游的步骤绝不会被高亮:无论如何它们都会运行。

这与已禁用分组的已禁用标签所给出的预览相同,但措辞上有一个重要区别。已禁用的分组确实处于关闭状态,因此其标签会说明有多少个步骤将会跳过。条件只有在运行到达它时才会被评估,因此盾牌说明的是,如果条件拦截,有多少个步骤不会运行。它很可能会让所有步骤通过。

盾牌还会报告最近一次运行中发生的情况,因此您可以追溯一个已完成的流程,查看它在哪里停止:

盾牌 含义
普通盾牌 该步骤是条件步骤。它要么尚未运行,要么正在运行。
带 + 的盾牌 该步骤在上一次运行中已运行。
带 − 的盾牌 该步骤在上一次运行中没有运行。

这三种状态通过形状而不是颜色来区分,盾牌的工具提示还会用文字说明其状态。它会在工作流运行时实时更新,因此无需重新加载画布,就能看到运行到达某个关卡。

可以在条件检查部分根据需要添加任意数量的条件。添加时,最好为它们起一个有用的名称,以便日后轻松找到这些条件。

添加条件后,在左侧选中它,右侧即可编辑该条件的评估标准。

要重命名条件,请选中它,然后编辑右侧配置面板顶部的名称字段,或双击列表中的该条件。也可以右键单击条件,选择重命名和删除;删除也可以通过列表上方的“−”按钮使用。

未选择条件类型的条件(例如从旧版或导入的工作流中带来的条件)无法被评估。它会被视为未满足,因此步骤会被跳过,并且步骤的消息会说明该条件没有指明要检查什么。请打开该条件,并选择它应检查的内容。

检查变量条件时,必须填写 Value Check Parameters 部分,才能进行比较。

在 Variable or Table Field 中填写变量名。选择比较类型并输入比较值。

如果条件检查的是表是否有行或为空,还需要在表数据选择选项卡中定义该表。

表存在条件仅在表已在仓库中创建时运行步骤,或仅在表尚未创建时运行步骤。它从不读取表的行,并且写入了零行的表也算存在。与项目中任何表都不匹配的表名视为缺失。可以用它在首次运行时构建表,之后不再改动,也可以用它跳过读取某个前序步骤可能尚未创建的表的步骤。

这两种检查类型是 radio_table_exists 和 radio_table_not_exists。选取表的方式与基本表条件相同。请通过 AI 助手或 REST API 设置该条件;条件检查选项卡目前尚未列出它。

使用高级表条件时,必须填写 Value Check Parameters 部分,才能进行比较。

在 Variable or Table Field 中填写表选择中的字段名。选择比较类型并输入比较值。

在表数据选择选项卡中,选择表并填写数据映射部分,其中至少要包含条件比较所引用的字段。

如果条件检查的是文件是否存在,则需要在文档路径选项卡中选择文档账户并指定要检查的文档路径。该路径下的文件夹视为缺失,因为检查的对象是文件。

对于日期或时间选择,如果需要组合多个条件,可以添加多个条件。例如,如果只想让某个步骤在星期一凌晨 2:05 运行,则需要创建三个条件:

  • 星期几条件设置为星期一 (1)
  • 一天中的小时设置为 2
  • 一小时中的分钟设置为 5

每个日期和时间条件都带有自己的时区偏移,以整小时偏移量列出,并以具有代表性的时区命名,例如 Eastern Time (US & Canada) (UTC -5) 或 Asia/Tokyo (UTC +9)。您输入的时间会与该时区的时钟进行比较。

新条件默认使用浏览器报告的偏移量,因此在大多数情况下无需更改。当计划所属的地点不是您所在的地方时,请有意设置,例如按财务团队的时钟运行的结账。仅提供整小时的偏移量,因此半小时时区(如印度 (UTC +5:30))必须四舍五入到最接近的整小时。

在此设置生效之前保存的条件,在您为其选择时区之前,会继续按 UTC 评估,因此现有条件的行为与以往完全一致。

对于使用财务结账 Workday,计数从每月 1 日的 0 开始,正如字段旁边的提示所说。因此,在每月第 5 天关账应为 4,而不是 5。

连接到您工作区的 AI 助手可以为您添加和更改步骤的条件,无论是在创建步骤时还是编辑现有步骤时。前面介绍的每种条件类型它都可以使用,检查 Workday 财务关账除外:助手可以写入该条件,但它永远不会匹配,因此助手会向您发出警告,而不是任由其悄悄通过。该条件请您自行在条件选项卡上设置。

有三点与手动编辑条件不同:

  • 每次都会替换整个列表。 要求添加或更改一个条件时,助手会发送完整的列表,因此它遗漏的任何条件都会被移除。如果不确定它是否包含了全部条件,请让它在写入前先列出该步骤当前的条件。
  • 无法评估的条件会被拒绝。 未说明检查内容的条件会被拒绝而不是保存,并且步骤保留其原有的条件。请修正请求后重新提出。
  • 不完整的条件会被保存,并附带警告。 缺少比较值的条件,或在未勾选运行前检查条件的情况下添加的条件,会被存储,并作为警告报告回来。请打开条件选项卡并完成它们,否则步骤不会按您的要求运行。

AI 助手还可以设置步骤的锁定、它在管理者和探索者视图中的可见性、重试设置,以及出错时转到的步骤。