销售订单同步实战:发货通知单如何稳定对接国药WMS出库
这个策略解决什么问题
在某医药流通企业的供应链系统里,销售订单在金蝶云星空下达并审核后,会生成发货通知单;仓配侧的国药WMS需要拿到这份发货通知单作为拣货与出库的指令。看似"一推一收",但真正落地时,客户编码、物料编码、批号/效期、货主与仓别代码稍有偏差,就会出现"星空下了单、WMS 不认账"的情况。我们用轻易云数据集成平台(Qeasy)承接这条链路,把这张发货通知单稳定地从金蝶云星空推到国药WMS。
数据流向与字段映射
整体流向是:金蝶云星空(源) → 轻易云集成平台(中间层) → 国药WMS(目标)。源端通过 WebAPI 的 executeBillQuery 查询发货通知单,目标端通过 WebService 的 ReqScmPktErp 把整理后的数据送到WMS。
关键字段对照如下:
| 业务含义 | 金蝶云星空(源) | 轻易云中间层 | 国药WMS(目标) |
|---|---|---|---|
| 单据编号 | FBillNo | 单据号 | ERP_GROUPNO(订单组号) |
| 销售订单号 | FORDERNO | 源单号 | ERP_BILLHDRID(总单 ID) |
| 客户 | FCustomerID_FNumber | 客户编码映射 | ERP_CLIENTSID |
| 仓库 | FStockID_FNumber | 仓别映射 | ERP_WHSE_CODE |
| 货主 | 固定常量 | 货主常量 | ERP_OWNERID / PT_ERP_OWNER |
| 表体行 | FEntity_FENTRYID | 分录行 | 行级明细 |
在中间层,我们用编码映射集中管理的方式,把客户、仓库、货主这些跨系统的"翻译表"放到一处维护,后续无论源端还是目标端字段有变动,只改映射、不动流程。
在轻易云上如何配置
在轻易云集成平台里,这条策略被拆成"源查询 + 目标执行"两个节点。配置要点有四:
- 源端:用
executeBillQuery接口,按时间窗口和单据状态作为增量条件拉取发货通知单,主键用FBillNo,行主键用FEntity_FENTRYID, - 目标端:WMS 接口是 WebService 的
ReqScmPktErp,使用 GET 方式组织报文,关键入参是ERP_GROUPNO、ERP_CLIENTSID、ERP_WHSE_CODE、ERP_OWNERID、PT_ERP_OWNER、ERP_BILLHDRID等, - 映射与脚本:在轻易云里配置字段映射,客户/仓库走映射表,日期、单据号、行项目走直接绑定;如果有特殊转换(例如单据号拼前缀、行项目截位),写在轻易云的脚本节点里,
- 幂等与回执:用单据号 + 行主键做幂等键,避免 WMS 重复入库;对 WMS 返回值做校验,失败行进入重试队列。
实施步骤
我们把这套同步分三阶段落地:
- 第一阶段:确定增量起点。先在轻易云里做一次历史全量,把当前未推完的发货通知单补齐,这一次的运行结果是后续增量比对的基线,
- 第二阶段:配置增量调度。源端任务每 5 分钟触发一次(
*/5 8-22 * * *),WMS 端任务每 5 分钟错峰触发(3-59/5 8-22 * * *),两侧错峰避免同一时刻对两端系统造成压力, - 第三阶段:上线监控与异常处置。在轻易云里打开运行日志、异常告警、重试面板,先观察 3 个完整工作日,再调频率、调超时、调批次大小。
这种"增量与全量双轨"的做法,是医药行业客户里很常见的稳妥路径——一次性全量兜底,后续靠增量跑长期。
踩坑复盘
几个我们在客户现场反复见到的问题,值得提前注意:
- 踩坑一:客户/仓库编码没做集中映射。直接在脚本里写硬编码,3 个月后两边数字对不上,定位一查就是映射散落在几十个节点里,稳妥的做法是把所有跨系统编码放进轻易云的映射表统一维护,
- 踩坑二:表头表体一次性整推。WMS 接口对报文大小敏感,几百行的发货通知单直接整推容易超时,稳妥的做法是表头与表体分阶段:表头先行落地,表体按行或按批次续传,
- 踩坑三:幂等键设计过粗。只拿单据号做幂等,WMS 端行级重复会导致数量翻倍,稳妥的做法是单据号 + 行主键组合,
- 踩坑四:忽略货主/仓别语义差异。源端一个"仓库"在 WMS 端可能要拆成"仓库 + 货主 + 仓别代码"三段,中间层必须把这层语义补齐,
- 踩坑五:调度频率一刀切。业务高峰期和夜间用同一频率,容易在高峰期挤压源端查询队列,稳妥的做法是按业务时段(如
8-22)分时间段调度。
适用场景与不适用场景
适用:金蝶云星空作为 ERP 主干、国药WMS 作为仓配系统,发货通知单需要被 WMS 接收并驱动拣货出库的医药流通场景;双方系统接口能力稳定、有明确的单据号/行主键作为幂等依据。 不适用:WMS 端要求实时秒级推送(本方案以 5 分钟级批处理为主);或跨多个货主、多个仓网且编码体系尚未统一的早期阶段。