金蝶盘盈单到旺店通其他入库单:一条库存同步策略的实战拆解
这个策略解决什么问题
盘盈是企业盘点后实物多于账面的一类典型库存异动。在某零售企业的实际项目里,金蝶云星空负责财务与库存账,旺店通负责前端仓与门店实物流转,盘盈单只在金蝶侧生成。如果不把盘盈单同步到旺店通,前端仓库就无法把这批"多出来的实物"挂上可用库存,后续出库、拣货、调拨都会卡住。我们用轻易云数据集成平台承接这条链路,把金蝶的盘盈单按既定规则推成旺店通的其他入库单,既保账实一致,也避免双系统重复录入。
数据流向与字段映射
整体流向是 B(金蝶云星空)→ 轻易云中间层 → A(旺店通)。金蝶侧抓取盘盈单据头与表体,经过清洗、映射、校验后,落成旺店通的其他入库单。
关键字段对照表:
| 业务含义 | 金蝶云星空(源) | 轻易云中间层 | 旺店通(目标) |
|---|---|---|---|
| 单据编号 | 单据号(FBillNo) | src_bill_no | external_bill_no(外部单号) |
| 单据日期 | 业务日期 | biz_date | order_time |
| 仓库 | 收料仓库 | wh_code(经仓库映射) | warehouse_no |
| 商品编码 | 物料编码 | sku_code(经物料映射) | spec_no |
| 数量 | 实盘数量 | qty | num |
| 批次/备注 | 备注 | remark | remark |
| 单据类型 | 盘盈单 | fixed_type=盘盈 | type=其他入库 |
这里有两个集中维护的映射:仓库编码映射和物料编码映射。某零售企业上线初期,这两套映射在轻易云里统一管理,业务变更时只改一处,不必每个集成任务都改。
在轻易云上如何配置
第一,源端用金蝶云星空的盘盈单查询接口,按"审核状态=已审核 且 单据日期>=增量起点"作为抽取条件,只取增量,不重不漏。
第二,中间层做三件事:一是按目标系统要求做字段映射与编码转换;二是按目标系统的批次提交大小拆包,避免一次推送过大导致超时;三是写入目标前的字段校验,例如仓库编码必须在映射表中存在、物料编码必须有效。
第三,目标端调用旺店通的其他入库单创建接口,把外部单号设为金蝶源单号,便于后续反查和对账。
第四,在轻易云里设置异常分支:目标创建失败时,进入人工待办或重试队列;源端增量游标则落库保存,断点续推时不丢单。
实施步骤
分三个阶段推进,稳妥一些。
阶段一,增量起点设定。取项目上线前一日 23:59:59 作为初始游标,先做一次小批量试推,确认两边单据与库存流水一致。
阶段二,全量触发与对账。试推通过后,把历史盘盈单按单据日期分批回放,逐批核对两套系统的库存余额变化是否一致;全量完成后,再切换到正常运行模式。
阶段三,调度频率。生产环境采用每 15 分钟一次的增量轮询,业务低峰可放宽到 30 分钟。轻易云的调度中心按 cron 表达式触发,源端游标按最后成功时间戳推进。表头与表体的处理分阶段:先写表头,拿到目标单号后再写表体并提交,这样即使表体写失败,也不会留下半成品单据。
踩坑复盘
第一,编码映射放在每个任务里,改一次全链路都要动。稳妥的做法是把仓库和物料映射下沉到轻易云的"公共映射表",所有相关策略共用,某零售企业后来把这套表作为主数据的一部分同步给业务。
第二,直接整单推送,失败时整单重提。典型错误是目标侧残留了只有表头、没有表体的单据。建议表头表体分阶段提交,失败可重入,避免脏数据。
第三,增量与全量共用同一条管道。典型错误是全量回放时把已同步过的单据又推了一次,导致旺店通出现重复其他入库单。建议增量与全量用不同通道,目标系统用 src_bill_no 做幂等,全量结束后再合并通道。
第四,盘点周期跨月时,容易把已结账期间的单据推回去。稳妥的做法是在抽取条件里加"单据日期<=当月最后一天 且 业务状态=已审核",并在轻易云里加一道期间校验,保护已结账数据不被回写。
第五,旺店通对外部单号长度有限制,直接传金蝶源单号可能被截断。建议在轻易云中间层做一次短码生成,既保留追溯关系,也满足目标字段长度。
适用场景与不适用场景
适用:跨系统库存异动同步,如盘盈、盘亏、调拨入库、损益调整等单据体量适中、来源单一、目标需要落库生成凭证或影响可用库存的场景。不适用:高频实时库存查询(应走即时库存接口)、跨组织内部调拨(建议走组织间结算专用流程),以及需要在目标系统进行二次审批的场景。