轻易云
注册体验

BOM 物料清单同步实战:金蝶云星空 → 四化智造 MES 修改场景深度拆解

· 系统管理员· 集成方案库· 8 次浏览· 约 4 分钟读完
四化智造MES(API)金蝶云星空BOM同步MES轻易云增量同步基础资料

这个策略解决什么问题

在制造业 ERP + MES 的双系统架构里,BOM(物料清单)是车间领料、齐套分析、成本核算的源头。某制造企业的 ERP 端 BOM 一旦变更(用量调整、新增替代料、损耗率修订),MES 端如果不能及时反映,车间就会按旧版本投产,导致工单报废和库存虚增。本策略专门处理 BOM 的修改同步:把金蝶云星空已审核或已关闭的 BOM,按修改/审批时间增量推到四化智造 MES 的 editBom 接口,确保车间侧始终拿着最新版工艺路线。

数据流向与字段映射

数据流向:金蝶云星空(BOM) → 轻易云数据集成平台 → 四化智造 MES(BOM editBom)

平台作为中间层,负责取数、清洗、转换和下发,不持久化业务主数据。关键字段对照如下:

目标字段(MES)源字段/规则(金蝶)映射类型说明
companyCode固定常量CONSTANT公司代码
erpIdFIDDIRECT金蝶 BOM 主键
erpParentId"0"CONSTANT根节点固定为 0
materialUuidFMATERIALIDDIRECT父项物料主键
outerPartNoFMATERIALID_FNumberDIRECT父项物料编码
doseSon"1"CONSTANT用量分子(可改为 FNUMERATOR)
doseMom"1"CONSTANT用量分母(可改为 FDENOMINATOR)
lossRateFSCRAPRATEDIRECT变动损耗率
sourceFITEMPPROPERTYDIRECT1 外购 / 2 自制 / 3 委外
property"1"CONSTANT固定为实物
bomVersionFNumberDIRECTBOM 版本号
createNameFCreatorIdDIRECT创建人
createTimeREPLACE(FCreateDate,'T',' ')TRANSFORMISO 时间转 YYYY-MM-DD HH:mm:ss
updateNameFCreatorIdDIRECT修改人(可改为 FModifierId)
updateTime""CONSTANT可改为 REPLACE(FModifyDate,'T',' ')
itemsrefund_order_listCOLLECTION子项集合,需单独配置

在轻易云上如何配置

在 Qeasy 轻易云数据集成平台里,这条策略对应一个独立的「同步方案」,配置分三块:

  1. 源端:executeBillQuery(ENG_BOM)POST 查询,过滤条件为 FDocumentStatus in ('C','D')FModifyDate|FApproveDate >= LAST_SYNC_TIMELAST_SYNC_TIME 由平台自动维护,无需人工干预。
  2. 目标端:WebAPI POST /api/bom/editBom,idCheck=true,意味着平台在写入前会拿 erpId 去 MES 端校验存在性,避免误创建。
  3. 字段映射:表头走「字段对照」配置,表体(items)走「子项集合」配置,平台支持嵌套数组结构。_function REPLACE 直接写在表达式框里即可,平台还提供 _findCollection(跨方案联查)和 _mongoQuery(复杂条件)作为高级工具。

实施步骤

  • T0 增量起点:首次上线时,把 LAST_SYNC_TIME 设为项目启动日 00:00:00,先跑一次「全量回灌」,把已审核 BOM 一次性推过去,确保两边基线一致。
  • T1 全量触发:在轻易云方案上点「全量执行」按钮,平台会忽略时间戳过滤,按当前过滤条件把符合状态的全部 BOM 推到 MES。建议放在凌晨业务低峰。
  • T2 调度频率:crontab 设为 * 7-22 * * *,即每天 7:00–22:00 每整点执行一次。覆盖白班作业时间,夜间停机检修期避免无效调用。
  • T3 灰度与回滚:先用 1–2 个 BOM 单据验证表头+表体字段无误,再放开全量。轻易云每条同步都有运行日志,失败可单条重跑,不影响后续增量。
  • T4 监控告警:平台自带成功率看板,建议给「BOM 修改同步」单独建一个看板,失败率 > 1% 触发企业微信告警。

踩坑复盘

  1. 首坑:createTime 格式不一致。金蝶返回的是 ISO 8601(2025-12-12T11:21:50),MES 接口要 YYYY-MM-DD HH:mm:ss。稳妥做法是直接用 _function REPLACE('{{FCreateDate}}','T',' '),平台表达式框支持嵌套,不要在前置脚本里改,否则换环境会丢。
  2. 次坑:用量分子分母被默认成 1。模板里 doseSondoseMom 写死为 1,上线后才发现金蝶的 FNUMERATOR/FDENOMINATOR 没传过去,导致工单齐套全错。建议方案评审时就检查「未映射字段清单」,把用量、损耗这些业务强相关字段全部映射。
  3. updateName 错拿创建人。修改场景下 updateName 取的是 FCreatorId,等于永远显示最初创建人。金蝶有 FModifierId 字段,正确做法是改 {{FModifierId.FName}},这样审计追溯才准。
  4. 依赖物料未先同步。BOM 的 materialUuidouterPartNo 依赖父项物料已在 MES 存在。轻易云客户常见的应对模式是把这类依赖做成「序列 A→B」:先跑物料主数据(策略 A),再跑 BOM(策略 B),通过 depends_on 字段声明依赖,平台会自动等待。
  5. 表头表体分阶段上线。BOM 是父子结构,items 子项包含子物料、用量、损耗、行号等。一开始就表头表体一起推,出问题很难定位。稳妥做法是先表头后表体:第一阶段只推表头,验证 erpId/materialUuid;第二阶段再开 items,逐字段比对。

适用场景与不适用场景

适用:ERP(已审核/已关闭状态)→ MES 的 BOM 修改同步,数据量在万级以内,字段映射相对稳定。不适用:BOM 新增(应走 createBom 策略);MES → ERP 反向同步;多级 BOM 层级关系(FParentRowId 未映射);需要实时(秒级)触发的场景(整点调度存在最长 1 小时延迟)。

本文为原创内容,转载请注明出处:/insights/solutions/strat-mes-api-kingdee-cloud-9955-mes-f0bc9f41

评论