旺店通调拨单到金蝶云直接调拨单(WMS回传单据)同步方案实战
这个策略解决什么问题
WMS(仓库管理系统)与 ERP 之间最容易打架的就是调拨业务。仓内一执行调拨出库,库存状态实时变化,但 ERP 端的调拨单还停留在待审核或者根本没有生成——两边账对不上,采购、仓储、财务三方相互扯皮。
我们在某零售企业的实际项目中,核心诉求非常明确:把 WMS 中已审核、可执行的调拨单据,按既定节奏回传到金蝶云星空生成直接调拨单,作为 ERP 侧的库存变动依据。这个策略本质上是一条「WMS 回传单据」通路,而不是全量双向同步,定位很轻,目标也很纯——解决两端调拨数据时序错位。
数据流向与字段映射
整体流向是单向的:WMS 作为源端,通过查询接口拉取调拨单主表+明细,落到轻易云数据集成平台做中间层处理,再通过金蝶云星空的批量保存接口生成直接调拨单。
关键字段对照如下:
| 业务含义 | WMS 侧字段 | 中间层处理 | 金蝶云星空侧字段 |
|---|---|---|---|
| 调拨单号 | transfer_no | 原值透传,兼做幂等键 | FBillNo |
| 业务日期 | created_date | 格式化为 ERP 可识别日期 | FDate |
| 单据类型 | 由源端固定语义决定 | 写死编码 ZJDB01_SYS | FBillTypeID |
| 调入库存组织 | 由映射表给出 | 编码映射集中管理 | FStockOrgId |
| 货主类型 | 固定值 | BD_OwnerOrg | FOwnerTypeIdHead |
| 源仓库/目标仓库 | from_warehouse_no / to_warehouse_no | 走仓库映射表 | FEntry 内的仓库字段 |
编码映射(仓库、组织)是这套方案最容易出问题的点。轻易云客户常见的做法是把仓库编码、组织编码统一收口到一张映射表里维护,而不是散落在每个脚本里——后续新增仓库只改一处。
在轻易云上如何配置
在轻易云数据集成平台(Qeasy)中,这条策略被拆成两个平台接入动作:
源端:登记 WMS 查询接口,设置分页参数和业务参数,主键字段 transfer_no 用于幂等去重。增量起点用 transfer_id,保证每次只拉新增/变更。
目标端:登记金蝶云星空的批量保存接口,单据类型、组织、货主等固定值在平台里直接配置;单据编号、日期用模板变量从源端字段取,例如 {{transfer_no}}、{{created_date|dateTime}}。
中间层建议加上两条规则:一是仓库编码映射查表,二是单据日期统一按源端日期格式化,避免时区或字符串格式不一致导致 ERP 侧校验失败。
实施步骤
我们建议分三步走,避免一次性全量把两边账冲乱:
第一步,确定增量起点。选一个业务低峰期(通常是月初或周末),取一个历史时间点作为 transfer_id 的起点,从此只同步增量。
第二步,触发全量对账。在增量稳定跑一段时间后,人工触发一次全量补数,把历史调拨单按单据号幂等写入 ERP;全量结束前不要直接切换调度频率。
第三步,进入常规调度。源端每 50 分钟一次(在业务时段内,如 9:00–21:00 每小时第 50 分),目标端执行比源端稍晚一档(如 9:00–21:00 每小时第 3 分),形成「源拉 → 目标写」的错峰节奏,避免单点压力叠加。
另外一种稳妥的双轨做法是「增量主跑 + 每日全量校验」:增量负责实时性,全量(放在凌晨)负责差异修补。
踩坑复盘
-
仓库编码直接透传——典型错误是把 WMS 仓库编码直接写到 ERP 端,结果 ERP 校验失败或建出垃圾数据。稳妥的做法是编码映射集中管理,中间层查表转换。
-
单据日期格式不统一——WMS 返回的日期有时带时区,有时只是字符串,金蝶云星空对日期格式敏感。建议在中间层显式格式化,而不是相信源端。
-
幂等键选错——用 transfer_no 当幂等键没问题,但一定要让目标端也用同一字段做去重校验,否则重复跑会建出重复单。
-
表头表体一次性下发失败——金蝶的批量保存对表头表体一次性提交,如果中间任何一条明细校验失败整单回滚。建议先表头落地、表体分阶段提交,失败容易回查。
-
调度频率过高导致 ERP 限流——金蝶云星空的接口有调用频控,源端每 50 分钟一次已经比较激进;如果调快,极易触发限流。稳妥的做法是先按当前节奏跑稳,再视业务量调整。
适用场景与不适用场景
适用:WMS 为主、ERP 为辅的零售/分销企业,WMS 已审核的调拨单需要回流 ERP 作为库存与财务依据,且对实时性要求在小时级即可。
不适用:需要 ERP 反向驱动 WMS 的场景(如调拨审批流在 ERP 侧)、跨组织多法人复杂调拨,以及要求分钟级实时同步的业务——这类应走事件驱动或专门的库存中台。