轻易云
注册体验

组织间需求单抛转实战:金蝶云星空 → MySQL OMS 的单一策略同步方案

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

这个策略解决什么问题

多组织集团里,需求单经常要从发起组织推到承接组织。如果两边直接点对点,后续 BOM、客户编码、状态回写一改就乱。我们用轻易云数据集成平台把这条链路收口成单一策略:源端在金蝶云星空按审核时间增量拉单据,经过映射清洗后落到 MySQL 的 OMS 订单表和订单 BOM 表,所有编码、状态、日期转换集中在策略里维护,可观测、可重跑。

客户案例:多组织集团数据治理

数据流向与字段映射

流向:金蝶云星空(executeBillQuery,POST)→ 轻易云中间层 → MySQL(execute,POST,写入 oms_order / oms_order_bom)。

源端关心的字段:FID(实体主键)、FDocumentStatus(单据状态)、FIsClosed(关闭状态)、FBillNo(单据编号)、FApproveDate(审核日期)、FMaterialId_FNumber(物料编码)、FDemandDate(需求日期)等。这些是金蝶标准字段,做单据头与单据体的查询条件。

落到 MySQL 时,分两张表:

目标表关键字段含义
oms_orderorder_uuid、order_no、order_date、order_status、company_code、is_distribute、is_soa_finish、customer_uuid、order_type、leader、customer_order_no、order_delivery_date、create_by单据头,订单级别状态与归属
oms_order_bombom_uuid、bom_no、order_uuid、order_no、company_code、part_no、grade_name、pic_no、pic_version、order_num、delivery_date、completed_num、change_status、bom_status、price、eng_bom_id、serial、material_source、if_material单据体,行项目物料与交付明细

典型映射:FBillNo → order_no,FDemandDate → order_delivery_date,FMaterialId_FNumber → part_no。表头与表体通过 order_uuid 关联,轻易云里的常见做法是「表头表体分阶段」:先生成表头 UUID,再带同一 UUID 写表体,避免行项目孤立。

客户案例:多组织集团数据治理

在轻易云上如何配置

源端配置:API 选 executeBillQuery,方法 POST,主键字段 FID,配合 autoFillResponse 让平台自动展开返回结构。请求体里把增量起点字段(如 FApproveDate)作为筛选条件传入。

目标端配置:API 选 execute,方法 POST,把 main_sql 写成 INSERT INTO oms_order …,把 extend_sql_1 写成 INSERT INTO oms_order_bom …。main_params、extend_params_1 用对象类型承载字段值,参数命名与 SQL 占位符一一对应。

中间映射层:在轻易云里建字段映射表,idCheck 打开避免重复写入。编码映射——比如金蝶物料号到 OMS part_no 的差异——走「编码映射集中管理」,做成可复用字典,方便多个策略共用。

调度配置:crontab 写 */3 * * * *,即每 3 分钟一轮。

实施步骤

第一阶段:增量起点初始化。第一次跑之前,先在金蝶侧取一个历史审核时间作为增量起点(如 T0),写入策略的游标变量,后续每次按 FApproveDate > T0 拉取,T0 由平台自动滚动。

第二阶段:全量补齐触发。上线当天,用人工触发的方式全量回灌一次历史单据,校对两边数量、金额、行项目数;差异不归零不允许切到正式调度。

第三阶段:常态调度 + 双轨兜底。正式调度按每 3 分钟轮询,同时保留一条全量脚本作为应急通道——轻易云客户常见做法是「增量与全量双轨」:增量跑日常,全量用于故障恢复和数据修正。调度频率先稳后调,观察 1–2 周后再视负载调整。

踩坑复盘

1. 表头表体不同步。 只写表头不写表体或反过来,是这里最容易翻车的点。稳妥做法是在策略里把表头和表体打包成一次调度单元,靠同一个 order_uuid 串起来。

2. 编码映射散落各处。 典型错误是把物料编码转换逻辑写在每条策略里,3 个月后一改字段名全乱。所有编码映射抽到轻易云的统一字典里集中管理,新策略直接引用。

3. 单据状态语义不对齐。 金蝶的 FDocumentStatus 与 OMS 的 order_status 不是一个语义,直接 1:1 映射会丢信息。建议在中间层做一次状态翻译表,把「审核中/已审核/已关闭」映射成 OMS 可识别的业务态。

4. 增量起点忘了设。 第一次跑没设增量起点,结果把历史所有单据重拉一遍,目标库主键冲突。稳妥做法:上线前明确 T0,并跑一次 dry-run。

5. 调度频率过高拖垮源系统。 每 3 分钟拉一次在数据量小时没问题,单据一旦上万就会给金蝶造成压力。建议加一个「窗口合并」机制,同一审核时间段的单据合并请求。

适用场景与不适用场景

适用:多组织集团内、需求单需要在发起组织与承接组织之间流转、OMS 侧已有标准订单表与 BOM 表、希望可观测可重跑的中等规模集成。不适用:实时性要求秒级、需要双向冲突合并、源端单据结构频繁变更的场景,那一类更适合走事件驱动或中间库模式。

本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-mysql-kingdee-cloud-2246-gd-t04-ec8da2ac

评论