跳转至

子工作流转换#

功能可用性

从 n8n 版本 1.97.0 开始,在所有计划中可用。

使用子工作流转换将您的工作流重构为可重用的部分。引用其他节点的表达式会自动更新,并作为参数添加到执行工作流触发器节点中。

请参阅子工作流了解概念的一般介绍。

为子工作流选择节点#

要将工作流的一部分转换为子工作流,您必须在原始工作流中选择要转换的节点。

通过选择一组有效节点来实现。选择必须是连续的,并且必须最多从一个开始节点和一个结束节点连接到工作流的其余部分。选择必须满足以下条件:

  • 不得包含触发器节点。
  • 选择中只有一个节点可以有来自选择外部节点的传入连接。
    • 该节点可以有多个传入连接,但只有一个输入分支(这意味着它不能是合并节点)。
    • 该节点不能有来自选择中其他节点的传入连接。
  • 选择中只有一个节点可以有到选择外部节点的传出连接。
    • 该节点可以有多个传出连接,但只有一个输出分支(它不能是条件节点)。
    • 该节点不能有到选择中其他节点的传出连接。
  • 选择必须包含输入和输出节点之间的所有节点。

如何将工作流的一部分转换为子工作流#

在画布上选择所需的节点。右键单击画布背景并选择转换为子工作流

注意事项#

大多数子工作流转换都能正常工作,但需要记住一些注意事项和限制:

  • 必须手动设置输入和输出的类型约束:默认情况下,子工作流输入和输出允许所有类型。您可以在子工作流的执行子工作流触发器节点编辑字段(设置)节点中设置预期类型(标记为返回,仅在子工作流有输出时包含)。
  • 对 AI 节点的有限支持:处理 AI 工具等子节点时,您必须全部选择它们,并且在转换前可能需要复制与其他 AI 代理共享的任何节点。
  • 使用 v1 执行顺序:新工作流使用v1执行顺序,无论父工作流的设置如何——您可以在设置中更改回来。
  • first()last()all()这样的访问器函数需要特别注意:使用这些函数的表达式不总是能完全转换到子工作流上下文。n8n 可能会转换它们以尝试保持其功能,但您应该检查它们在新上下文中是否按预期工作。

    子节点参数后缀

    n8n 为这些函数访问的变量名添加后缀,如_firstItem_lastItem_allItems。这有助于保持原始表达式的信息,因为在子工作流上下文中项目排序可能不同。

  • itemMatching函数需要固定索引:使用itemMatching函数时,您不能为索引值使用表达式。您必须传递一个固定数字。
此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持