Skip to content

子工作流

您可以从另一个工作流调用一个工作流。这允许您构建模块化、类似微服务的工作流。如果您的工作流规模过大,遇到内存问题,它也能提供帮助。创建子工作流需要使用“执行工作流”“执行子工作流触发器”节点。

子工作流执行不计入您计划的每月执行或活动工作流限制。

设置并使用子工作流程

本节将介绍如何设置父工作流和子工作流。

创建子工作流

  1. 创建新的工作流程。

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

    您可以选择使用“执行子工作流”节点,直接从现有父工作流创建子工作流。在该节点中,选择“数据库”“来自列表”选项,然后在列表中选择“创建子工作流”

    您还可以使用上下文菜单中的子工作流转换直接提取选定的节点。

    1. 选择
    1. “选项”
    1. 菜单 >
    1. “设置”
    1. 。n8n 打开“
    1. 工作流设置
    1. ”模式。
    1. 更改
    1. “此工作流可通过以下方式调用
    ”设置。
    1. 有关配置工作流的更多信息,
    1. 请参阅
    1. “工作流设置”
  2. 添加执行子工作流触发节点(如果您在触发节点下搜索,这也被称为当由另一个工作流执行时)。
  3. 设置输入数据模式以选择如何定义子工作流的输入数据:
    • 使用以下字段定义
    • :选择此模式可定义调用工作流需要提供的各个输入名称和数据类型。
    调用工作流中的
    • 将自动提取此处定义的字段。
    • 使用 JSON 示例定义
    • :选择此模式可提供 JSON 对象示例,演示预期的输入项及其类型。
    • 接受所有数据
    • :选择此模式可无条件接受所有数据。子工作流不会定义任何必需的输入项。此子工作流必须处理任何输入不一致或缺失的值。
  4. 根据需要添加其他节点来构建子工作流功能。
  5. 保存子工作流。

子工作流不得包含错误

如果子工作流出现错误,父工作流就无法触发它。

在构建之前将数据加载到子工作流中

这需要能够加载以前执行的数据,该功能在 n8n Cloud 和注册社区计划中可用。

如果您想要将数据加载到子工作流中以便在构建时使用:

  1. 创建子工作流并添加执行子工作流触发器
  2. 将节点的输入数据模式设置为接受所有数据,或者使用字段或 JSON 定义输入项(如果已知)。
  3. 在子工作流设置中,将“保存成功的生产执行”设置为“保存”
  4. 跳到设置父工作流并运行它。
  5. 按照步骤加载以前执行的数据
  6. 如有必要,调整输入数据模式以匹配父工作流发送的输入。

您现在可以在触发节点中固定示例数据,从而能够在配置其余工作流程时使用真实数据。

调用子工作流

  1. 打开您想要调用子工作流的工作流。
  2. 添加执行子工作流节点。
  3. “执行子工作流”节点中,设置要调用的子工作流。您可以选择通过 ID 调用工作流、从本地文件加载工作流、在节点中添加工作流 JSON 作为参数,或通过 URL 定位工作流。

    查找您的工作流程 ID

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

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

  5. 保存您的工作流程。

当你的工作流执行时,它会将数据发送到子工作流,并运行它。

您可以通过打开“执行子工作流”节点并选择“查看子执行”链接,跟踪从父工作流到子工作流的执行流程。同样,子工作流的执行包含一个指向父工作流执行的链接,以便反向导航。

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

举个例子,假设在工作流 A中有一个执行子工作流节点。该执行子工作流节点调用另一个名为工作流 B的工作流:

  1. 执行子工作流节点将数据传递给工作流 B的执行子工作流触发节点(在画布中标题为“由另一个节点执行时”) 。
  2. 工作流 B的最后一个节点将数据发送回工作流 A中的执行子工作流节点。

子工作流转换

请参阅子工作流转换,了解如何将现有工作流划分为子工作流。