跳转到主要内容

Condition

当你希望工作流根据早前步骤的输出值或起始输入值采取不同路径时,请使用 Condition。Condition 步骤会评估布尔表达式,并将执行路由到 TRUEFALSE 分支。两个分支必须最终在单个合并步骤处重新汇合,工作流才能继续。 当你需要 if/else 逻辑、门控步骤(例如,仅当分数高于阈值时才发送电子邮件)或工作流中的轻量级 A/B 拆分时,请使用此步骤。

配置

选项是否必填说明
Name步骤在工作流画布中的标签。
Condition决定运行哪个分支的布尔表达式。在 Condition builder 中构建为一行或多行,可选地嵌套在 AND / OR / NOT 组中。
Branches rejoin at只读。当两个分支汇合到合并步骤时显示。
Search steps…Utilities 分组添加此步骤。在步骤选择器中,标签为 Condition 当你插入 Condition 时,Fetch Hive 会自动创建一个空的 TRUE 分支和一个空的 FALSE 分支,两者最初都指向原本在插入点之后的步骤。使用每个分支上的 + 控柄从画布中将步骤添加到该分支的一侧。

操作符

Condition builder 支持以下操作符:
  • 分组操作符:ANDORNOT — 组合多行或对子表达式取反。
  • 叶子操作符:
    • equalsdoes not equal
    • >>=<<=
    • containsstarts withends with
    • is one of
    • existsis empty — 仅取一个左操作数

操作数

每个子句将操作数与操作数进行比较(existsis empty 除外,它们仅接受左操作数)。 操作数可以是:
  • 工作流变量 — 点击 Insert Variable 引用起始输入({{variable_name}})或先前步骤的输出({{step_2.output.score}})。
  • 字面值 — 直接在右侧字段中输入字符串、数字、布尔值或数组。

输出

点击步骤标题中的 Run 来测试 Condition。运行完成后,Fetch Hive 会在 Output 中显示评估的布尔结果以及解析的左/右操作数轨迹。 在实际的工作流运行期间,仅执行一个分支——即与布尔结果匹配的那个。该步骤的基础引用为:
{{STEP_IDENTIFIER.output}}
它会为希望引用分支决策本身的后续步骤解析为 truefalse

示例

Search steps…Utilities 分组中添加 Condition Name 设置为类似 Score above threshold 的内容。 Condition builder 中:
  1. 在左操作数上,点击 Insert Variable 并选择 {{step_2.output.score}}
  2. 选择 > 操作符。
  3. 在右操作数上,选择 Literal 并输入 70
点击 Run 以确认表达式按你预期的方式针对最后的测试输出进行评估。然后将“发送电子邮件”步骤添加到画布上的 TRUE 分支中,这样它只会在分数高于 70 时运行。FALSE 分支可以保持为空(它直接汇合到合并步骤),或者你可以添加一条替代路径。

备注

  • 表达式必须在保存前完整。每行都需要左和右操作数(exists / is empty 除外,它们仅取一个左操作数)。
  • 评估器对看起来像数字的字符串比较宽松——比较 "70"70 会按预期工作。
  • 仅当两个分支都为空时才能移除 Condition。移除 Condition 会级联删除 TRUE 和 FALSE 分支内的每个步骤,所以如果你想保留这些步骤,请先清空分支。
  • 两个分支必须汇合到单个合并步骤,工作流才有效。如果分支没有重新汇合,Fetch Hive 会显示警告。
  • Condition 暂不能嵌套在另一个 Condition 分支内。
另见:创建和编辑测试与迭代错误处理