2. ERP核心对象与接口

在ERP-MES-SCADA三层集成架构中,ERP是业务意图的源头。MES要排产、SCADA要执行,前提是ERP把“做什么、用什么做、做多少、在哪做、成本归谁”这五件事以结构化数据的形式暴露出来。本节聚焦ERP侧六个核心对象——生产订单、物料主数据、BOM、工艺路线、库存与成本中心,逐一分析它们的数据结构、可供集成的字段,以及实际可用的接口形态。

一、生产订单:集成的主驱动对象

生产订单(Production Order)是ERP向MES下达生产任务的核心载体。一张典型的生产订单包含:订单号、物料编码、计划数量、计划开始/结束日期、实际开始/结束日期、订单状态(创建/下达/确认/技术完成/关闭)、收货库存地点、工作中心、优先级等字段。MES最关心的是“已下达”状态的生产订单,因为只有下达后才允许报工和领料。

集成时通常采用两种方式:一是ERP主动推送,当订单状态变为“下达”时,通过中间件或消息队列将订单头+行项目推送给MES;二是MES定时轮询,通过RFC/BAPI或REST API按状态和时间戳拉取增量订单。以SAP为例,常用接口包括BAPI_PRODORD_GET_LIST(按条件查询订单列表)和BAPI_PRODORD_GET_DETAIL(获取订单明细,含组件、工序、状态)。实际工程中建议采用“事件驱动+定时补偿”的混合模式:状态变更时推送,同时每5分钟轮询一次防止消息丢失。

二、物料主数据:集成的语义基础

物料主数据(Material Master)是所有对象引用的“字典”。MES侧如果物料编码与ERP不一致,后续所有集成都会失败。物料主数据的关键字段包括:物料编码、物料描述、基本计量单位、物料类型(成品/半成品/原材料)、物料组、批次管理标识、序列号管理标识、采购类型(自制/外购)、MRP控制者等。

集成时需特别注意三点:第一,计量单位必须统一,ERP中可能存在基本单位与库存单位不一致的情况,MES报工时应明确使用哪个单位;第二,批次管理标识决定MES是否需要采集批次信息,若ERP侧启用了批次管理,MES报工时必须回传批次号;第三,物料状态(如“冻结”“待检”)会影响MES能否投料,需在接口中同步状态字段。常用接口为BAPI_MATERIAL_GET_DETAIL或通过OData服务读取。

三、BOM与工艺路线:结构与工艺的双重约束

BOM(Bill of Materials)定义“用什么做”,工艺路线(Routing)定义“怎么做”。两者共同构成生产订单的技术底座。

BOM在ERP中以父子层级存储,关键字段包括:父项物料、子项物料、组件数量、计量单位、损耗率、生效日期、替代物料组。MES需要根据BOM生成投料清单和齐套检查逻辑。集成时通常按“父项物料+工厂+有效日期”查询,接口如CS_BILLOFMATERIAL_READ或BAPI_MATERIAL_BOM_GET。

工艺路线包含工序号、工作中心、标准工时、机器时间、人工时间、检验标识等。MES据此生成工单工序序列,并作为报工和排产的依据。集成时需注意工序号在ERP与MES中的映射关系,以及工作中心编码是否与SCADA侧设备编码对齐。常用接口为BAPI_ROUTING_GET_DETAIL。

ERP核心对象与MES集成接口关系图 ERP 侧 生产订单 Production Order 订单号 | 物料 | 数量 | 状态 | 日期 | 工作中心 BAPI_PRODORD_GET_LIST / GET_DETAIL 物料主数据 Material Master 物料编码 | 描述 | 单位 | 类型 | 批次标识 | 状态 BAPI_MATERIAL_GET_DETAIL / OData BOM 父项 | 子项 | 数量 损耗 | 有效期 工艺路线 Routing 工序 | 工作中心 标准工时 | 检验标识 库存 Inventory 库存地点 | 批次 可用量 | 预留 成本中心 Cost Center 成本中心编码 作业类型 | 费率 MES 侧 工单接收与排产 订单状态校验 → 工序序列生成 → 资源分配 投料与齐套检查 BOM展开 → 库存可用量比对 → 缺料预警 报工与批次追溯 工序报工 → 批次采集 → 回传ERP确认 成本归集 工时/机时采集 → 成本中心映射 → 回传 SCADA指令下发 工序参数 → 设备指令 → 状态回传 报工/入库回传 实线:ERP→MES 主数据/订单下发  虚线:MES→ERP 执行结果回传

四、库存与成本中心:执行反馈与成本归集

库存对象在集成中承担两个角色:一是投料前的可用量校验,MES需要知道某物料在某库存地点、某批次的非限制使用库存量;二是完工后的入库回传,MES报工完成后需通知ERP增加成品库存。关键接口包括BAPI_GOODSMVT_CREATE(货物移动过账)和库存查询类RFC。实际项目中,库存校验建议在MES侧做本地缓存+定时刷新,避免每次投料都实时调用ERP造成性能瓶颈。

成本中心是ERP成本核算的归集单元。MES采集的工时、机时、废品数量最终要按成本中心回传,ERP据此计算作业成本和差异。集成字段包括成本中心编码、作业类型(如机器工时、人工工时)、实际作业量。接口通常为BAPI_ACTIVITYTYPE_GET_DETAIL或自定义RFC。需注意成本中心与工作中心的映射关系,一个工作中心可能对应多个成本中心,需在集成配置中明确。

五、接口选型与集成策略

ERP侧可供集成的接口形态主要有四类:BAPI/RFC(SAP原生,适合批量、事务性操作)、IDoc(异步消息,适合大批量主数据分发)、OData/REST(现代SAP S/4HANA推荐,适合轻量级查询)、中间表/数据库直连(不推荐,耦合度高但实施快)。选型时需权衡实时性、数据量、事务一致性和运维成本。

实践建议:主数据(物料、BOM、工艺路线)采用“全量初始化+增量变更推送”模式;生产订单采用“状态触发推送+定时补偿轮询”;库存和成本回传采用“批量异步+失败重试队列”。所有接口需记录请求/响应日志,并设置幂等键(如订单号+工序号+时间戳)防止重复过账。

六、集成字段映射示例

以下为生产订单下达接口的字段映射参考(以SAP BAPI_PRODORD_GET_DETAIL返回结构为例):

ERP字段 MES字段 说明
ORDER_NUMBERerpOrderNoERP生产订单号,唯一键
MATERIALmaterialCode物料编码,需与MES物料主数据一致
PLAN_QTYplanQty计划数量,注意单位转换
BASE_UOMuom基本计量单位
START_DATEplanStartTime计划开始日期,需转时间戳
FINISH_DATEplanEndTime计划结束日期
WORK_CENTERworkCenterCode工作中心,需与MES资源映射
ORDER_STATUSorderStatus状态码映射(如REL→已下达)
COMPONENT / QUANTITYcomponentList组件清单,含物料、数量、单位
OPERATION / WORK_CNTRoperationList工序清单,含工序号、工作中心、工时

字段映射不是简单的名称对应,而是语义对齐。例如ERP的“计划数量”可能以基本单位存储,而MES排产需要按销售单位或包装单位计算,中间需要单位换算系数。再如ERP的“工作中心”是成本核算单元,MES的“工作中心”是排产资源单元,两者粒度可能不同,需要在集成层做映射表维护。这些细节决定了集成后系统能否真正跑通业务闭环,而非仅仅“接口通了”。