ERP/MES/QMS 流程编排——三套系统如何不「打架」
摘要:ERP 管订单、MES 管生产、QMS 管质量,三家数据各写各的,检验结果到月底才发现异常——这是大多数制造企业数字化转型中的真实阵痛。本文从流程编排的视角,梳理三套系统的数据流关系、常见冲突场景以及可落地的集成方案。
一、案例:一张不合格单走了六天「长征」
某汽车零部件厂全检工序发现一批产品尺寸超差,质检员在 QMS 中开具不合格品处理单。按制度,该单据需要依次经过:品质主管审批 → 技术工程师分析 → 生产计划调整 → 仓库冻结 → 财务扣款。理想情况下应在 4 小时内完成闭环。
实际情况是:不合格单在 QMS 里审批通过后,需要人工通知生管在 ERP 中锁定库存,再通知 MES 暂停对应工序的排产,最后还要手动修改车间看板。——系统之间没有流程联动,全靠人工传递信息。 最终该批产品在 MES 中继续被投入下一工序,造成 300 件返工。
这不是 IT 系统太少的问题,而是系统各自为政、流程编排缺失的典型后果。
二、ERP / MES / QMS 的定位差异
三套系统本质上是面向不同层级、不同时间粒度的管理需求:
| 维度 | ERP | MES | QMS |
|---|---|---|---|
| 核心关注 | 资源与订单 | 执行与追溯 | 符合性与改进 |
| 时间粒度 | 天/周级 | 分钟/秒级 | 批次/事件级 |
| 主要用户 | 财务、采购、销售 | 车间、工艺、设备 | 品质、实验室 |
| 数据流向 | 计划层(WBS/工单) | 执行层(报工/投料) | 检验层(检测/不合格品) |
关键认知:这三套系统不是替代关系,而是互补关系。 ERP 告诉 MES「今天要做什么」,MES 告诉 ERP「实际做了什么」,QMS 则在每个检控节点验证「做得对不对」,并将不合格信息反馈给 MES 和 ERP 进行闭环处理。
三、五个高频冲突场景及编排方案
场景一:来料检验触发收货
冲突出在哪里?
采购订单在 ERP 中到货,仓库等待 QMS 的来料检验结果才能确认收货。结果:检验结果在 QMS 中已经判定合格,但 ERP 中该订单仍处于「待检」状态,仓库无法做后续的入库上架,采购部门也无法确认该批货款是否应进入付款流程。更糟糕的是,如果该批物料是急用料,生产线已经在等料开工,每多等一小时都是真金白银的产线停线损失。
编排方案:
采购到货 → ERP 创建待检状态 → QMS 分配到检任务
↓(检验完成,结果回传)
ERP 自动完成收货 + MES 自动释放库存可用量
关键实现:在 QMS 检验完成并判定为合格时,通过 API 向 ERP 推送「收货确认」信号,同时携带检验报告编号、批号、数量等必要字段。不合格则触发 ERP 退货流程(生成退货单),同时通知 MES 冻结该批次,避免被生产领用。
在无法实现 API 实时联动的过渡期,可以设置中间表方案:QMS 将检验结果写入共享数据库的 iqc_result 表,ERP 以每分钟一次的频率轮询该表,发现合格记录后自动执行收货动作。虽然有一分钟左右的延迟,但远优于人工手工操作数小时甚至跨天处理的问题。
场景二:过程检验触发产线停/放
冲突出在哪里?
QMS 发现过程异常,判定产线需停线整改。但 MES 仍在按原计划排产,因为没有收到停线信号。
编排方案:
QMS 判定异常 → MES 暂停对应工序/工单
↓(整改完成)
QMS 验证合格 → MES 恢复排产 + ERP 记录异常工时的调整
这里的核心是:MES 必须暴露「产线状态控制」接口,QMS 异常判定直接写入该接口,跳过人工转述。 如果 MES 不开放该接口,退而求其次的方案是在 QMS 判定后自动向 MES 操作员推送「建议停线」工单,由操作员一键确认。
场景三:不合格品处理跨系统
冲突出在哪里?
不合格品处理单在 QMS 内走完审批流后,需要跨系统执行的后续动作(库存冻结、工单返工、成本重算)停留在「人工通知」阶段——系统 A 做完了,系统 B 不知道。
编排方案:
建立统一的「不合格品处理事件」广播机制:
| QMS 事件 | 下游动作 |
|---|---|
| 判定报废 | ERP 冻结库存 + 财务调整成本 |
| 判定返工 | MES 创建返工工单 + 设备重新分配 |
| 判定让步接收 | ERP 更新批号等级 + 客户通知 |
| 判定退货 | ERP 创建退货单 + 采购追责 |
场景四:变更通知波及在制品
工程变更(ECO/ECN)在 QMS 中审批通过后,影响范围可能涉及:
- ERP 中未开工的采购订单需要切换新物料
- MES 中正在加工的在制品需要判断是继续加工还是立即切换
- 仓库中已入库但未上线的旧物料需要冻结或退回供应商
这一场景的复杂性在于:不同变更类型(材料变更、工艺变更、规格变更)对在制品的影响判定规则完全不同,很难用统一脚本覆盖。多数企业采取「QMS 审批 → 系统自动计算受影响的单号 → 人工逐条确认」的半自动模式,兼顾效率和风险控制。
编排方案:
QMS 变更审批通过 → 影响范围自动扫描
↓(按物料/工单号匹配)
ERP 标记受影响采购单 + MES 标记受影响在制品
↓
差异处置:继续用完 / 返工 / 报废,结果回传 QMS 形成变更闭环
场景五:供应商绩效自动采集
QMS 中积累了大量来料检验数据,但供应商绩效评分仍在采购部门用 Excel 手工统计。
编排方案:
QMS 来料检验合格率 → 按月自动聚合
↓
ERP 对应供应商记录 → 自动更新供应商绩效评分
↓
评分低于阈值 → 自动触发 ERP 供应商冻结 + 发送改进要求
此场景不需要实时联动,批处理即可(每日/每周定期同步)。关键是数据口径一致——ERP 和 QMS 中的供应商代码必须对齐,否则绩效数据对应不到正确的供应商。
四、流程编排的模式选择
| 模式 | 典型工具 | 适用场景 | 优缺点 |
|---|---|---|---|
| 点对点 API 调用 | REST API / Webhook | 实时性要求高的关键节点(停线、放行) | 优点:响应快;缺点:端点多时维护成本高 |
| 中间表 + 定时同步 | 共享数据库 / 消息表 | 非实时场景(成本核算、绩效统计) | 优点:解耦强;缺点:同步频率影响时效 |
| ESB / 集成平台 | Boomi / MuleSoft / 自研 | 多系统多场景的全面编排 | 优点:统一治理;缺点:实施成本高,中小型工厂可能过度 |
| 事件驱动(EDP) | Kafka / RabbitMQ | 需要广播通知多个下游的场景 | 优点:松耦合、可扩展;缺点:需要消息中间件运维能力 |
对于中小型制造企业来说,不建议一开始就上 ESB 或消息队列——先梳理好 5~8 个核心跨系统流程,用点对点 API 跑通,确认数据流转正确后再考虑引入统一编排平台。先治乱,再上工具。
五、流程编排落地四步法
第一步:绘制跨系统流程地图
选 3~5 个日常高频的跨系统场景(如来料检验、不合格品处理、变更管理),绘制 L2 级别的流程地图,明确每个节点归属哪个系统、哪个角色、输入输出是什么。
关键产出物: 跨系统流程「泳道图」,每条泳道对应一个系统,通道中标注数据接口和数据格式。
第二步:盘点现有系统接口能力
对照流程地图,检查每个系统的 API 能力:
- ERP 是否开放了订单状态修改接口?
- MES 是否提供了产线控制接口?
- QMS 是否能主动推送事件?
对于不开放接口的旧系统,可考虑以下替代方案:系统脚本自动操作(RPA)、数据库触发器(只读库同步)、人工确认节点(系统推送待办任务由操作员确认执行),但每个替代方案都意味着编排链路中增加了一个「手动挡」。
第三步:按优先级依次上线
建议按「高频率 + 高风险 = 优先」的原则排序。优先级矩阵的横轴为频率(每日 / 每周 / 每月),纵轴为影响程度(造成停线 / 造成返工 / 只是效率损失):
- 来料检验 → 收货(日频、高影响)—— 这是最容易出现「等料停产」的场景,也是最多企业的切入口
- 不合格品 → 冻结/返工(周频、高影响)—— 库存冻结不及时会导致不合格品被继续投料,后果严重
- 工程变更 → 工单通知(月频、中影响)—— 频率不高但波及面广,一套规则处理好可以覆盖 80% 的变更场景
- 供应商绩效 → 评价自动更新(月频、低影响)—— 对时效性要求不高,适合作为最后一批上线
第四步:建立 Runbook 和异常处理
流程编排最大的风险在于:自动化链路中断了,没有人知道。 为每个编排流程建立 Runbook,明确:
- 正常流转的确认信号是什么(监控指标)
- 链路中断时由谁、在多少时间内介入处理
- 手动降级流程是什么(当系统不可用时的人工备用路径)
- 自动重试机制与重试上限
六、常见失败原因
原因一:只做了数据同步,没做流程同步
很多企业把系统打通理解为「数据从一个库复制到另一个库」,忽略了流程编排需要的状态同步。例如:ERP 收到了 QMS 的检验合格数据,但没有触发状态从「待检」到「已确认」的变更,后续的财务结算流程就不会自动触发。
纠正:每个数据接口都应附带明确的状态迁移指令,而非仅仅是数据拷贝。
原因二:编排逻辑写死在单一系统中
有的企业将跨系统流程逻辑全部实现在 QMS 的定制开发中。当 QMS 升级或切换时,整个编排网络瘫痪。
纠正:编排逻辑应位于系统之外——要么放在 ESB/集成平台,要么放在独立的流程引擎中,各系统只暴露原子操作接口。
原因三:忽视异常频率的监控
「自动化跑了三个月都没出问题」不是评估编排质量的正确方式。应该追问:中间件日志中有多少次重试?有多少次异常需要人工介入?QMS 推送到 ERP 的数据被原地修改过几次?某次 X 客户审核时发现因接口超时导致 200+ 张不合格单未被 ERP 接收,QMS 和 ERP 双方都不知道,直到客户追溯时才暴露出来——不是功能有问题,而是异常的可见性为零。
纠正:为每个编排流程设置异常率和手动介入次数的 KPI,持续监控改进。建议在集成看板上至少展示以下指标:接口成功率、平均响应时间、异常次数、待人工介入数量、末次成功运行时间。每个指标设定告警阈值,当成功率低于 98% 时触发通知。
打通系统的最终目的不是「数据在一个地方」,而是「人不当传话筒」。
知识编号:12.1.1
版本:v20260716
作者:卓越质量智库 卓越质量智库致力于为质量管理从业者提供系统化的专业知识、方法论与实战工具,助力企业质量能力持续提升。
