成都暂存以销定采:从吉客云出库单到金蝶云星空销售退货单的同步实战
这个策略解决什么问题
某零售企业在多地设有区域暂存仓,前端销售订单触发吉客云出库后,需要把"成都暂存仓"的出库事实回流到金蝶云星空,以便总部及时看到真实的发货节奏,并据此发起采购补货与跨组织结算。这个策略把吉客云出库单按时间窗口增量抽取,转换为金蝶云星空的销售退货单形态写入,作为"以销定采"链路中真实出库事实的承载凭证。
数据流向与字段映射
整体流向为「吉客云(源) → 轻易云中间层 → 金蝶云星空(目标)」。源端通过 WebAPI erp.storage.goodsdocout.v2 增量查询出库单,目标端通过 batchSave 写入销售退货单。
关键字段对照:
| 业务含义 | 吉客云源字段 | 金蝶云星空目标字段 | 备注 |
|---|---|---|---|
| 单据号 | goodsdocNo | id / number | 作为幂等键 |
| 创建时间窗口 | startDate / endDate | — | 用 {{LAST_SYNC_TIME}} 与 {{CURRENT_TIME}} 控制增量 |
| 单据类型 | inouttype(出库) | FBillTypeID = XSTHD01_SYS | 销售退货单 |
| 销售组织 | — | FSaleOrgId = I0101 | 固定值或组织映射 |
| 库存组织 | goodsDocDetailList_ownerName | FStockOrgId | 来源是货主名称 |
| 退货客户 | — | FRetcustId = CUST0413 | 按业务规则配置 |
| 业务日期 | inOutMonth | FDate | 来源月份 |
中间层主要承担三件事:分页拉取、字段映射、组织与货主编码归一化、幂等去重。
在轻易云上如何配置
我们在客户现场用轻易云数据集成平台(Qeasy)承接这条链路,典型配置要点如下。
- 源端数据源:注册吉客云 WebAPI 连接器,API 选择
erp.storage.goodsdocout.v2,method 为 POST,effect 设为 QUERY。pageSize建议先以 50 起步做连通性验证,稳定后再上调。 - 增量窗口:
startDate用变量{{LAST_SYNC_TIME|datetime}}、endDate用{{CURRENT_TIME|datetime}},这是轻易云做"增量与全量双轨"模式的标准写法。 - 中间层处理:在轻易云的转换器里集中维护编码映射(客户、货主、组织、单据类型),避免散落在各个集成任务里。表头与表体分阶段处理——先落表头拿到目标单据号,再分批回填表体,降低
batchSave的字段长度风险。 - 目标端写入:金蝶云星空
batchSave接口,单据类型XSTHD01_SYS,销售组织I0101,库存组织由源端货主名称映射而来,日期取inOutMonth。 - 调度与依赖:源端 crontab 设为
3 2 * * *,目标端23 2 * * *,给目标端留出中间层的转换与对账窗口。
实施步骤
我们习惯把项目切成三个阶段,每一阶段都设置明确的回归用例。
阶段一:增量起点确定
首次上线需要明确"从哪个时间点之后开始增量"。稳妥的做法是先做一次冷启动全量,把历史出库单按日期分批灌入,作为基线;之后再切换到 LAST_SYNC_TIME 增量窗口。这里的典型错误是用"当前时间-24 小时"作为起点,导致历史单据漏数。
阶段二:全量触发
全量阶段建议拆窗,例如按天分批,避免 batchSave 单批过大被目标端拒收;同时开启轻易云的失败重试与人工兜底通道,便于核对差异。
阶段三:稳定调度 进入稳态后,源端每日凌晨 2:03 拉取,目标端凌晨 2:23 写入。如果出现跨日单据(创建时间 23:xx,落库时间次日 0:xx),建议在中间层补一个"宽窗合并"逻辑,而不是简单按日历日切分。
踩坑复盘
- 货主名称到库存组织的映射漂移:吉客云里货主是"名称",金蝶云星空要"组织编码"。最容易翻车的是两边基础资料没对齐就直接上线,导致
FStockOrgId取不到值,整张单据被目标端拒收。稳妥的做法是先用轻易云的编码映射集中管理,跑一遍对账再上线。 - 增量窗口过窄漏单:如果源端调度晚于目标端写入,而窗口又按自然日切,跨日单据可能既不在上一窗口也不在下一窗口。中间层要保留"宽窗 + 去重"两道闸。
- 单据类型语义错配:源端是"出库单",目标端要写成"销售退货单",语义并不一致。这里一定要靠业务侧明确:这条链路承载的是"出库事实回流",而不是真实退货,所以
XSTHD01_SYS是技术承载凭证,要在业务口径上对齐。 pageSize调大后分页错位:源端分页参数一旦改动,中间层必须同步保留pageIndex的连续性,否则会出现"下一页拉到的还是上一窗口的数据"。- 幂等键缺失导致重复单:目标端
id必须来自源端goodsdocNo,不能依赖目标端自增;否则重跑就会产生重复销售退货单。
适用场景与不适用场景
适用:多组织暂存、以销定采、出库事实需要回流到 ERP 作为采购/结算驱动凭证的场景;源端为吉客云、目标端为金蝶云星空的私有化部署。
不适用:实时性要求极高的库存可承诺量(ATP)场景,本策略日级窗口不足以支撑;以及货主/组织基础资料尚未在两端对齐的早期阶段。