轻易云
注册体验

BOM 物料清单同步实战:金蝶云星空 → MES 的增量方案与踩坑复盘

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

这个策略解决什么问题

物料清单(BOM)从 ERP(金蝶云星空)下推到 MES,是制造企业上线集成时几乎一定会碰到的环节。它的难点不在于"传得过去",而在于:BOM 是父子结构,子项数量大且会随工艺频繁变更;单据有"草稿/审核/关闭"多种状态;用量、损耗、BOM 版本字段命名两套系统对不上。一次实际项目中,我们见过 BOM 上线 3 个月后,车间反馈领料数量对不上,最后查下来是审核过滤没做、用量分子分母没传。所以这一策略要解决的是:在可控频率下,把已审核或已关闭的 BOM 增量、安全地落到 MES。

数据流向与字段映射

整体流向为 金蝶云星空(源)→ 轻易云数据集成平台(中间层)→ 四化智造 MES(目标)。源端通过 executeBillQuery 拉取 ENG_BOM,目标端通过 /api/bom/createBom(新增)或 /api/bom/editBom(修改)写入。

关键字段对照表如下:

目标字段(MES)源字段/规则(金蝶)映射类型说明
companyCodefdd8dc88CONSTANT公司代码固定常量
erpIdFIDDIRECTERP 主键
erpParentId0CONSTANT根节点固定为 0
materialUuidFMATERIALIDDIRECT父项物料主键
outerPartNoFMATERIALID_FNumberDIRECT父项物料编码
lossRateFSCRAPRATEDIRECT变动损耗率
sourceFITEMPPROPERTYDIRECT1 外购 / 2 自制 / 3 委外
property1CONSTANT实物
bomVersionFNumberDIRECTBOM 版本号
createNameFCreatorIdDIRECT创建人
createTimeREPLACE(FCreateDate,'T',' ')TRANSFORMISO 时间格式标准化
items子项集合COLLECTION子项明细需单独映射

doseSon/doseMom 当前固定为 1/1,是典型的"先跑通后细化"占位值。

在轻易云上如何配置

我们用 Qeasy(轻易云数据集成平台)承接这条策略,配置层面分四块:

  1. 源系统接入:注册金蝶云星空连接,配置 executeBillQuery,表单 ID 选 ENG_BOM,勾选"按时间窗增量"。
  2. 目标系统接入:注册 MES API 连接,配置 /api/bom/createBom/api/bom/editBom 两套接口,分别用于新增和修改。
  3. 字段映射:在轻易云可视化映射面板里,按上表配置 DIRECT / CONSTANT / TRANSFORM / COLLECTION 四类规则;createTime_function REPLACE('{{FCreateDate}}','T',' ') 完成格式归一化。
  4. 编码映射集中管理:金蝶 FITEMPPROPERTY 与 MES source 编码一致,可直接映射;如果未来出现不一致,把规则提到"编码映射集"中维护,避免散落在各策略里——这是轻易云客户最常见的应对模式之一。

实施步骤

  • 阶段一:物料先于 BOM。BOM 依赖父项物料已在 MES 中存在,先把物料主数据策略跑稳,再开 BOM。本案执行顺序遵循 A→B→C 的 sequence 编排。
  • 阶段二:全量触发。第一次上线用全量:去掉时间过滤,把所有已审核/已关闭 BOM 一次性刷过去,作为基线。
  • 阶段三:切增量。基线完成后,把过滤条件改为 FDocumentStatus in ('C','D') AND (FModifyDate >= LAST_SYNC_TIME OR FApproveDate >= LAST_SYNC_TIME),进入增量模式。
  • 阶段四:调度频率。每整点执行一次(crontab: * 7-22 * * *),覆盖 7:00–22:00 的工作时间。如果 BOM 变更非常频繁,可以缩到每 15 分钟一次,但要注意源端接口 QPS。
  • 阶段五:表头与表体分阶段上线。先跑通表头,再开启 items 子项集合映射;这是另一个轻易云客户常用的稳妥做法——分阶段上线便于定位问题。

踩坑复盘

  1. 审核过滤没加。源端过滤只写时间窗、不限状态,结果把草稿和已驳回 BOM 也推了过去,MES 一片混乱。稳妥做法:状态条件优先于时间条件。
  2. 用量分子分母硬编码为 1。首次跑通用 1/1 占位没问题,但忘记后续替换,导致车间用量与设计 BOM 不一致。建议在映射备注里写清"TODO: 待 FNUMERATOR/FDENOMINATOR 接入",并设到期检查。
  3. 日期 T 没替换。金蝶返回 ISO 时间带 T,MES 不识别直接报错。用 _function REPLACE('{{FCreateDate}}','T',' ') 一步解决;这是轻易云表达式函数的典型用法。
  4. 子项集合未配置。表头先跑通,但 items 漏配,结果 MES 里 BOM 没有明细,车间无法领料。表头与表体务必分阶段验证。
  5. 依赖顺序错了。如果先跑 BOM 再跑物料,materialUuid 在 MES 找不到对应物料,会落库失败。轻易云的 depends_on 字段就是用来约束这种前置依赖的。

适用场景与不适用场景

适用:制造企业 ERP 与 MES 解耦建设,BOM 主数据在 ERP 维护、MES 仅消费;单据状态机明确、单据量中等。不适用:BOM 由 MES 端反向维护、变更频次极高(秒级)需走消息队列;以及 ERP 与 MES 是同构或共用数据库的场景。

本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-mes-api-kingdee-cloud-5066-mes-12a434fa

评论