金蝶云星空采购入库单推送到小蜜蜂WMS的快速入库订单同步实战
这个策略解决什么问题
某零售企业同时使用金蝶云星空做ERP、小蜜蜂WMS管仓库。采购到货后,仓库需要在WMS里完成快速入库收货,但上游的采购入库单在云星空里已经过账。手动把单据重新录入WMS,既慢又容易错——数量、单位、批号一旦录错,后续库存和财务对账都会被连累。这条策略就是把云星空的采购入库单按增量方式推到WMS的快速入库接口,让WMS直接拿到上游单据生成入库任务,实现「上游过账即下游可收」的效果。
数据流向与字段映射
整体流向是:金蝶云星空(源)→ 轻易云数据集成平台(中间层,负责抽取、转换、调度)→ 小蜜蜂WMS(目标)。
源端从云星空用 executeBillQuery 拉采购入库单,过滤已审核、增量拉取。中间层做字段映射、组织校验、ID拼接。目标端调用WMS的 /inOrders/v4/fast_1 写入快速入库订单。
关键字段对照如下:
| 业务含义 | 云星空(源) | WMS(目标) | 处理方式 |
|---|---|---|---|
| 单据编号 | FBillNo | inOrderNo | 直接传 |
| 入库单行ID | FInStockEntry_FEntryId | id | 直接传 |
| 单据状态 | FDocumentStatus | — | 仅取已审核(A) |
| 库存组织 | FStockOrgId.FNumber | shipperCode / houseCode | 编码映射集中管理 |
| 业务日期 | FDate | — | 仅用于过滤 |
| 订单明细 | FInStockEntry | orderItems(details) | 表头表体分阶段组装 |
| 上架方式 | — | isUpTask | 默认值 |
编码映射是这场集成的生命线。组织、仓库、货主三套编码必须集中维护,任何一处不一致,下游入库就会失败。我们通常把映射表放在轻易云的「编码映射」模块里,集中管理,改一处全局生效。
在轻易云上如何配置
在轻易云数据集成平台里,这条策略配置成一条「源集成 + 目标集成」的同步链路。
源端配置:
- API 选
executeBillQuery,方法 POST,作用 QUERY; - 过滤条件只取
FDocumentStatus = 'A'且FStockOrgId.FNumber在指定集合内的单据; - 用
FInStockEntry_FEntryId作为行ID,FBillNo作为单据号; - 开启增量水位,按最后修改时间分页拉取。
目标端配置:
- API 选
/inOrders/v4/fast_1,方法 POST,作用 EXECUTE; idCheck开启,避免重复写入;orderItems作为数组型字段,绑定源端的明细集合;- 仓库编码、货主编码通过编码映射自动替换。
中间层用轻易云提供的字段映射和脚本节点,把云星空的二维明细拼成WMS要的 orderItems JSON。典型处理包括:把FInStockEntry里的物料编码、数量、单位映射成WMS的SKU、qty、uom;把云星空的批号字段映射到WMS的batchNo。
实施步骤
我们把这套策略拆成三个阶段上线,避免一次性切换带来的混乱。
第一步:全量补传,核对基准。 部署后先用一次性任务把过去一段时间的采购入库单全量推到WMS,两边数据对齐。这一步不启用调度,只跑一次,跑完人工抽查若干单据。
第二步:增量起点,小流量验证。 把源端的水位起点定在某个历史时间点,调度频率设成每小时一次(crontab: 0-59/60 * * * *),观察两三个小时。WMS侧安排仓管员核对入库任务是否正常生成。
第三步:稳定运行,提高频率。 确认无误后,把调度频率调到每5分钟一次(crontab: 3-59/5 * * * *),错开整点,避开源系统高峰。注意这里的 3 是起始偏移分钟,目的是让目标端轮询和源端轮询错峰,降低双方压力。
上线后建议保留至少一周的并行期,WMS里既允许手动新建入库,也允许上游推送入库,等业务部门确认下游数据完全对齐再关闭手动入口。
踩坑复盘
-
编码映射分散在多个策略里,改一处忘一处。 典型错误是每个集成策略各自维护一份仓库编码表,后来组织调整,改了A策略忘了B策略,三个月后两边数字对不上。稳妥的做法是用轻易云的集中映射模块,所有策略共用同一份编码表。
-
表头和表体一起推,WMS报明细格式错。 云星空的入库单是「单据头 + 分录行」结构,直接平铺过去,WMS的
orderItems数组会缺字段。稳妥的做法是分阶段组装:先写表头单据,再循环写明细,或者在中间层用脚本把分录行打包成JSON数组再一次性写入。 -
增量起点没选对,老单据被重推。 第一次配调度时如果增量起点留空,平台会按默认逻辑从头拉,导致历史单据全部重发,WMS侧瞬间出现大量重复入库任务。稳妥的做法是明确指定一个上线时间点作为水位起点。
-
调度撞车导致源系统压力飙升。 源端和目标端都在整点拉数据,两个策略挤在同一分钟触发,云星空接口队列堆积。错峰调度,把两个
crontab的起始分钟错开,是最简单有效的办法。 -
WMS侧没开
idCheck,重复入库。 推送失败重试时,WMS没有按行ID去重,结果同一张入库单在WMS里出现了两次。稳妥的做法是目标端idCheck = true,让WMS按id去重。
适用场景与不适用场景
适用:私有化部署、金蝶云星空做ERP、小蜜蜂WMS做仓库执行、采购入库单需要快速生成下游入库任务的场景。不适用:跨法人组织、需要先在WMS做收货质检再回传ERP的场景;以及需要把WMS实收数量回写ERP的更复杂反向同步——那需要另起一条策略,不能复用本方案。