展开本页目录
开始前准备什么
- 准备本篇使用的 n8n 子工作流教程 环境;当前入口与版本参照文末官方来源。
- 将本页下载包解压到独立练习目录,先读原始输入与 README。
- 只运行对应步骤所需依赖;离线检查与目标产品运行分别记录。
- 确定父子工作流的输入契约
- 建立子工作流触发入口
- 在父工作流按列表选择子流程
- 每个发票项独立传入
- 检查三条返回值
- 复用同一子流程并回溯执行
1. 确定父子工作流的输入契约
本练习只处理 USD,不做汇率兑换。输入 amount 是十进制字符串,输出 cents 是整数,invoice_id 是不可丢失的对账键;EUR 保留为待复核。
2. 建立子工作流触发入口
新建子工作流,使用 Execute Sub-workflow Trigger 定义三项输入。添加 Code 节点做定点金额转换,最后输出统一的 invoice_id、cents、status。
3. 在父工作流按列表选择子流程
添加 Execute Sub-workflow,Source 选 Database,From list 选择刚保存的子流程。官方文档说明该选择方式会显示子流程输入字段,逐一映射当前项。
config.json · 字段教材,不可作为工作流导入
{
"child_trigger": "Execute Sub-workflow Trigger",
"input_fields": [
"invoice_id",
"currency",
"amount"
],
"parent_node": "Execute Sub-workflow",
"Source": "Database",
"Mode": "Run once for each item",
"Wait for Sub-Workflow Completion": true,
"output_fields": [
"invoice_id",
"cents",
"status"
]
}4. 每个发票项独立传入
先选 Run once for each item,并等待子流程完成。不要将一组数组误放到单条 amount,也不要靠数组下标把结果重新配对,始终保留发票 ID。
5. 检查三条返回值
12.30 对应 1230,0.05 对应 5,EUR 返回 null 和 review_currency。使用整数小单位减少字符串格式差异,但负数、千位符等额外格式需另定义规则。
6. 复用同一子流程并回溯执行
让第二个测试父流程提交相同 ID 与金额,结果应一致。查看父子执行链接确认来源;本页教材 JSON 描述契约,未做 n8n 实例导入。
7. 下载教材并运行离线核对
先下载完整教材包并解压,在材料目录运行 python3 check-fixture.py。脚本只读取原创输入、人工预期与配置,对照本页固定验收条件;通过说明材料内部关系一致,实际产品、模型与业务写入另需按前六步验证。
bash
unzip lesson.zip -d n8n-subworkflow-currency-normalization
cd n8n-subworkflow-currency-normalization
python3 check-fixture.py怎样确认已经完成
- 每个返回项有原 invoice_id。
- USD 小数严格两位并正确转换 cents。
- 非 USD 项进入 review_currency,不套用汇率。
常见问题
子工作流就是复制节点吗?
不是。父流程通过 Execute Sub-workflow 调用独立已保存流程;输入契约和返回项使多处调用能够共用同一实现。
可以直接下载 config.json 导入吗?
不可以。它是字段与验收教材,缺少 n8n workflow 的节点结构、连接和实例 ID,按步骤在自己的实例搭建。

