金蝶云星空物料主数据同步到MySQL实战教程
这个策略解决什么问题
物料主数据是供应链集成的"根"。某制造企业在私有化环境里,金蝶云星空是 ERP 主数据源,MES、SRM、自研业务中台都直接消费一份落在 MySQL 的物料镜像表。一旦物料在金蝶侧新增或修改,下游系统如果拿不到及时更新,就会出现 BOM 找不到料号、采购请款对不上规格、车间领料报错等问题。我们这次做的就是「金蝶云星空 → MySQL」的物料新增/修改同步,把根牢牢钉在 ERP。
数据流向与字段映射
整体链路是 金蝶云星空(QUERY)→ 轻易云集成平台中间层 → MySQL(WebAPI EXECUTE)。金蝶侧通过 executeBillQuery 接口按 FNumber 编码维度拉取增量物料;中间层做字段映射、单位/分类转换、编码清洗;MySQL 端用一条 INSERT … ON DUPLICATE KEY UPDATE 把数据落到 basic_material_info,做到有则更新、无则新增。
关键字段对照(源 → 目标):
| 金蝶云星空字段 | 含义 | MySQL 目标字段 | 说明 |
|---|---|---|---|
| FNumber | 物料编码 | material_info_no | 主键,编码映射集中维护 |
| FName | 物料名称 | grade_name | 名称直接落库 |
| FSpecification | 规格型号 | spec | 可空 |
| FMaterialGroup_FNumber | 物料分组编码 | big_classify_id | 分组码值需做映射表 |
| FErpClsID | 物料属性分类 | material_type / material_attribute | 不同行业语义不同 |
| FBaseUnit | 基本单位 | unit_no | 单位统一码值 |
| FTextures / FBrand 等 | 扩展属性 | textures_type / brand 等 | 按目标表列覆盖 |
稳妥的做法是把这套对照放在轻易云平台的「字段映射」配置里集中管理,而不是散落在脚本里。
在轻易云上如何配置
- 源端(金蝶云星空):新建源平台接入,选择
executeBillQuery,按FNumber升序拉取增量,开启分页与单次拉取上限,避免一次性把整张物料表拉爆。 - 目标端(MySQL):新建 WebAPI 类型写入,HTTP Method=POST,
effect=EXECUTE;main_params承载字段值,main_sql用INSERT … ON DUPLICATE KEY UPDATE写入basic_material_info,并把唯一键设为material_info_no。 - 策略编排:将源与目标串成一条 SYNC 策略,
sequence=A表示主动拉取方向;调度计划*/2 * * * *(源)与*/3 * * * *(目标)错开分钟级窗口,降低瞬时并发。 - 参数化:把分组、单位、品牌等码值放在轻易云的「字典映射」组件里,源码→目标码一对一维护;后续新增分组只需要补字典,不需要改主流程。
- 响应处理:开启
autoFillResponse,让平台自动把写入回执填到上下文做幂等判断。
实施步骤
我们习惯把物料同步拆成三段:
- 第一阶段:增量起点。先确认源系统最近一次物料修改时间戳或最大
FMasterId,作为首次增量的起点。避免出现"上线第一天只跑了 5 条"的尴尬。 - 第二阶段:全量触发。在策略里加一个"全量重建"开关,平时不跑,每次物料分组结构调整或字典升级时人工触发,做一次完整比对。
- 第三阶段:调度频率。生产环境建议源端
*/2 * * * *、目标端*/3 * * * *,错峰执行;非工作时段可降频到*/10 * * * *,节省数据库压力。
增量与全量双轨是我们给客户做物料同步时的标配:日常跑增量保新鲜,定期跑全量兜底修正。
踩坑复盘
- 编码映射散落在脚本里。典型错误是每个字段都写一段 JS 转换,三个月后没人记得规则。稳妥做法是把所有码值映射集中放到轻易云的字典表,命名按
src_group → tgt_group风格。 - 没启用
idCheck。MySQL 目标端默认idCheck=true,写入前要先按material_info_no查一次存在性;不要图省事关掉,否则 ON DUPLICATE KEY 会失效。 - 一次性拉全量。源端
executeBillQuery不带分页参数时,会把所有物料一次拉到内存。某零售企业第一次上线就因此把轻易云的 worker 打满。务必设置分页与单批上限。 - 单位/分组没统一码值。金蝶的"基本单位"和下游 MySQL 的
unit_no命名规则不一致,需要提前做一张单位映射表;否则规格型号相同、单位不同的物料会被错误合并。 - 调度时间撞车。物料同步和销售订单、采购订单同步挤在同一个 5 分钟窗口,会让源数据库出现周期性 IO 抖动。错峰设计是基本素养。
适用场景与不适用场景
适用:ERP 作为主数据源、下游多个业务系统需要物料镜像、且数据量在十万级以内的制造/零售企业。不适用:需要双向同步物料编辑、源端数据量百万级以上、对实时性要求秒级的场景,这类场景应改走事件流或专业 MDM 平台。
本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-mysql-kingdee-cloud-2246-n714a2d35-66a7ac08