Execute Sub-workflow 执行子工作流#
使用 Execute Sub-workflow 节点在运行 n8n 的主机上运行不同的工作流。
节点参数#
Source 来源#
选择节点应从何处获取子工作流的信息:
- Database 数据库:选择此选项从数据库按 ID 加载工作流。您还必须输入以下之一:
- From list 从列表:从您帐户可用的工作流列表中选择工作流。
- Workflow ID 工作流 ID:输入工作流的 ID。工作流的 URL 在
/workflow/
后包含 ID。例如,如果工作流的 URL 是https://my-n8n-acct.app.n8n.cloud/workflow/abCDE1f6gHiJKL7
,Workflow ID 工作流 ID 是abCDE1f6gHiJKL7
。
- Local File 本地文件:选择此选项从本地保存的 JSON 文件加载工作流。您还必须输入:
- Workflow Path 工作流路径:输入您希望节点执行的本地 JSON 工作流文件的路径。
- Parameter 参数:选择此选项从参数加载工作流。您还必须输入:
- Workflow JSON 工作流 JSON:输入您希望节点执行的 JSON 代码。
- URL:选择此选项从 URL 加载工作流。您还必须输入:
- Workflow URL 工作流 URL:输入您要从中加载工作流的 URL。
Workflow Inputs 工作流输入#
如果您使用database 数据库和From list 从列表选项选择子工作流,子工作流的输入项目将自动显示,准备供您填写或映射值。
您可以选择删除请求的输入项目,在这种情况下子工作流将接收 null
作为该项目的值。您还可以启用Attempt to convert types 尝试转换类型以尝试自动将数据转换为子工作流项目请求的类型。
如果子工作流的 Workflow Input Trigger 节点使用"接受所有数据"输入数据模式,则不会显示输入项目。
Mode 模式#
使用此参数控制节点的执行模式。从这些选项中选择:
- Run once with all items 使用所有项目运行一次:将所有输入项目传递到节点的单次执行中。
- Run once for each item 为每个项目运行一次:依次为每个输入项目执行节点一次。
节点选项#
此节点包括一个选项:Wait for Sub-Workflow Completion 等待子工作流完成。这让您控制主工作流是否应该等待子工作流完成后再继续下一步(打开),或者主工作流是否应该不等待继续(关闭)。
模板和示例#
设置和使用子工作流#
本节介绍如何设置父工作流和子工作流。
创建子工作流#
-
创建一个新的工作流。
-
可选:配置哪些工作流可以调用子工作流:
- 选择选项
菜单 > 设置。n8n 打开工作流设置模态框。
- 更改此工作流可被调用者设置。有关配置工作流的更多信息,请参阅工作流设置。
- 选择选项
- 添加执行子工作流触发器节点(如果您在触发器节点下搜索,此节点也标题为当被另一个工作流执行时)。
- 设置输入数据模式以选择如何定义子工作流的输入数据:
- 使用下面的字段定义:选择此模式可定义调用工作流需要提供的单个输入名称和数据类型。调用工作流中的执行子工作流节点或调用 n8n 工作流工具节点将自动拉取此处定义的字段。
- 使用 JSON 示例定义:选择此模式可提供一个示例 JSON 对象,演示预期的输入数据项及其类型。
- 接受所有数据:选择此模式可无条件接受所有数据。子工作流不会定义任何必需的输入数据项。此子工作流必须处理任何输入不一致或缺失值。
- 根据需要添加其他节点以构建您的子工作流功能。
- 保存子工作流。
子工作流不得包含错误
如果子工作流中存在错误,父工作流无法触发它。
在构建前将数据加载到子工作流中
这需要能够从以前的执行中加载数据,这在 n8n 云服务和注册的社区计划中可用。
如果您想将数据加载到子工作流中以便在构建时使用:
- 创建子工作流并添加执行子工作流触发器。
- 将节点的输入数据模式设置为接受所有数据,或者如果已知输入数据项,则使用字段或 JSON 定义输入数据项。
- 在子工作流设置中,将保存成功的生产执行设置为保存。
- 跳到设置父工作流,并运行它。
- 按照步骤从以前的执行中加载数据。
- 如有必要,调整输入数据模式以匹配父工作流发送的输入。
现在您可以在触发器节点中固定示例数据,使您能够在配置工作流的其余部分时使用真实数据。
调用子工作流#
- 打开您想要调用子工作流的工作流。
- 添加执行子工作流节点。
-
在执行子工作流节点中,设置您想要调用的子工作流。您可以选择通过 ID 调用工作流、从本地文件加载工作流、将工作流 JSON 作为节点中的参数添加,或通过 URL 定位工作流。
查找您的工作流 ID
您的子工作流 ID 是其 URL 末尾的字母数字字符串。
-
填写子工作流定义的必需输入数据项。
- 保存您的工作流。
当您的工作流执行时,它会将数据发送到子工作流并运行它。
您可以通过打开执行子工作流节点并选择查看子执行链接,从父工作流跟踪执行流程到子工作流。同样,子工作流的执行包含返回到父工作流执行的链接,以便在另一个方向导航。
数据如何在工作流之间传递#
例如,假设您在工作流 A 中有一个执行子工作流节点。执行子工作流节点调用另一个名为工作流 B 的工作流:
- 执行子工作流节点将数据传递给工作流 B 的执行子工作流触发器节点(在画布中标题为"当被另一个节点执行时")。
- 工作流 B 的最后一个节点将数据发送回工作流 A 中的执行子工作流节点。