ERP 和 MES 是工厂里最容易”各管一段”的两套系统。接口设计得好,数据一次录入全程贯通;设计得不好,就是两个系统 + 一堆 Excel。这篇文章总结我设计 ERP ↔ MES 接口时固定的几个动作。
第一步:定数据链路,不是定接口
先画出完整的业务链路:订单 → 工单 → 领料 → 报工 → 入库 → 成本。再回答:每个环节的主数据源是谁?哪些数据 ERP 下传 MES,哪些 MES 回传 ERP?接口清单是链路分析的结果,不是起点。
第二步:四个必须定义清楚的机制
- 主数据源:料号、BOM、客户、供应商只能有一个写入点,其他系统只读。两边都能改,等于两边都不对;
- 传输时机:实时(报工类)、准实时(分钟级,工单类)、定时(夜间,对账类)。实时不是越多越好,稳定性优先;
- 字段映射:一张映射表管所有接口,料号规则、单位换算、状态码对照全部写在表里,不许散在代码里;
- 失败处理:重试几次、失败数据去哪里、谁负责处理、多久必须处理完。没有失败处理机制的接口,上线三个月就变成黑洞。
第三步:幂等与对账
网络抖动、程序重启、人为重跑,都会造成同一条数据传两次。接口必须幂等:同样的单号 + 行号重复提交,结果不变。同时必须有每日对账:两边单据数、数量、金额自动核对,差异出报表。对账是接口的最后防线。
常见反模式
- 直接互相写对方的数据库表(系统升级时一起完蛋);
- 没有失败队列,失败数据手工补录;
- 接口日志只有开发看得懂,出了问题业务部门不知道找谁;
- 两边都能改同一条主数据,然后花大量时间查”为什么不一样”。