收料通知单对接旺店通采购订单:金蝶云星空到旺店通的增量同步实战
旺店通金蝶云星空供应链集成采购订单同步增量同步轻易云
这个策略解决什么问题
在供应链协同场景里,某零售企业常出现这种断层:金蝶云星空已经审核了一批收料通知单,但下游的旺店通采购订单里却没有对应的入库预告,导致仓库收货时核对困难、批次与效期信息丢失。这个策略的核心,就是把金蝶云星空的收料通知单(PUR_ReceiveBill)按增量方式推到旺店通,生成对方系统里的采购订单,并自动审核,为后续收货入库提供一致的单据基础。
数据流向与字段映射
数据流向是 金蝶云星空 → 旺店通·企业奇门,采用 POST 接口。源端走 executeBillQuery(FormId: PUR_ReceiveBill),目标端走 wdt.purchase.order.push。
关键字段对照:
| 层级 | 源字段(金蝶) | 目标字段(旺店通) | 映射类型 | 说明 |
|---|---|---|---|---|
| 主表 | FBillNo | outer_no | DIRECT | 收料通知单编号作为外部单号传入 |
| 主表 | FSupplierId.fnumber | provider_no | DIRECT | 供应商编码直接传递 |
| 主表 | FStockID.fnumber | warehouse_no | DIRECT | 仓库编码直接传递 |
| 主表 | FNote | remark | DIRECT | 表头备注 |
| 主表 | — | is_use_outer_no | CONSTANT | 固定 "1",使用 outer_no 作采购单号 |
| 主表 | — | is_check | CONSTANT | 固定 "1",创建后自动审核 |
| 明细 | FMaterialId.fnumber | details_list.spec_no | DIRECT | 商品规格编码 |
| 明细 | FActlandQty | details_list.num | DIRECT | 实到数量 |
| 明细 | FTaxPrice | details_list.price / tax_price | DIRECT | 含税单价 |
| 明细 | FSupplierLot | details_list.batch_no | DIRECT | 供应商批号 |
| 明细 | FProduceDate / FExpiryDate | details_list.production_date / expiration_date | DIRECT | 生产/有效期 |
| 明细 | FEntryTaxRate / FEntryTaxAmount | details_list.tax / tax_amount | DIRECT | 税率与税额 |
| 明细 | FDiscountRate | details_list.discount | DIRECT | 折扣率 |
源端返回的是扁平化数据,同一张单据的多条分录会以多行形式返回,主表字段在每行重复。集成层需要按 FBillNo 分组,把分录行聚合为 details_list 数组后再下发,这一点在配置明细行映射时尤其关键。
在轻易云上如何配置
在轻易云数据集成平台(Qeasy)上,这个策略一般拆成两段:Source 元数据负责从金蝶拉数,Target 元数据负责把数据写入旺店通。
配置要点:
- Source 端:选择金蝶云星空适配器,API 选
executeBillQuery,FormId 填PUR_ReceiveBill。主键字段用FDetailEntity_FEntryID,编码字段用FBillNo,开启idCheck与autoFillResponse,buildModel设为 false,这样可以拿到扁平化的明细数据,方便在数据处理层按单据编号聚合。 - 过滤条件:金蝶侧的过滤语句是
FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FStockOrgId.FNumber='106',既保证只取上次同步之后审核的单据,又把范围收窄到具体收料组织,避免多组织数据串台。 - Target 端:选旺店通·企业奇门适配器,API 用
wdt.purchase.order.push,方法 POST。主表字段用{{字段名}}模板取值;明细details_list的 value 直接写details_list,告诉平台这是一个按FBillNo分组后的明细数组。 - 常量字段:
is_use_outer_no、is_check固定写 "1",表示用 outer_no 作采购单号并自动审核;contact、telno、receive_address、expect_arrive_time等暂时未启用,可先填 null,后续按业务再补。 - 主数据依赖:本策略强依赖供应商、物料、仓库三套主数据已同步完成,否则下游会因为找不到编码直接报错。
实施步骤
我们建议分三个阶段上线:
- 第一次启动(全量触发 + 增量起点)
在轻易云里手动触发一次全量,把历史上所有
FStockOrgId=106、审核时间早于当前的收料通知单一次性补齐。同时记录这次运行的LAST_SYNC_TIME,后续所有调度都从这一刻往后取增量,避免重复。 - 日常调度(增量运行)
源端 crontab 配
2-59/2 * * * *,即每 2 分钟从第 2 分钟开始拉一次增量。目标端推荐配2-59/5 * * * *,每 5 分钟触发一次写入,既能让源端有时间完成分组聚合,也能避免高频请求打到旺店通。 - 回灌与对账 上线后第一个星期,每天抽 1–2 个时间点,把金蝶侧已审核单据号与旺店通侧 outer_no 做一次比对,确认无遗漏。后续稳定后可改为每周对账一次。
踩坑复盘
- 编码不一致是最常见的翻车点。金蝶供应商编码和旺店通供应商编号如果不统一,采购单会直接创建失败。我们用过的稳妥做法是把编码映射放在轻易云的「统一编码中心」集中管理,而不是写死在策略里,后续新增供应商也只改一处。
buildModel: false容易被忽略。金蝶默认返回扁平数据,如果在 Source 里把它打开成 true,明细会被聚合成嵌套结构,反而和旺店通的details_list期望对不上,出现"主表对了但明细丢了"的现象。- 常量字段不要留空字符串。
is_use_outer_no和is_check如果忘了写 "1",旺店通默认会自己生成单号、不自动审核,导致下游需要再走一遍人工审核,与预期不一致。 - 过滤条件必须带组织。第一次上线时如果只用
FApproveDate >= LAST_SYNC_TIME,很容易把其他组织的收料通知单也拉过来。稳妥的做法是默认带上FStockOrgId.FNumber过滤,把范围锁死在一个组织里。 - 批次与效期类型要严格匹配。金蝶返回的是日期时间字符串,旺店通侧如果是日期类型,要在轻易云的数据处理节点里做一次格式化,否则会出现"同步成功但有效期为空"的隐性问题。
适用场景与不适用场景
适用:金蝶云星空作为 ERP 主数据源、旺店通作为下游 WMS/电商中台,需要在收料环节就建立一致采购单据的零售、电商、连锁业态。 不适用:旺店通侧已存在人工维护的采购订单;或者供应商、物料主数据尚未在两系统打通,此时即使策略配置正确也会因编码缺失失败,需先完成基础资料同步。
本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-wdt-kingdee-cloud-2585-n12eaf92e-33cfe43b