查看 Application Integration 支持的连接器

“针对每一个循环”任务

通过 For Each 循环任务,您可以从当前(主)集成反复调用子集成。该任务会遍历配置的数组变量,并针对数组中的每个元素调用子集成。子集成的调用次数等于数组变量的大小。

API 触发器 ID集成名称标识您要运行的子集成。

该任务还可让您从每个子集成运行中收集响应,并将值存储在当前集成中,以便在下游任务中使用。您可以使用以下任一方法收集响应:

  • 整理数组变量中每次运行的响应,其中数组的每个元素都有一次特定运行的响应。如需整理响应,请配置 Collect values from sub-integration output(s) 属性。
  • 将所有运行的响应汇总到一个变量中。如需汇总响应,请配置 Response parameter override mapping 属性。

准备工作

配置属性

下表介绍了 For Each 循环任务的配置属性。

属性 数据类型 说明
API Trigger ID 字符串 要运行的子集成的触发器 ID。

此值可在子集成中的 API 触发器触发器 ID 字段中找到。

Integration name 字符串 要运行的子集成的名称。
List to iterate 类型为 Boolean、String、Integer、Double 或 JSON 的数组。 子集成应运行的值列表。为列表中的每个值逐一运行子集成。

您可以通过设置迭代元素子集成映射属性,将迭代值传递给子集成。在此属性中,指定必须将迭代值映射到子集成中的变量。

Iteration element sub-integration mapping 必须为其分配当前迭代元素的子集成中的变量。
Map to additional sub-integration input(s) 从当前集成传递到子集成的其他值。

此属性的值采用键值对的形式,其中键为当前集成中的变量,值为子集成中的相应输入变量。例如,假设您的主集成具有 productID 变量,并要将此变量映射到 subIntProductID 子集成变量;您可以从要从中映射的集成变量 (Integration variable to map from) 下拉列表中选择 productID,然后在要映射到的子集成输入 (Subintegration input to map to) 下拉列表中选择 subIntProductID

Collect values from sub-integration output(s) 整理子集成运行的结果。

每次子集成运行时,您都可以将子集成的输出存储在当前集成的数组变量中。从要从中收集的子集成输出 (Sub-integration output to collect from) 下拉列表中选择子集成的输出变量,然后从要收集到的集成变量 (Integration variable to collect into) 下拉列表中选择当前集成中的数组变量。数组的每个元素都有一次特定子集成运行的响应。例如,如果数组变量为 resultsArray,则 resultsArray[0] 具有第一次运行的响应,而 resultsArray[1] 具有第二次运行的响应。

Response parameter override mapping 读取子集成运行的输出变量,并将其存储在当前集成的变量中。

要从中映射的子集成输出 (Sub-integration output to map from) 下拉列表中选择子集成的输出变量,然后从要替换的集成变量 (Integration variable to override) 下拉列表中选择当前集成中的相应变量。您可以通过在映射到其他子集成输入 (Map to additional sub-integration input(s)) 属性中映射当前集成中已替换的变量,将其发送到下一次子集成运行。因此,您可以聚合子集成运行的响应。

Loop metadata JSON 数组 包含子集成的执行详情(例如执行期间传递的子集成执行 ID、错误消息和变量值)的输出变量。循环元数据包含变量,其中包括以下输出变量:current_iteration_countsub_integration_execution_idsfailure_locationcurrent_elementiteration_elementfailure_message

示例

以下部分提供了详细示例,说明如何在特定场景中配置和使用 For Each 循环任务。以下示例展示了不同用例的配置步骤:

迭代并传递每个元素

假设您有一个主集成,其中包含一个名为 productIds 的数组变量,该变量包含 ["P1", "P2", "P3"] 等值。如需针对每个商品 ID 调用名为 GetProductDetails 的子集成,请按如下方式配置“For Each 循环”任务:

  • 要迭代的列表设置为 productIds
  • 设置迭代元素子集成映射,以将 productIds 的当前元素映射到 GetProductDetails 中的变量(例如 subIntProductId)。

然后,GetProductDetails 的每次执行都会从 productIds 接收一个商品 ID。

收集子集成输出

与上一个示例一样,假设 GetProductDetails 在名为 productInfo 的输出变量中返回一个 JSON 对象。

如需收集每次子集成执行的所有 productInfo 输出,并将其存储为主集成中数组变量的元素,请执行以下操作:

  • 配置从子集成输出收集值
  • 要从中收集的子集成输出中选择 productInfo
  • 要收集到的集成变量中选择主集成中的一个数组变量,例如 allProductDetails

循环完成后,allProductDetails 是一个数组,其中每个元素都是一次子集成执行的 productInfo JSON。

汇总结果(含响应替换)

假设您有一个主集成,它会针对列表中的每个商品调用一个子集成(例如 GetProductDetails),并且您想要计算所有商品的总价。对每次子集成执行返回的数值求和:

  • 确保子集成在输出变量 itemPrice 中返回一个值。
  • 在主集成中,将 totalPrice 变量初始化为 0
  • 配置响应参数替换映射
    • itemPrice(来自子集成)映射到 totalPrice(在主集成中)。
  • 映射到其他子集成输入部分中:
    • totalPrice(来自主集成)映射到子集成中的输入变量,例如 currentTotal
  • 在子集成的逻辑中,将当前商品的价格添加到从主集成收到的 currentTotal 中。然后,在名为 itemPrice 的输出变量中返回这个新总和。此过程会创建累积聚合。

传递其他输入

如果子集成 GetProductDetails 需要主集成的 currency 代码,则:

  • 映射到其他子集成输入部分中:
    • 将主集成变量 currencyCode 映射到子集成输入变量 subIntCurrency
  • currencyCode 会传递给子集成的每次执行。

如需了解实用且分步的指南以及前面部分中讨论的概念的可执行示例,请探索以下集成示例:

最佳做法

如需了解适用于 For Each Loop 任务的用量限额,请参阅用量限额

错误处理策略

任务的错误处理策略指定当任务因暂时性错误而失败时要执行的操作。如需了解如何使用错误处理策略,以及了解不同类型的错误处理策略,请参阅错误处理策略

配额和限制

如需详细了解配额和限制,请参阅配额和限制

后续步骤