ERP 很少孤立存在。K3 通常要跟 MES、WMS、OA、电商平台、财务系统打通。结合见过的案例,梳理几个反复出现的问题。
第一坑:主数据没有唯一权威源
物料、客户、供应商这些主数据,在多个系统里各存一份,各自的编码规则和历史数据不同步。
结果是同一家供应商在 ERP 里是 A001,在采购系统里是 SUP-023,对账的时候要人工映射。
正确做法:明确主数据的权威源,其他系统只做引用。新增和变更必须走权威源,再同步出去。这个原则说起来简单,执行时最难的是打破各部门各自维护的习惯。
第二坑:同步没有幂等设计
网络超时、服务重启都会导致重复消息。如果同步接口不是幂等的,重复消费会造成重复单据。
解决办法:每条同步消息带唯一业务键,接收方按业务键去重。同时发送方要有重试机制,但重试必须带相同的业务键。
第三坑:把同步做成实时而没考虑失败处理
实时同步看起来美好,但链路上的任何一环抖动都会造成数据不一致。
更稳妥的做法:允许最终一致,但必须有对账机制。每天跑一次全量或增量对账,把不一致的记录列出来告警。
没有对账的同步等于埋雷——不一致会一直累积,直到某天爆出来。
第四坑:错误处理只有日志没有告警
同步失败了写条日志,没人看。等到业务发现数据不对,可能已经错了好几天。
失败的同步必须有告警,而且要按失败类型分级:网络抖动重试成功的不用管,业务校验失败的必须人工介入。
第五坑:接口没有版本管理
ERP 升级、接口改造之后,老版本的调用方挂掉。
接口设计时就要带版本号,升级时保留老版本一段时间,给调用方迁移窗口。
一些实用建议
集成接口要记录完整的请求和响应。出问题时这是唯一的排查依据,而且要在问题发生前就配上,不是出事后再加。
同步任务要能手动重跑。自动重试解决不了的问题,最终还是要人来处理,手动重跑的能力很重要。
监控要覆盖业务指标而不只是技术指标。「接口返回 200」不等于「数据正确」,最好能监控关键业务数据的完整性。
最后一条
集成的复杂度跟系统数量是超线性关系。每加一个系统,要考虑的不只是这一条链路,而是它对现有所有链路的影响。所以在加新系统之前,先想想现有的集成能不能复用。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。