领星加工单到金蝶组装单:一条生产同步链路在轻易云上的落地
这个策略解决什么问题
工厂端在领星 ERP 里跑加工单,财务和库存归集口径却在金蝶云星空。两边一旦断流,月末成本、库存账实对不齐。
我们用轻易云数据集成平台(Qeasy)承做的是一条「领星-加工单 → 金蝶-组装单」的增量同步链路:每天定时把领星已完成的加工单,按时间窗取过来,落成金蝶的组装拆卸单。表头带单据编号、库存组织、单据类型、事务类型;表体带子件、成品、数量、仓库。
它的价值不在「传得通」,而在「传得稳——不重不漏、可追可对」。
数据流向与字段映射
链路分三层:源(领星)→ 中间层(轻易云)→ 目标(金蝶)。
源端关键入参(领星接口 /erp/sc/routing/inventoryReceipt/StorageProcess/getOrderLists,POST + QUERY):
| 入参字段 | 含义 | 取值 |
|---|---|---|
| type | 单据类型 | 1=加工单 |
| status | 加工状态 | 2=已完成 |
| search_field_time | 时间维度 | finish_time |
| start_date | 开始时间 | `{{LAST_SYNC_TIME |
| end_date | 结束时间 | `{{CURRENT_TIME |
| offset / length | 分页 | 由轻易云自动管理 |
目标端关键出参(金蝶 batchSave,POST + EXECUTE):
| 目标字段 | 含义 | 来源/值 |
|---|---|---|
| FBillNo | 单据编号 | {{process_sn}} |
| FStockOrgId | 库存组织 | {{wid}} |
| FBillTypeID | 单据类型 | 固定 ZZCX01_SYS |
| FAffairType | 事务类型 | 固定 Assembly |
| FSubProOwnerIdH | 子件货主 | {{wid}} |
| FSubProOwnTypeIdH | 子件货主类型 | 组织 |
表体(FEntity)按子件行展开,数量、单位、仓库、BOM 版本号由领星明细直接映射。轻易云这边推荐编码映射集中管理——把组织、仓库、成品/子件编码做成一张映射表,未来某制造企业要新增工厂,只改表不挪代码。
在轻易云上如何配置
进入 Qeasy 控制台,一条策略对应一个「集成方案」。要点:
- 源平台选领星 ERP,配置好授权;目标平台选金蝶云星空,账号提前在金蝶里建好并赋权组装单。
- 源接口按上面的入参填好,
start_date / end_date用平台内置的{{LAST_SYNC_TIME|date}}、{{CURRENT_TIME|date}}变量,不写死。 - 目标接口选
batchSave,固定值字段(单据类型、事务类型)直接写常量;动态字段做映射。 - 字段映射走可视化拖拽为主、脚本兜底:复杂逻辑(如日期格式、单位换算、子件行拆行)写 JS 脚本。
- 运行设置勾上去重键=
FBillNo、幂等写入=开,单据编号冲突直接跳过不报错。 - 告警配邮件/企微:失败重试 3 次后触发,附源单号和错误码。
实施步骤
我们建议分三阶段跑,避免一上来就全量:
第一阶段:增量起点
先确定 LAST_SYNC_TIME 的初始值。一般做法是往前推 30 天,写死到策略变量里。首次跑全量补数据,第二次起进入增量。
第二阶段:全量触发(可选) 如果历史跨度大、需补单,独立加一个一次性全量任务,跑完后停掉,不要让全量和增量同时跑——这是典型的翻车点。
第三阶段:调度频率稳定运行
领星源 cron 配 30 10 * * *(每天 10:30 拉昨日完成单),金蝶目标 cron 配 30 12 * * *(每天 12:30 写入)。两小时间隔留足缓冲,金蝶端批量审核、排错都用得上。
跑通一周后回头看日志:错误率、单据量、耗时,确认稳定再交接运维。
踩坑复盘
- 「时间窗取错维度」:用
create_time抓「已完成」会漏单;一定要按finish_time,且加工状态固定传 2。 - 「目标端单据类型写错」:金蝶组装拆卸有多个单据类型,ZZCX01_SYS 是标准组装,写错一个字母直接驳回。
- 「全量和增量撞车」:补历史时开两个并发任务,结果同一张单写了两次;稳妥的做法是分阶段、补完再切增量。
- 「子件行拆行漏写」:领星一个加工单可能带多个子件,映射时只取第一条,目标端直接报「子件为空」。
- 「去重键忘了设」:网络抖动重试会导致同号重复提交,平台虽然有幂等,但幂等键一定要显式配,别依赖默认值。
适用场景与不适用场景
适用:已完成态的加工单按日增量同步;单据量稳定;编码、仓库、组织已有映射基础。 不适用:领星侧状态频繁回退、需近实时(分钟级)推送;以及需要在金蝶端做成本计算、改写子件数量的场景——这种建议走中间表人工核对。