UiPath Documentation
maestro
latest
false
Maestro 用户指南
重要 :
新发布内容的本地化可能需要 1-2 周的时间才能完成。

循环

“循环”节点,用于使用“并行”和“中断”选项对集合进行迭代。

操作

遍历集合,并为每个项目在循环主体中运行节点一次。

何时使用此选项

当您有一组项目需要处理时,例如 API 返回的记录列表、文件列表或 ID 列表,请使用“循环”。该循环为每个项目运行一次,并在集合耗尽时停止。

若要在集合用尽之前退出,请使用符合条件的中断或中断句柄,如下所述。

配置参考

字段必填默认描述
集合要迭代的数组。输入解析为数组的表达式,例如$vars.listCustomers1.output
并行关闭同时运行所有迭代,而不是逐个运行。如果关闭,循环将按顺序运行,等待每次迭代完成后再开始下一次迭代。
满足条件时中断在迭代完成后,当表达式变为true时提前退出循环。这适用于顺序循环。
显示中断处理程序关闭向循环添加一个中断句柄,以便正文内的节点可以提前退出循环。将节点的输出连接到中断句柄,以停止从正文内部迭代。
备注:

顺序迭代可以保留顺序,并且是“按条件中断”发挥作用所必需的,因为系统会在每次迭代完成后检查条件。并行迭代不按有保证的顺序运行。

循环主体

将节点拖动到循环边界内,以将其添加到主体。正文中的节点可以读取当前项目和迭代,以及循环外作用域内的任何变量。

当前项目和迭代

在正文中,使用以下表达式引用循环的进度:

  • $vars.<loopName>.currentItem是当前迭代的项目。使用点标记访问其字段,例如$vars.loop1.currentItem.id
  • $vars.<loopName>.currentIteration是当前迭代编号,从1开始。

这些仅在循环主体内可用。

输出

完成所有迭代后,可在$vars.<loopName>.output中获取循环的聚合结果。然后,从循环后面的节点继续执行。

在循环主体之外无法访问currentItemcurrentIteration

示例

示例 1 — 为每个项目调用 API

循环对$vars.listCustomers1.output进行迭代。循环正文包含一个 HTTP 请求节点,其 URL 为:

https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}

示例 2 — 构建跨迭代的结果数组

循环主体中的“脚本”节点为每个项目返回一个值。以下循环将每次迭代的结果收集到$vars.loop1.output中:

return { id: $vars.loop1.currentItem.id, processed: true };
return { id: $vars.loop1.currentItem.id, processed: true };

在循环后, $vars.loop1.output是这些结果的数组。

示例 3 — 找到匹配项后尽早停止

循环主体中的“决策”节点会检查当前项目。启用“显示中断句柄”后,决策的匹配分支将连接到循环的中断句柄,以便在找到匹配项后立即停止迭代。

常见问题

循环主体从不运行。集合为空或undefined 。在执行追踪记录中检查上游节点的输出,以确认数组包含项目。空集合会跳过正文,在循环后继续。

永远不会在并行循环中触发符合条件的中断。系统会在每次迭代按顺序完成后评估“符合条件的中断”条件,因此适用于顺序循环。如果需要在运行条件下中断,请关闭“并行”

在正文中编辑集合不会更改迭代的内容。循环开始时捕获集合。修改正文中的数组变量不会更改要迭代的项目。这是设计使然。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新