轻易云
注册体验

销售出库单同步实战:金蝶云星空到小蜜蜂WMS

· 集成方案库· 18 次浏览· 约 4 分钟读完
WMS金蝶云星空销售出库单同步轻易云供应链集成私有化部署

这个策略解决什么问题

某制造企业的销售流程是这样的:销售订单和发货指令在金蝶云星空里跑,仓库实物出库在小蜜蜂WMS里完成。两边都有出库单据,但来源不同——云星空是业务侧的发货凭证,WMS是实物侧的执行凭证。

实际项目里常见的情况是:销售内勤在云星空做完发货登记后,仓库并不知道该拣哪些货、按什么顺序、交给谁;而仓库拣完货做的出库确认,又得有人手动回填到云星空,库存和应收才走得动。

这条策略干的事就是:以云星空的销售出库单为驱动,把出库指令按既定节奏推到WMS,WMS执行完毕后回传结果。中间件由轻易云数据集成平台承接,调度、字段映射、幂等校验都在平台里配。

数据流向与字段映射

数据流向:金蝶云星空(销售出库单)→ 轻易云中间层 → 小蜜蜂WMS(线下出库订单)。

源端通过云星空的 executeBillQuery 接口查询销售出库单,目标端通过WMS的 /outOrders/v4_1 接口写入线下出库订单。关键字段对照如下:

业务含义金蝶云星空字段WMS字段备注
单据编号FBillNooutOrderNo主键,用于幂等
单据类型FBillTypeID_FNumbercollectionType 等映射到收款/业务类型
日期FDateorderDate出库业务日期
销售组织FSaleOrgId_FNumbershipperCode货主编码由组织映射
客户FCustomerID_FNumbercustomerCode编码映射集中管理
仓库FBranchId_FNumberhouseCode仓库编码映射
表体明细FEntity 系列orderLines分阶段处理

轻易云客户的常见做法是把编码映射(客户、组织、仓库、物料)抽成独立的映射表,单独维护。这样业务系统字段调整时,只改映射表,不动主链路。

在轻易云上如何配置

第一步,建数据源连接。在轻易云数据集成平台里分别注册金蝶云星空和小蜜蜂WMS两个数据源,私有化环境填内网地址,账号走密钥托管,不要在策略里硬编码。

第二步,配置源端查询。云星空侧用 executeBillQuery,按单据类型筛选销售出库单,把 FBillNo、FDate、FSaleOrgId_FNumber、FCustomerID_FNumber、FBranchId_FNumber 这些字段都勾上。表头的过滤条件里建议加 FDocumentStatus='A'(已审核),避免把草稿态的单子推下去。

第三步,配目标端写入。WMS侧接口是 /outOrders/v4_1,POST写入。表头字段(outOrderNo、houseCode、shipperCode 等)直接映射,表体行项目走轻易云的表体解析器。

第四步,配置映射和脚本。编码映射用轻易云的查表组件,把云星空的 FSaleOrgId_FNumber 映射成 WMS 的 shipperCode。表头表体的关系键用 FBillNo ↔ outOrderNo。

第五步,启用幂等。WMS的 outOrderNo 设唯一约束,重跑不会重复建单。轻易云的策略里把 idCheck 打开,回写失败的单子会进重试队列。

实施步骤

第一阶段:全量回灌。 项目上线初期,先做一次历史数据全量。把云星空近 N 个月已审核的销售出库单全部查出来,按 FBillNo 升序推到 WMS。这一步是打地基,轻易云里配置一个手动触发的全量任务即可,不需要走定时。

第二阶段:增量起点。 全量完成后,记录下最后一个 FBillNo 或最后修改时间,作为增量起点。轻易云的增量策略从这一点开始往后捞新单。

第三阶段:双轨运行。 上线后建议保留 1-2 周双轨。轻易云跑新链路,老链路(如果有)继续跑,每天对账——两边 FBillNo 一致、数量一致、状态一致,发现差异立刻查。

第四阶段:切换与定时调度。 双轨没问题后,切换到新链路为唯一通道。调度频率建议 0-59/5 * * * *(源端)和 3-59/5 * * * *(目标端错峰),每 5 分钟跑一次。源端取整分钟,目标端偏移 3 分钟,避免同一时刻两边同时抢占资源。

踩坑复盘

  1. 草稿态单子被推下去。 没加 FDocumentStatus='A' 过滤,把未审核的销售出库单也推到了WMS,仓库拣完货结果云星空那边审核驳回了,两边状态对不上。稳妥做法:源端查询条件里硬性卡死已审核状态。

  2. 编码映射散落在策略里。 客户编码、组织编码映射直接写在字段转换脚本里,业务系统一调整组织架构,二十条策略全部要改。典型错误是把映射当字段处理。正确做法是用轻易云的映射表组件集中维护,策略只引用不写死。

  3. 表头表体一起推导致回滚困难。 表头推到WMS成功了,但表体某一行校验失败,整单回滚,仓库那边已经看到半条单子。常见应对模式是分阶段:先把表头推下去占位,再异步推表体行,最后做一次完整校验。

  4. 调度时间撞车导致丢单。 源端和目标端都设 0-59/5,在同一分钟窗口同时跑,单子进了源端队列但目标端还没处理完上一批,堆积。建议目标端偏移几分钟,错峰执行。

  5. 幂等键没用对。 拿 FEntity_FENTRYID 当幂等键,结果表头改了行项目没改,WMS重复建行。幂等键必须用业务主键 FBillNo,不能拿分录ID。

适用场景与不适用场景

适用:销售订单和仓库执行解耦的两套系统、云星空做业务单据WMS做实物执行、双方都有标准接口、需要近实时同步、对账要求高的零售或制造企业。

不适用:业务和实仓在同一个系统里(直接走系统内功能即可);WMS没有 outOrders 这类出库接口,只能靠Excel导入;或者业务方对延迟容忍度高(小时级),没必要上5分钟调度。

本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-wms-kingdee-cloud-2669-wms-oem-4329b178

评论