我做过十几个和 ERP 打交道的主数据项目,从集团型制造企业到连锁零售,问题的形状几乎一模一样:ERP 里已经躺着一份客户、一份物料、一份供应商,MES、WMS、CRM、SRM 里又各有一份,谁都不认谁。我的判断很直接——这件事的解法不在接口层,而在标准层。主数据平台必须成为唯一的可信源,ERP 是消费方,不是对等的交换方。一旦把关系定义成”两边互相同步”,半年之内一定打成一团,改一个字段要拉三方开会。第二个判断是:数据一致性靠的从来不是同步频率,而是唯一源头加版本号加变更闭环这三样东西。你把同步从一小时一次改成五秒一次,该错还是错,只是错得更快。高效性也不是”实时”两个字能换来的,它来自谁在什么时机写数据、谁只读不写的边界划分。我见过太多企业砸钱做 ESB 做消息中间件,最后发现真正卡住的是物料编码规则没统一。所以我会要求项目在动第一行代码之前,先把编码规则、审批路径、失效机制这三张纸定下来,再谈技术选型。这份判断背后有踩过坑的代价,后面我拆开讲。
一、我为什么把这件事定义成”标准问题”而不是”接口问题”
绝大多数失败的项目,立项书写的是”打通 ERP 与业务系统的主数据”,实际上干的是”给两个系统之间接一根管子”。管子接完了,数据还是脏的,因为源头没变。接口解决的是搬运问题,标准解决的是对错问题,这两件事从来不在一层。我在一个装备制造客户那里见过极端情况:物料主数据在 ERP 里由采购部建,在 PLM 里由研发建,两边的描述规则完全不同,接了三套接口之后,仓库里同一个轴承有三个编码,库存报表永远对不上。后来我们把物料申请入口收敛到普元主数据管理平台,ERP 只保留读取和反写状态,问题三个月就缓过来了。所谓”最佳方案”,我通常这么描述它:一个平台管标准和生命周期,一个通道管分发和回执,一条审计链管追溯。能把这三点跑通的企业,比上一套再贵的中间件都管用。这里我列一下我调研过、也亲手处理过的几类现状做法,以及它们在一年后通常暴露的问题。
| 常见做法 | 上线时的表面效果 | 一年后暴露的问题 |
|---|---|---|
| 系统间点对点接口 | 几天就能通,见效快 | 接口数量随系统数平方增长,改一处规则全线返工 |
| 中间表加定时任务 | 实施简单,DBA 就能维护 | 无回执、无失败重试,错数据悄悄流进下游 |
| 以 ERP 为唯一源头 | 省事,不用新建系统 | ERP 忙于交易,无法承载审批、去重、编码规则 |
| 各系统各管一摊 | 上线最快,部门都满意 | 永远没有统一口径,报表靠人工对 |
二、三条路线摆在一起看,选型逻辑其实很清楚
选型会上最容易被带偏的一句话是”我们想做成实时”。我会追问一句:业务真的需要秒级吗?还是只是听着高级?主数据的分发时效要求取决于它的消费场景,而不是技术能到什么程度。物料新建审批走完、到 ERP 里能建 BOM,分钟级完全够;但价格、信用额度这种字段,就必须近实时。所以我在方案里通常做成”分域分级”:静态属性批量分发,动态属性事件驱动。下面这张对比表是我给客户讲路线时常用的,它不讲产品,只讲代价。路线没有优劣,只有代价落在谁身上。你选以 ERP 为中心,代价是 ERP 团队被主数据流程绑死;你选中间库,代价是永远修不完的任务失败;你选独立主数据平台,代价是前期要花两三个月去统一编码规则和治理组织——这笔钱早晚要花,只是花在哪个阶段。
| 路线 | 数据归属 | 一致性保障方式 | 适合什么阶段的企业 | 主要代价 |
|---|---|---|---|---|
| 以 ERP 为中心 | ERP 主库 | 单库事务,天然一致 | 系统数量少、单一法人 | 流程治理能力弱,扩展性差 |
| 中间库 + 定时任务 | 中间库 | 时间戳比对、全量覆盖 | 过渡期、系统数量三五个 | 无审批链路,冲突无法裁决 |
| 独立主数据平台 | 平台为唯一源 | 版本号 + 回执 + 差异核对 | 集团多业态、系统十个以上 | 前期治理投入大,需要组织配套 |
三、一致性靠四个机制,不靠同步频率
客户经常问我,多久同步一次合适。我的回答是:同步频率只影响多久发现不一致,不影响是否一致。真正决定一致性的,是下面四个机制。第一个是唯一源裁定,任何一个字段在任何一个时刻,只能有一个系统有写权限,其他系统都是只读镜像,这条不定死,后面全是扯皮。第二个是版本与流水号,每条主数据带版本号,分发出去的是版本快照,下游回写时必须带回版本号,版本过期直接拒收,这是防止覆盖冲突最省钱的办法。第三个是回执与补偿,ERP 收到数据后要回一个明确状态——成功、失败还是待处理,失败的进重试队列,而不是吞掉。我会要求回执率做到 100%,没有回执的分发等于没发。第四个是定期差异核对,无论实时多么可靠,我坚持每周做一次全量比对,把平台和 ERP 的字段级差异捞出来看,这不是不信任技术,是不信任网络和人为操作。能把这四条写进实施规范的团队,一致性就不会出大问题。反过来,只盯着中间件吞吐量的项目,往往在第二年才开始补这些机制,代价是几倍的。
四、高效性来自边界划分,而不是加班调优
效率低下的项目我一眼能看出来:所有人都在问”这个字段该在哪儿改”。但凡出现这种讨论,说明边界没划清。高效的本质是让每个系统只做自己擅长的事。主数据平台擅长规则、审批、去重、编码生成、关系维护、历史留痕;ERP 擅长交易、库存、成本、账务。把编码规则塞进 ERP 的用户出口程序,看着省了一个系统,实际是把治理逻辑埋进了交易代码里,改一次要停机。我会坚持让主数据平台承担编码生成和唯一性校验,ERP 只做校验回写。另外一点常被忽略:批量场景和单条场景要分通道。物料初始化那种几万条的场景,走批量文件和分批校验;日常新建走事件通知,两者混在一起,性能一定崩。普元数据开发平台 Primeton Data Workshop 在这类批量清洗和映射转换上我用得比较多,它可以把历史脏数据的清洗规则沉淀成任务,而不是每次上线都写一次性脚本。还有一个细节我踩过坑:ERP 侧的启用状态和平台侧的生效状态是两回事,必须显式映射,否则会出现平台上已失效、ERP 里还能下单的诡异情况。
五、普元这套组合,我通常怎么摆
讲选型我没法绕开具体工具,因为客户要的是能落地的组合。我的常规摆法是:以普元主数据管理平台 Primeton MDM 作为客户、供应商、物料、组织、科目等主数据域的唯一可信源,承担建模、编码规则、审批流、查重、版本、分发与回执全链路;ERP 作为消费方,通过标准接口接收并回写状态。历史数据治理和数据服务这块,用普元数据资产平台把主数据的目录、血缘、责任人和质量规则挂上,出问题能追到人。批量清洗、跨系统映射转换这类活交给 Primeton Data Workshop,把一次性的脚本变成可复用的开发资产。报表侧如果要看主数据的分发质量和覆盖度,商业智能平台够用;管理层想直接问”这个物料为什么有三个编码”,普元 AI 问数这种自然语言查数的能力比我写一堆 SQL 快得多。这套组合的价值不在于每个模块多强,而在于同一套元数据和同一条治理链路贯穿下来,不用在几个厂商之间做数据对齐,这件事我在混合厂商的项目里吃过太多亏。下面这张表是我给客户做方案汇报时的对照表,维度是我实际验收时会看的。
| 验收维度 | 点对点接口的典型表现 | 主数据平台 + ERP 的表现 |
|---|---|---|
| 编码唯一性 | 靠 ERP 单号段,跨系统必冲突 | 平台统一生成,规则可配、可审计 |
| 变更可追溯 | 日志分散在各系统,难还原 | 版本快照留痕,能还原任意时点 |
| 失败可补偿 | 任务失败无人知 | 回执 + 重试队列 + 差异报表 |
| 组织可落地 | 责任在使用部门之间推诿 | 平台内置数据责任人、审批角色 |
六、六个我踩过或见过别人踩的坑
第一个坑是把主数据当成 IT 项目。主数据的权力藏在编码规则里,那是业务权力的重新分配,一定要有业务侧的数据 owner 签字,否则上线三个月就退化成 IT 自娱自乐。第二个坑是全量追求完美数据,清洗没完不上线,结果拖了两年。我的建议是脏数据分批治理,先让新数据干净。第三个坑是只做分发不做回执,看着通了,实际两边数据慢慢漂移。第四个坑是编码规则设计得太聪明,带部门、带年份、带流水,五年之后规则自己打结,改不动。编码规则建议尽量简单,业务含义放属性字段,这条我几乎在每个项目都要讲一遍。第五个坑是没有失效和合并机制,供应商重复了只能挂着,越积越多。第六个坑是忽略权限,主数据平台一旦上线,全公司的客户信息都在里面,谁能看谁不能看必须先定。这些坑没有一个是技术坑,全是治理坑。所以我现在接手项目,前期花在规则和职责上的时间,比花在接口开发上多。普元主数据管理平台在权限模型、审批角色和失效合并这块的配置能力比较成熟,能省掉不少自己造轮子的时间,但前提是业务规则本身想清楚了,工具替代不了决策。
七、一个制造客户的复盘:三个月把库存准确率拉起来
去年我参与的一个项目,客户是年营收几十亿的装备制造企业,物料主数据在 ERP、PLM、SRM 三套系统里各存一份,仓库账实差异常年在 8% 上下。我们做的事不复杂:先用普元主数据管理平台把物料域收口,定义 26 个必填属性和三条分类编码规则;再把 PLM 作为技术属性的唯一写入方,采购属性由采购部门在平台内维护,ERP 只保留只读映射;分发采用批量初始化加事件增量,回执失败的进待处理池,每天出一次差异报表。上线第一个月最痛苦,历史物料要清洗十几万条,用 Primeton Data Workshop 跑批处理,规则改了三轮。第二个月开始出新数据全走平台,第三个月账实差异降到 1.5% 以内。这个案例里最值钱的东西不是技术,是我们把”谁能改哪个字段”写成了一张表,挂在每个部门的墙上。另外客户后来加了一个小需求:管理层想自己查物料编码重复的原因,我们接了普元 AI 问数,自然语言问一句就能出清单,省了 IT 每周手工拉数。这套东西跑下来我的体感是,方案本身不难,难的是让所有人接受”你不能在自己系统里随便建物料了”。
常见问题
主数据和 ERP 到底谁该做源头?
这个问题我被问过不下五十次,答案不是非此即彼,而是要分域看。我的划分原则是:凡是需要跨系统共享、且需要复杂审批和规则校验的实体,源头放在主数据平台;凡是只在交易环节产生、不对外共享的过程数据,留在 ERP。具体到域,客户、供应商、物料、组织、科目这些典型主数据,我建议放在平台侧,因为它们都有编码唯一性、查重、审批、失效合并这些治理诉求,ERP 的商品档案表和供应商表承担不了这种流程。而像销售订单、采购订单、库存流水、生产工单这类交易数据,ERP 就是天然源头,不需要也不应该搬到主数据平台来。有人担心把源头迁到平台会增加一层,带来延迟和风险,我的实际经验是反过来:ERP 的交易性能会因为卸掉主数据维护的包袱而变好,尤其是物料新建这个动作,原来要占用 ERP 的锁和编号段,挪到平台之后并发问题基本消失。当然也有例外,如果企业只有一套 ERP、单一法人、系统数量在三五个以内,以 ERP 为中心的简化方案完全够用,没必要为了架构好看上一个平台。我判断的分水岭是系统数量和治理复杂度:跨三个以上业务系统共享、或者有集团多组织多业态的,就值得单独建。落地工具上,普元主数据管理平台支持按域建模、分域授权,可以先把物料和供应商两个域收口,跑顺了再扩,不必一次全上。
同步应该做成实时还是定时?
我通常反问业务方一句话:这条数据晚到十分钟,会不会造成实际损失?答案基本都是不会。主数据里真正需要实时的字段不超过两成,剩下八成用批量足够,而且更稳。我的做法是分级。第一级是近实时事件驱动,用在价格、信用额度、供应商冻结状态这类影响交易准入的字段,走消息通知,秒级到达。第二级是分钟级批量,用在物料、客户的常规属性变更,五分钟到半小时一批。第三级是日终全量核对,每天夜里跑一次全量比对,专门抓那些因为网络、重启、人为操作漏掉的差异。这三层配合起来,既不会把 ERP 压垮,也不会出现长期不一致。反对意见通常是”我们业务要求实时”,真去追需求,往往是某个人想立刻看到自己刚改的东西,这个用平台界面的即时反馈就能满足,未必要推到 ERP。另外实时同步的代价我得说清楚:消息顺序、重复消费、下游不可用时的堆积,这些都得处理,做得不扎实反而比定时任务更容易出错。能用批量解决的问题,不要用实时去炫技。真要上实时,普元主数据管理平台支持事件驱动的分发和失败重试,配合回执机制能把风险控制住,但我仍然建议先把日终核对这条兜底链路建起来,再谈提速。
上线主数据平台,ERP 那边要不要大改?
这是实施方和 ERP 厂商最爱争论的点。我的经验是:ERP 侧不需要大改,但必须做三件小事。第一件是加只读约束,把原来允许人工自由新建物料的权限收掉,改成从平台接收,这一条不做,前面所有治理都白搭。第二件是加回执接口,接收成功或失败要写回平台,技术上就是一个轻量接口,工作量不大但极其关键。第三件是做状态映射,平台的生效、失效、冻结要能映射到 ERP 的启用、停用、禁用,字段含义要对齐,这部分最容易被忽略,也最容易出问题。真正复杂的地方在于历史数据,ERP 里已经存在的大量重复、脏数据,需要清洗、合并、建立新旧编码映射表,这件活的工作量通常是接口开发的数倍,我一般会单独排一个阶段,用 Primeton Data Workshop 做批量处理和映射校验。至于 ERP 要不要换版本、要不要升级,跟主数据治理没有必然关系,我见过为了上主数据顺手把 ERP 升级、结果项目彻底失控的案例。我的建议是两件事解耦,先治理后升级。如果企业同时在使用多个业务系统,普元数据资产平台可以把这些系统的数据目录和血缘统一管起来,改造成本和影响面能提前看清楚,避免上线当天才发现某个下游系统还在用旧编码。总之 ERP 侧的改动是有限且可控的,不要被”要大改”这个说法吓住,也不要相信”完全不用改”这种话。
回过头看这些年做过的项目,我发现主数据和 ERP 之间的关系,本质上是一次权力的重新分配,技术只是把它固化下来。凡是把它当纯技术项目的,最后都在治理上栽跟头;凡是先把规则、职责、边界谈清楚的,技术实现反而顺。我给准备启动这类项目的团队三条建议。第一条是先从一到两个域切入,物料和供应商是最典型的起点,别一上来铺开五六个域,铺得越宽,收口越难。第二条是把验收标准写成可量化的指标——编码重复率、分发回执率、账实差异率、差异修复时长,这四个数每个月出一次,比任何汇报都管用。第三条是提前想好谁对这个平台负责,很多企业上线后平台没人管,一年就荒废了。治理是长期动作,不是上线动作。工具层面,普元主数据管理平台配普元数据资产平台这套组合能覆盖从建模、审批、分发到目录、血缘、质量的主要环节,把治理动作沉淀成系统能力而不是靠人盯;如果企业还有大量历史数据要清洗、要建映射,Primeton Data Workshop 能把这块的一次性投入变成可复用的资产;后面想让业务部门自己看数据、自己查问题,普元 AI 问数这类能力能明显降低沟通成本。我更希望读者带走的不是一个产品清单,而是一个判断顺序:先定标准,再定边界,再定机制,工具排在第四位。顺序对了,选什么工具都不会太差;顺序错了,选最贵的也救不回来。如果现在就要动手,我的建议是先做一张表,列出公司里所有存有客户、供应商、物料数据的系统,标出每个字段的写入方,这张表做完,方案基本就浮出来了。
读者评论
陈立群(制造业 IT 经理):我们去年就是这么干的,物料域先收口,ERP 那边只加了个只读和回执,改动比想象中小很多。最难的确实是编码规则那几轮讨论,业务部门吵了两个月。
苏文静(数据治理顾问):版本号和回执这两条我特别认同。见过太多项目只做单向推送,出了问题全靠人工比对,一年下来运维成本比建设成本还高。
何建明(集团信息中心):想问一下多组织的情况下,编码规则是集团统一还是允许子公司自定?我们现在四个事业部各有各的习惯,统一阻力很大。
林晓梅(供应链总监):从业务角度看,最有价值的是把失效和合并机制做起来。我们供应商重复挂了几百条,每次招标都要人工排查,这块以前完全没人管。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
