# n8n 子工作流教程

原创虚构输入与人工预期输出。未运行产品实例、未调用模型、未外发或发布。config.json 为字段教材，不是可导入 n8n/Dify/Flowise/Langflow 工作流。

## 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 选择刚保存的子流程。官方文档说明该选择方式会显示子流程输入字段，逐一映射当前项。

## 4. 每个发票项独立传入
先选 Run once for each item，并等待子流程完成。不要将一组数组误放到单条 amount，也不要靠数组下标把结果重新配对，始终保留发票 ID。

## 5. 检查三条返回值
12.30 对应 1230，0.05 对应 5，EUR 返回 null 和 review_currency。使用整数小单位减少字符串格式差异，但负数、千位符等额外格式需另定义规则。

## 6. 复用同一子流程并回溯执行
让第二个测试父流程提交相同 ID 与金额，结果应一致。查看父子执行链接确认来源；本页教材 JSON 描述契约，未做 n8n 实例导入。

## 离线验收
运行 python3 check-fixture.py，仅检查固定输入与人工预期关系，不验证真实模型、产品节点或工作流执行。

## 官方来源
- [n8n 官方：Execute Sub-workflow](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow)