- 简介
- 入门指南
- 可在任何画布上构建
- 使用案例构建
- 使用流构建
- Build with BPMN
- 运营
- 监控
- 正在优化
- 参考信息
控制流程
控制分支(决策、切换)、迭代(循环)和合并路径的流程节点,以管理流程的执行顺序。
内容概览
控制流决定您的流程如何决定执行什么内容以及以什么顺序。每个流程都从直线节点开始,但实际工作需要决策、重复和统一。流提供四个控制流节点——“决策”、“切换”、“循环”和“合并”——这些节点让您无需离开画布即可进行分支、迭代和聚合。
分支
分支将流程拆分为单独的路径,以便根据条件运行不同的节点。
决策 — 两条路径
决策节点对单个 JavaScript 表达式进行评估,并路由到两个输出之一:true 或 false。它适用于是/否、通过/失败或任何二进制检查。
$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200
上面的表达式向 true 分支发送成功响应,向 false 分支发送其他所有响应。
有关完整配置,请参阅“决策节点参考” 。
切换 — 三个或更多路径
“切换”节点对案例表达式的排序列表进行求值,并获取第一个匹配项。最多添加十个案例,并为任何不匹配的内容添加可选的默认分支。
Switch 适合按类别、状态或任何具有两种以上可能结果的值进行路由。
有关完整配置,请参阅切换节点参考。
循环
循环多次重复一系列节点。Flow 针对不同情况提供了两个循环节点。
循环 (遍历循环)
循环节点对集合(数组)进行迭代,并为每个项目执行一次其主体。它在循环主体中公开了三个变量:
currentItem— 当前迭代的项目currentIndex— 从零开始的索引,跟踪正在运行的迭代collection— 正在迭代的完整数组
完成所有迭代后,“循环”会生成一个output数组,用于聚合每次迭代的结果。从成功句柄中继续执行。
循环节点的集合表达式指向它遍历的数组,例如$vars.script1.output 。“并行”选项同时运行所有迭代,而不是按顺序运行。连接到循环输出句柄的节点构成循环主体,连接到成功句柄的节点将在所有迭代完成后运行。
Exit a loop early
A Loop node offers two ways to stop before it reaches the end of the collection:
- Break on condition is an expression that the loop checks after each iteration completes. When it's
true, the loop stops, and the process continues after the loop. Because the check happens after each iteration in order, it works only in sequential loops. - The break handle appears inside the loop when Show break handle is on. When a path in the loop body reaches it, the loop stops iterating. The break handle is available in both sequential and parallel loops. Use it when a node in the body makes the decision, for example a Decision that finds the item you're looking for.
Loop describes both settings, with an example.
合并分支
在“决策”或“切换”拆分流程后,如果无论采用哪个分支,都必须运行下游节点,请使用“合并”节点。
“合并”节点接受其单个输入句柄上的多个传入边缘并生成一个输出。每个分支的最后一个节点都连接到合并分支,流程从合并输出句柄继续。
“合并”等待实际执行的分支 — 它不会等待所有传入的边缘。只有在当前运行期间接收到数据的分支才会通过。
实际示例
考虑一个流程,该流程获取支持工单列表,遍历每个工单,并以不同于其他工单的方式路由高优先级工单。
该流程将五个节点连接在一起:
- “HTTP 请求”节点调用工单 API 并返回工单对象数组。
- 循环节点遍历
$vars.httpRequest1.output.body.tickets。 - 在循环主体内,决策节点对
$vars.loop1.currentItem.priority === "high"进行评估。true 分支连接到“发送电子邮件”节点,该节点会警示 on-call 团队; false 分支连接到脚本节点,该节点会记录工单以供日后查看。 - “合并”节点连接两个分支,因此无论运行哪条路径,迭代都会干净完成。
- “合并”连接回循环的“环回”输入,而“循环”的成功句柄将用于流程的其余部分。
这种模式(获取、循环、分支、合并)涵盖了大部分实际自动化场景。
相关页面
- 决策节点— 双路径分支的完整配置参考
- 切换节点— 多路径分支的完整配置参考
- 变量和数据流—
$vars表达式和节点输出的工作原理 - Error Processing — 处理失败,不同于条件分支
- 画布— 直观导航和构建流程