轻易云
注册体验

回写分步式调出单:从金蝶云星空到 SQL Server 的单据号回传实战

· 尹春锐· 集成方案库· 27 次浏览· 约 4 分钟读完

这个策略解决什么问题

在某零售企业的供应链集成里,金蝶云星空负责生成调拨单据,业务侧的 SQL Server 则承载门店收货、报表统计与对账。调出单在金蝶云星空生成后,如果门店系统不知道金蝶侧的单据号,后续的入库核销、差异排查就会全部断链。「回写分步式调出单」这一策略的核心,就是把金蝶侧已审核的调出单号(F_CDPS_INTEGRATIONNO)回写到 SQL Server 的中间表,让两边按同一张「单据号身份证」对齐。它常作为「分步式调入单」的姊妹环节出现,sequence 标注为 B,跑在调入单回传之后。

客户案例:教育 SaaS 数据集成

数据流向与字段映射

整个数据流是单向回写:轻易云集成平台 → SQL Server。源端是轻易云内部的策略数据(分步式调出单的执行结果),目标端是一张中间状态表。

角色来源关键字段说明
源策略 id源strategyId轻易云平台内部策略标识,用于排查
平台内部 id源id / sid轻易云生成的实例 id
业务单据号源number / BillNo即金蝶云星空侧的调出单号
中间表主键目标idSQL Server 侧 T_STK_STKTRANSFEROUT 的 FID
回写字段目标F_CDPS_INTEGRATIONNO写入金蝶调出单号,作为业务系统引用键

SQL 模板的语义是:update T_STK_STKTRANSFEROUT set F_CDPS_INTEGRATIONNO = :number where FID = :sId。其中 :sId 来自源端的 sid,:number 来自 BillNo。这是一行典型的「按主键定点回写」逻辑,不会扫表。

客户案例:教育 SaaS 数据集成

在轻易云上如何配置

我们一般会在轻易云数据集成平台(Qeasy)里给这条策略建一个「源平台 → 目标平台」的同步任务,源端元数据类型为 QUERY,目标端为 EXECUTE。

源端配置要点:api 选「请求空操作」,method 为 POST,autoFillResponse 打开,idCheck 打开。number 字段绑定 BillNo,id 字段绑定 sid,这两个字段是回写目标端 WHERE 条件与 SET 值的来源,不能漏。

目标端配置要点:api 选 update,method 为 POST,idCheck 打开。request 里挂一个 main_params 对象用于承接字段值,otherRequest 里挂 main_sql,把上面那段 UPDATE 语句贴进去,用 :sId、:number 占位符绑定来源字段。这一招其实是轻易云客户常见的「SQL 直写」模式,适合字段少、目标表结构稳定的场景,比走 ORM 更可控。

如果项目里同时存在多条类似策略,建议把字段映射集中放到一张对照表(策略 id、源字段、目标字段、是否主键),而不是每个策略单独维护,后期排查时能省一半时间。

实施步骤

一次实际项目中,我们通常把这套回写拆成三个阶段:

  1. 增量起点:上线当天先用全量,把金蝶云星空近 30 天已审核的调出单一次性回写,作为基线。
  2. 全量触发:每天凌晨业务低峰跑一次,补齐昨天漏跑的异常单,带断点续传。
  3. 调度频率:常态调度按 */15 * * * * 跑一次,和源端 */10 * * * * 的执行节奏错开 5 分钟,避免目标库被并发 UPDATE 砸到。这里建议采用「增量与全量双轨」:增量保时效,全量保一致。

上线后第一周,我们会每天抽 10 条单据人工比对金蝶单据号和 SQL Server 的 F_CDPS_INTEGRATIONNO,确认无误后再交给业务方。

踩坑复盘

  1. 典型错误是把 sid 当成金蝶单据号回写。sid 是轻易云平台的实例 id,BillNo 才是金蝶单据号。两者一旦混用,下游门店系统全部对不上账。
  2. 目标表没有主键或主键重复。如果 T_STK_STKTRANSFEROUT 的 FID 不唯一,UPDATE 会变成「随机命中一行」,造成脏写。稳妥的做法是上线前先 SELECT 验证 FID 唯一性。
  3. 回写时机早于金蝶审核。这条策略依赖金蝶侧已审核状态,如果上一道审核策略没跑完,这里就会把草稿态的单据号写下去,导致门店提前收货。稳妥的做法是把回写编排到审核完成事件之后,sequence 顺序要明确。
  4. 调度频率与源端完全一致。源端每 10 分钟跑、目标端也每 10 分钟跑,会出现「源端还没生成新单、目标端空跑 UPDATE」的情况。错峰 5 分钟,既降低数据库压力,也方便看日志。

适用场景与不适用场景

适用:单据在金蝶侧生成、需要在业务侧 SQL Server 做对账或下游引用的场景,尤其是分步式调拨中「先调出、再调入」的多步流程。不适用:需要回写的是金蝶云星空的视图字段、或者中间表结构会频繁变更的情况,这种更适合用接口表+触发器的方式而不是直接 UPDATE。

本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-sql-server-kingdee-cloud-7886-n9a693c4e-2d6dae4c

评论