4. MES与ERP集成场景
MES与ERP的集成不是一条“万能接口”,而是由多个业务场景组成的接口集合。每个场景都有独立的触发方、数据方向、关键字段、时序约束和异常处理策略。理解这些场景的差异,是设计接口测试用例和上线切换方案的基础。本节围绕五个典型场景展开:生产订单下发、物料同步、库存更新、工单报工、质量数据回传。
一、核心原理:五个场景的数据流向与主责系统
ERP通常负责计划层与财务层,MES负责执行层与现场层。集成场景的本质是“谁产生数据、谁消费数据、谁拥有主数据”。生产订单下发由ERP产生、MES消费;物料同步以ERP为主数据源、MES为从属;库存更新由MES产生消耗与入库、ERP接收并记账;工单报工由MES产生实际产出与工时、ERP接收;质量数据回传由MES产生检验结果、ERP接收并触发后续处理。
这五个场景并非孤立,而是围绕“订单—物料—库存—报工—质量”形成闭环。生产订单下发后,MES需要物料齐套才能开工;开工消耗物料后,库存需要更新;完工后需要报工;报工后质量数据回传,ERP据此完成入库或退货。任何一个环节的接口失败,都会导致后续场景数据不一致。
二、方法流程:各场景的接口设计与测试要点
生产订单下发通常采用ERP主动推送或MES定时拉取。关键字段包括订单号、物料编码、数量、计划开始/结束时间、工艺路线、BOM版本。测试时要重点验证:订单变更(数量调整、取消)能否同步;重复下发是否幂等;MES已开工的订单被ERP取消时如何处理。
物料同步分为全量同步与增量同步。全量用于初始化,增量用于日常变更。关键字段包括物料编码、名称、规格、单位、批次管理标识、安全库存。测试要点是:物料停用后MES是否还能报工;单位换算是否一致;批次属性是否传递正确。
库存更新由MES在领料、退料、完工入库时触发。关键字段包括物料编码、批次、数量、移动类型、关联工单。测试时要验证正负库存、批次追溯、移动类型映射是否正确。工单报工包括产出数量、报废数量、工时、设备、人员。质量数据回传包括检验项目、检验结果、不合格原因、处置意见。
| 场景 | 方向 | 触发方 | 关键字段 | 典型异常 |
|---|---|---|---|---|
| 生产订单下发 | ERP → MES | ERP | 订单号、物料、数量、BOM版本 | 重复下发、订单取消未同步 |
| 物料同步 | ERP → MES | ERP | 物料编码、单位、批次标识 | 单位换算错误、停用物料仍可用 |
| 库存更新 | MES → ERP | MES | 物料、批次、数量、移动类型 | 负库存、批次追溯断链 |
| 工单报工 | MES → ERP | MES | 工单号、产出、报废、工时 | 重复报工、数量超订单 |
| 质量数据回传 | MES → ERP | MES | 检验项目、结果、不合格原因 | 结果映射错误、回传延迟 |
三、案例/场景:一次订单变更引发的连锁问题
某电子厂ERP将生产订单数量从1000改为800,但接口只推送了主表数量,未推送BOM用量变更。MES按原BOM领料,导致库存更新时多领200套物料。ERP收到库存更新后,财务账与实物账出现差异。复盘发现:订单变更接口未覆盖BOM版本字段,且MES未做数量校验。
修复方案包括:订单变更时强制携带BOM版本;MES在领料前校验订单数量与BOM用量;库存更新接口增加“关联订单号+行号”作为幂等键。这个案例说明,五个场景必须作为一个整体来测试,不能只测单接口。
测试建议:每个场景至少覆盖正常流、边界流、异常流三类用例。正常流验证字段映射;边界流验证数量为零、批次为空、时间跨天;异常流验证接口超时、重复报文、ERP拒绝。
四、误区/复盘:常见集成陷阱
- 误区一:只测接口连通性,不测业务闭环。接口返回200不代表数据正确,必须验证ERP和MES两侧数据一致。
- 误区二:忽略幂等设计。网络重试会导致重复报工、重复库存更新,必须用业务主键做幂等。
- 误区三:主数据不同步。物料、单位、批次属性不一致,会导致后续所有场景失败。
- 误区四:没有对账机制。上线后必须按日对账,发现差异及时补偿。
接口日志示例:
[2025-03-12 08:15:22] ERP→MES 生产订单下发
orderNo=PO20250312001, material=M-1001, qty=800, bomVer=V2
result=SUCCESS, mesOrderId=MO-20250312-001
[2025-03-12 10:30:05] MES→ERP 库存更新
material=M-1001, batch=B250312, qty=-800, moveType=261
refOrder=PO20250312001, result=SUCCESS
[2025-03-12 14:20:11] MES→ERP 工单报工
orderNo=PO20250312001, goodQty=780, scrapQty=20, workHour=16
result=SUCCESS
[2025-03-12 14:25:33] MES→ERP 质量数据回传
orderNo=PO20250312001, inspectItem=外观, result=FAIL, reason=划伤
result=SUCCESS
上线前检查:确认五个场景的接口顺序、幂等键、重试策略、对账频率均已定义;确认ERP与MES的物料、单位、批次、移动类型映射表已冻结;确认异常场景有手工补偿入口。
总结来看,MES与ERP集成的五个典型场景各有侧重,但共享同一套主数据、同一套幂等规则和同一套对账机制。测试与上线工程的核心,不是逐个接口验证,而是围绕业务闭环验证数据一致性。只有把订单、物料、库存、报工、质量串成一条可追溯的数据链,集成才算真正可靠。