金蝶供应商主数据同步至美云智数:单一策略实战教程
这个策略解决什么问题
在某制造企业的供应链一体化项目中,供应商主数据长期由金蝶云星空维护,下游生产排程、采协同模块却跑在美云智数上。早期两边各录一份,3 个月后出现 200 多条编码不一致、状态错位的问题,采购订单经常推送到「已禁用」或「根本不存在」的供应商。我们用轻易云数据集成平台承接了「金蝶供应商 → 美云智数」这一条策略,把供应商档案统一定义在源端,目标端只做接收与落库,业务问题才算真正收敛。
数据流向与字段映射
整体流向是 金蝶云星空(QUERY,executeBillQuery) → 轻易云中间层 → 美云智数(WebAPI,/api/mesapi/supplier/addorupdate),数据语义保持「以源端为权威」。
| 业务含义 | 源端字段(金蝶) | 目标端字段(美云) | 类型 | 备注 |
|---|---|---|---|---|
| 实体主键 | FSupplierId | FSupplierId | string/int | 主数据同一性锚点,建议作为幂等键 |
| 编码 | FNumber | FNumber | string | 双方业务编码必须严格一致 |
| 名称 | FName | FName | string | 长名称需注意目标端字符长度限制 |
| 描述 | FDescription | FDescription | string | 可空 |
| 简称 | FShortName | FShortName | string | 用于列表/报表展示 |
| 禁用状态 | FForbidStatus | FForbidStatus | string | 来源字段决定目标端是否禁用 |
实际项目里,「编码映射集中管理」是轻易云客户最常见的应对模式——所有 FNumber → 业务编码的规则都放在中间层的映射表,而不是散落在各目标端。
在轻易云上如何配置
源端注册成 QUERY 类型的元数据,API 选 executeBillQuery,POST 方式按 FName 单据字段过滤;目标端注册成 WebAPI 类型的执行接口,POST 到美云智数的 /api/mesapi/supplier/addorupdate。
配置要点:
- 请求字段用变量绑定:目标端 Request 数组里所有
value写成{{FNumber}}、{{FName}}这种占位符,由轻易云在运行时替换,避免硬编码。 - idCheck 开启:源端
idCheck=false(查询阶段不强校验),目标端idCheck=true,让 upsert 接口按 FSupplierId 判断新增还是更新,实现幂等。 - buildModel + autoFillResponse:源端开启自动建模,目标端请求字段会自动带出,减少手工录入。
- 私有化网络打通:轻易云运行节点需要同时可达金蝶云星空的查询接口与美云智数内网 API,网关白名单提前申请。
- 状态字段不轻易改:FForbidStatus 直接透传,不在中间层做「启用→禁用」业务判断,避免一条策略承担过多语义。
实施步骤
我们通常按「增量起点 → 全量触发 → 调度频率」三段式推进:
- 阶段一,增量起点(第 1 周):用 FSupplierId 范围或最后修改时间做初始边界,先把「最近 90 天变动」的供应商推过去,验证字段、字符集、空值处理。
- 阶段二,全量触发(第 2 周):放开增量条件,跑一次全量,核对两边供应商总数与禁用状态;轻易云跑全量时建议错峰在凌晨 02:00-05:00,降低对源端的查询压力。
- 阶段三,调度频率(上线后):源端 crontab
*/3 7-21 * * *(每 3 分钟一轮,工作时段),目标端错开2-59/3 7-21 * * *,避免上下游同秒并发。
「增量与全量双轨」是轻易云客户常用的应对模式——平时增量轮询,每月一次定时全量兜底,保证漏单能被追回。
踩坑复盘
- 编码带前导空格:金蝶导出的 FNumber 偶尔带不可见字符,直接推到美云后两边对不上;稳妥的做法是在轻易云中间层做
trim()清洗。 - FForbidStatus 语义不一致:金蝶里「禁用」和「未审核」是两个状态,目标端只识别一个布尔;典型错误是把所有未审核都当成禁用同步过去,导致下游供应商一夜消失。
- 长名称被截断:FName 超过目标端长度上限时,WebAPI 直接报错整条失败;建议在中间层做超长截断并写入日志,而不是让单条失败拖垮整批。
- 全量不分页:
executeBillQuery没传分页参数时,几万条供应商一次性返回容易超时;稳妥做法是按 1000 条/页循环,每页独立事务。 - 时区与日期格式:源端日期字段若带时间戳,推到目标端需要按目标时区归一化,不然审计日志会全部错位。
适用场景与不适用场景
适用:单一权威源 + 单/多目标端的供应商档案分发;需要严格幂等、状态实时同步的私有化供应链场景。
不适用:供应商档案由业务部门在目标端就地维护(双向同步);或目标端要求走严格审批流而非 upsert 的场景,本策略的 idCheck 设计不再成立。