3. 主数据集成

ERP、MES、QMS、WMS 四套系统各自有独立的主数据表,但业务上它们描述的是同一批对象:同一个物料、同一份 BOM、同一条工艺路线、同一个供应商、同一个客户。主数据集成要解决的核心问题不是"把数据搬过去",而是让四套系统对同一对象的编码、属性、版本和状态保持可解释的一致。一旦不一致,后果会沿着业务链放大:ERP 按物料 A 下采购订单,WMS 收货时按物料 A' 入库,MES 投料时又找不到 A' 的工艺参数,QMS 检验时按 A 的检验规范判定,最终账实不符、批次追溯断裂。

一、主数据的"主"在哪里:确定权威源

一致性管理的第一步是明确每类主数据的权威源(System of Record)。四系统不能都当"主",否则必然冲突。工程上通常这样划分:

  • 物料主数据:权威源在 ERP。物料编码、基本计量单位、物料组、采购/生产标识由 ERP 创建并维护,MES、QMS、WMS 只读同步。
  • BOM:权威源在 ERP(或 PLM 传入 ERP)。MES 需要 BOM 做投料校验,WMS 需要 BOM 做齐套分析,但都不允许自行修改结构。
  • 工艺路线:权威源在 MES 或工艺管理系统。ERP 只关心工序级的外协/工时,QMS 关心工序对应的检验点,WMS 关心工序间的物料流转。
  • 供应商:权威源在 ERP。QMS 需要供应商的检验资质与历史质量数据,WMS 需要供应商的到货信息,均从 ERP 同步。
  • 客户:权威源在 ERP 或 CRM。MES 需要客户订单对应的特殊工艺要求,QMS 需要客户投诉与退货信息,WMS 需要客户收货地址与标签规则。

权威源确定后,其余系统对该类数据只有"消费权",没有"修改权"。这是避免多头维护的根本前提。

二、一致性管理的三个层次

一致性不是"完全一样",而是分层的:

编码一致是最低要求。同一物料在四系统中必须使用同一个物料编码,不能 ERP 用 MAT-001、WMS 用 M001。如果历史系统已有不同编码,必须建立交叉引用表(Cross Reference),并在集成层做映射,而不是让业务人员手工对照。

属性一致是核心要求。物料的关键属性——计量单位、批次管理标识、保质期、存储条件、检验类型——必须在四系统中语义一致。例如 ERP 中物料标记为"批次管理",WMS 就必须按批次收货,MES 就必须按批次投料,QMS 就必须按批次检验。任何一个系统漏掉这个标识,批次追溯就会断链。

版本一致是最容易被忽视的要求。BOM 和工艺路线都有版本和生效日期。ERP 中 BOM 从 V1.0 切换到 V1.1 的生效时间是 2025-04-01,MES 中的工艺路线也必须同步切换,否则会出现"按新 BOM 领料、按旧工艺生产"的错配。版本一致性要求集成方案必须支持带生效日期的增量同步,而不是简单的全量覆盖。

四系统主数据权威源与同步关系 ERP 物料 · BOM · 供应商 · 客户 MES 工艺路线权威源 QMS 检验规范 · 质量档案 WMS 库存 · 批次 · 库位 物料/BOM/供应商 物料/供应商/客户 物料/供应商/客户 工艺路线 → 检验点 工序物料 检验放行 一致性管理的三个层次 ① 编码一致 同一物料四系统同编码 历史差异建交叉引用表 集成层做映射转换 MAT-001 ↔ M001 ② 属性一致 计量单位/批次标识 保质期/存储条件 检验类型语义统一 批次管理标识必须全系统一致 ③ 版本一致 BOM/工艺路线版本号 生效日期同步切换 带生效日期的增量同步 V1.0 → V1.1 @ 2025-04-01

三、集成方式:从"推"到"拉"的取舍

主数据同步在工程上有三种典型方式,各有适用场景:

事件驱动推送:ERP 中物料创建或修改后,通过消息中间件(如 Kafka、RabbitMQ)发布 MaterialChanged 事件,MES、QMS、WMS 订阅并更新本地副本。优点是实时性好,缺点是要求各系统都能处理消息幂等和乱序。适合物料、供应商、客户这类变更频率中等、实时性要求较高的数据。

定时批量拉取:各系统按固定周期(如每 15 分钟)调用 ERP 提供的增量接口,按 lastModifiedTime 拉取变更记录。优点是实现简单、对 ERP 压力可控,缺点是有一致性延迟窗口。适合 BOM、工艺路线这类变更频率低、但结构复杂的数据。

实时查询:MES 在投料时直接调用 ERP 接口查询 BOM,不在本地存储副本。优点是永远一致,缺点是强依赖网络和 ERP 可用性,且高频调用会影响 ERP 性能。通常只用于关键校验点,不作为主数据同步的常规手段。

实际工程中往往是组合使用:物料、供应商、客户用事件驱动推送保证实时性;BOM 和工艺路线用定时批量拉取,并在切换生效日期时触发一次强制同步;关键投料校验点用实时查询兜底。

四、一致性校验与异常处理

同步机制建立后,还需要一套一致性校验来发现"同步了但不对"的情况。校验通常分两类:

记录级校验:比对四系统中同一物料的属性字段。例如 ERP 中物料 MAT-001 的计量单位是 KG,WMS 中却是 G,这就是属性不一致。校验脚本可以按物料编码逐字段比对,输出差异清单。

业务级校验:检查跨系统的业务引用是否完整。例如 MES 中某工单引用了工艺路线 RT-005,但 ERP 中该工单对应的 BOM 版本已经失效,这就是版本不一致。业务级校验需要结合具体业务场景设计规则。

发现不一致后的处理原则是:以权威源为准,修正消费方。如果 ERP 是物料权威源,WMS 的物料属性与 ERP 不符,就修正 WMS;如果 WMS 已经基于错误属性产生了库存记录,则需要评估影响范围,必要时做库存调整。切忌"两边都改一点",那会制造新的不一致。

五、一个可落地的同步参数示例

以下是一份物料主数据同步的接口参数示例,用于说明集成时需要明确的关键字段。参数为教学示例,实际项目需根据系统能力调整。

{
  "syncType": "INCREMENTAL",
  "sourceSystem": "ERP",
  "targetSystems": ["MES", "QMS", "WMS"],
  "entity": "Material",
  "keyField": "materialCode",
  "lastSyncTime": "2025-03-31T23:59:59+08:00",
  "fields": [
    "materialCode", "materialName", "baseUOM",
    "materialGroup", "batchManaged", "shelfLifeDays",
    "storageCondition", "inspectionType", "status"
  ],
  "versionControl": {
    "enabled": true,
    "effectiveDateField": "validFrom"
  },
  "conflictPolicy": "SOURCE_WINS"
}

其中 batchManaged、inspectionType、validFrom 是三个最关键的字段:批次管理标识决定 WMS 和 MES 的作业方式,检验类型决定 QMS 的检验流程,生效日期决定版本切换的时机。这三个字段一旦同步错误,后续所有业务动作都会偏离。

六、一致性管理的日常运维

主数据一致性不是一次集成就能永久保证的。日常运维需要做到:

  • 变更审批:权威源中的主数据变更必须走审批流,避免随意修改导致下游系统被动跟随。
  • 同步监控:对同步任务的执行状态、延迟时间、失败次数做监控,失败时告警并支持重试。
  • 定期对账:每周或每月执行一次全量一致性校验,输出差异报告,跟踪差异关闭情况。
  • 变更影响分析:当物料属性或 BOM 版本发生变更时,评估对在制工单、在库库存、未清采购订单的影响,必要时冻结相关业务直到同步完成。
最常见的坑是"只同步新增、不同步修改和失效"。物料停用后,如果 WMS 没有同步到停用状态,仍可能被收货;BOM 版本切换后,如果 MES 没有同步生效日期,仍可能按旧版本投料。集成方案必须覆盖新增、修改、失效三种变更类型,并明确每种变更的同步时效要求。

总结来说,四系统主数据一致性管理的核心是:先定权威源,再分层次管一致,用合适的同步方式落地,靠校验和运维兜底。物料、BOM、工艺路线、供应商、客户这五类主数据各有其权威源和同步特点,工程上需要逐类设计同步策略,而不是用一套通用方案套用所有对象。