跳到主要内容

Execute Sub-workflow Trigger(执行子工作流触发器) 节点

使用此节点,响应另一个工作流的调用来启动工作流。它应作为工作流的第一个节点。

n8n 允许从一个工作流调用其他工作流,适用于以下需求:

  • 复用工作流:例如,多个工作流分别从不同来源获取并处理数据,再共同调用一个用于生成报告的工作流。
  • 将大型工作流拆分为更小的组件。

用法 ​

此节点响应 Execute Sub-workflow 或 Call n8n Workflow Tool 节点的调用而运行。

创建子工作流 ​

  1. 创建一个新工作流。

    从现有工作流创建子工作流

    也可以使用 Execute Sub-workflow 节点,直接从现有父工作流创建子工作流。在节点中选择 Database(数据库) 和 From list(从列表选择) 选项,再在列表中选择 Create a sub-workflow(创建子工作流)。

    还可以通过上下文菜单中的 Sub-workflow conversion(子工作流转换),直接提取选中的节点。

  2. 可选:配置哪些工作流可以调用此子工作流:

    1. 选择 Options(选项) 选项菜单 菜单 > Settings(设置)。n8n 会打开 Workflow settings(工作流设置) 弹窗。
    2. 更改 This workflow can be called by(允许调用此工作流的工作流) 设置。有关配置工作流的更多信息,请参阅工作流设置。
  3. 添加 Execute Sub-workflow 触发器节点(在触发器节点中搜索时,也称为 When Executed by Another Workflow)。

  4. 设置 Input data mode(输入数据模式),选择如何定义子工作流的输入数据:

    • Define using fields below(使用下方字段定义):选择此模式,逐项定义调用方工作流需要提供的输入名称和数据类型。调用方工作流中的 Execute Sub-workflow 节点或 Call n8n Workflow Tool 节点会自动获取此处定义的字段。
    • Define using JSON example(使用 JSON 示例定义):选择此模式,提供一个 JSON 对象示例,展示预期的输入数据项及其类型。
    • Accept all data(接受所有数据):选择此模式,无条件接受所有数据。子工作流不会定义任何必需输入项,必须自行处理输入不一致或值缺失的情况。
  5. 根据需要添加其他节点,实现子工作流功能。

  6. 保存子工作流。

信息

子工作流不得包含错误

如果子工作流存在错误,父工作流将无法触发它。

信息

构建前先向子工作流加载数据

此操作需要加载以往执行数据的功能,n8n Cloud 和已注册的 Community 套餐支持此功能。

如果希望向子工作流加载数据,在构建时使用:

  1. 创建子工作流并添加 Execute Sub-workflow Trigger。
  2. 将节点的 Input data mode(输入数据模式) 设为 Accept all data(接受所有数据);如果输入项已确定,也可以通过字段或 JSON 定义。
  3. 在子工作流设置中,将 Save successful production executions(保存成功的生产执行) 设为 Save(保存)。
  4. 先跳至设置父工作流的步骤,并运行父工作流。
  5. 按照步骤加载以往执行的数据。
  6. 如有需要,调整 Input data mode(输入数据模式),使其与父工作流发送的输入一致。

现在可以在触发器节点中固定示例数据,以便在配置工作流其余部分时使用真实数据。

调用子工作流 ​

  1. 打开要从中调用子工作流的工作流。

  2. 添加 Execute Sub-workflow 节点。

  3. 在 Execute Sub-workflow 节点中设置要调用的子工作流。可以按 ID 调用、从本地文件加载工作流、将工作流 JSON 作为节点参数添加,或通过 URL 指定工作流。

    查找工作流 ID

    子工作流的 ID 是其 URL 末尾由字母和数字组成的字符串。

  4. 填写子工作流定义的必需输入项。

  5. 保存工作流。

工作流执行时,会将数据发送给子工作流,并运行子工作流。

要从父工作流跟踪到子工作流的执行流程,可以打开 Execute Sub-workflow 节点,选择 View sub-execution(查看子执行) 链接。同样,子工作流的执行记录中也包含返回父工作流执行记录的链接,方便反向查看。

模板与示例 ​

浏览 Execute Sub-workflow Trigger(执行子工作流触发器) 集成模板,或搜索所有模板

工作流之间如何传递数据 ​

例如,假设 Workflow A(工作流 A) 中有一个 Execute Sub-workflow 节点,该节点调用另一个名为 Workflow B(工作流 B) 的工作流:

  1. Execute Sub-workflow 节点将数据传递给 Workflow B 的 Execute Sub-workflow Trigger 节点(在画布上名为“When executed by another node”)。
  2. Workflow B 的最后一个节点将数据返回给 Workflow A 中的 Execute Sub-workflow 节点。
本文为社区中文翻译。查看对应英文原文