一家企业上了新的销售系统,和原有ERP对接。上线一个月,库存数据两边不一致,仓库按ERP发,销售按新系统卖,超卖了十几单。根子在一个问题没想清楚:库存以谁为准。
主数据必须只有一个源头
客户以及商品跟仓库和供应商这些主数据,每一项都要明确归属系统。归属方负责新增和修改,另一方只读或接收同步。两边都能改,一定会打架,而且打得没完。常见做法是ERP管商品和库存,CRM管客户和商机,财务数据以财务系统为准。
这套划分是按业务归属来的,比较自然。定了之后写进对接文档。谁也别越界。双向同步看着方便,实际最难维护。两边都能写,就会产生冲突:A改了价格,B也改了价格,谁赢?
同步方向要单向为主
加时间戳判断也解决不了时钟不一致的问题。更稳的做法是单向同步加反向回执。ERP把库存推给销售系统,销售系统只读;销售产生订单后推回ERP,ERP处理后回传状态。
数据流是清晰的,出问题也好追。对接一定会失败:网络抖动、对方系统维护跟数据格式不符。所以要有一个失败队列,失败的记录留着,支持重推,而不是报个错就没了。没有这个机制,数据会慢慢对不上。
同步失败要能补
还要有对账机制。每天比对一次两边的关键数据总量和金额。不一致就报警。人工发现不一致往往已经过了很久,自动对账能提前发现。末了说句心里话:对接不是把接口连上就完了。主数据归属清、方向定和失败能补,才不会越接越乱。先改哪一块?
ERP 对接的常见疑问
对接时数据以谁为准
每类主数据明确单一归属系统,归属方负责修改,另一方只读或接收同步。
能不能做双向同步
技术上可行但难维护,容易冲突。建议以单向同步加回执为主。
同步失败怎么办
保留失败队列支持重推,并建立每日对账机制主动发现不一致。
对账之外,还要定期做数据校验。抽样比对两边的关键字段,比如订单金额、客户等级,看有没有在同步中变形。这比只看条数更能发现问题。
上线初期建议每天人工看一眼同步日志,跑顺之后再逐步放手。一上来就全自动,问题会积得很深。
总结:系统对接先定规则。主数据单一源头、同步单向为主和失败可补,才接得稳。