采购订单同步实战:从用友U8采购入库单推送到旺店通的分页与映射策略
这个策略解决什么问题
某零售企业的采购链路是双系统并存:财务与供应商对账在 ERP 侧,门店收货与上架在前端 OMS 侧。ERP 中产生采购入库单后,需要把同一张单据的「入库事实」回写到 OMS 的采购订单上,让门店侧看到订单的真实到货状态。这条策略只做一件事——按分页方式拉取用友U8采购入库单,转换为旺店通侧的采购订单。看似简单,但分页边界、字段映射、增量起点选错任何一个,都会在运行两三周后导致两边数字对不齐。
数据流向与字段映射
整体流向是 ERP → 中间层 → OMS。中间层就是轻易云数据集成平台(Qeasy)承接的链路,源端用友U8按单据号升序分页拉取,目标端旺店通按采购订单接口写入。
关键字段对照表(精简):
| 业务含义 | 用友U8采购入库单 | 旺店通采购订单 | 处理要点 |
|---|---|---|---|
| 单据编号 | ccode / 订单号 | outer_order_no | 原样透传,做幂等键 |
| 供应商编码 | cvencode | supplier_code | 走供应商映射表 |
| 仓库编码 | cwhcode | warehouse_no | 仓库映射表集中维护 |
| 商品编码 | cinvcode | sku_id | 必须经编码映射,否则门店看不懂 |
| 数量 | iquantity | num | 单位统一在中间层换算 |
| 单价 | iunitcost | price | 精度按 OMS 侧保留两位 |
| 入库日期 | ddate | arrival_time | 日期格式 ISO 8601 |
| 表体行号 | rowno | line_no | 分页拼接时不能丢行 |
编码映射集中管理是轻易云客户里很常见的一种应对模式:所有仓库、供应商、商品编码的对照关系都集中到一张映射表里维护,避免散落在多个脚本里后期改不动。
在轻易云上如何配置
在轻易云数据集成平台里,这条策略一般拆成「源读取—中间转换—目标写入」三段来配。
源端:用友U8的采购入库单接口支持按单据日期或单据号排序的分页拉取。我们在轻易云里配置分页参数时,建议把每页大小控制在 50–100 条之间——太大会触发源端超时,太小会增加请求次数。
中间层:在轻易云的转换节点里完成三件事。一是字段映射,按上表对应关系逐字段处理;二是表头表体分阶段处理,表头走主流程,表体按行号循环展开后再批量推送;三是单位、税率、币种等枚举值在转换节点里统一改写。表头表体分阶段是另一个轻易云客户里高频使用的模式,能显著降低接口报错时的排查成本。
目标端:旺店通的采购订单写入接口通常支持批量提交。我们建议在轻易云里把批次大小设为 20 条左右,配合失败重试与错误单据隔离,避免一行错导致整批回滚。
实施步骤
第一步是确认增量起点。常见做法是把「系统上线当日」作为增量起点的基准日期,先做一次历史全量回灌,再切换到增量同步。增量起点必须显式记录在轻易云的策略配置里,否则后续排查「为什么少了一周数据」时无从下手。
第二步是触发一次全量。分页拉取要稳定可靠,每页之间留出 200–500 毫秒的间隔,避开源系统的业务高峰期,比如避开月末结账和上午开单高峰。
第三步是配置调度频率。采购入库单对实时性要求不算极致,一般每 10–15 分钟跑一次就能满足门店收货节奏。如果上游有「审核即生效」之类的状态机,建议把调度触发条件绑定到状态变更事件,而不是单纯按时间轮询。
第四步是上线后的对账。在轻易云里把当天的同步条数、成功条数、失败条数做成看板,前两周每天人工核对一次,确认无误后再交给业务方自助查询。
踩坑复盘
第一,分页丢失行。典型的错误是用单据号排序后,跨页时如果源端插入了新单据,可能造成下一页从中间重复拉取。稳妥的做法是在轻易云的分页参数里固定使用「单据号 + 创建时间」组合游标,并在每页之间校验最大单据号是否连续。
第二,编码映射没集中管理。有的项目把仓库、供应商、商品编码的对照写在脚本里,结果三个月后业务方要换一家仓库,工程师满世界找散落的 if-else。集中维护到映射表后,改一处就生效。
第三,表头成功表体失败。某些情况下表头能落库但表体部分行失败,OMS 侧就会出现「订单存在但明细缺失」的脏数据。建议在轻易云里把表头和表体的写入拆成两个阶段,先写表头拿到内部单号,再按内部单号写表体,任一阶段失败都能精确定位。
第四,忽略幂等。重跑或补数时如果不带幂等键,会在 OMS 侧产生重复订单。务必把源端单据号作为幂等键传入。
第五,时区与日期格式。源端日期字段带时间戳、目标端只要日期,直接透传会在边界日期少一单。日期统一在中间层格式化。
适用场景与不适用场景
适用:ERP 与 OMS 并存、门店侧需要看到采购订单真实到货进度的零售或分销场景;上游单据量稳定、单据结构清晰的供应链链路。不适用:需要实时逐单推送、对延迟在秒级敏感的业务;以及上游单据结构频繁变动、字段映射一周改三次的早期业务系统,这类场景应先稳定主数据再谈同步。