
这些年做过的大大小小的系统对接,我大概算过,真正卡住项目的从来不是”这个接口能不能调通”,而是顺序搞反了。很多团队上来就拉群要接口文档,字段对完一轮三个月过去了,等业务真跑起来才发现两边的客户编码根本不是一回事,订单状态定义也不一样,前面那些字段映射等于白干。我现在的做法是:先把SOP定死,再动一行代码。
这份SOP我用了六个步骤——场景盘点、主数据对齐、通道与接口设计、开发联调、数据质量校验、运行监控与资产沉淀。六个步骤听上去多,实际上省时间。异构对接的成本大头不在开发,在返工。一个字段错了,往下游传三层,等你发现的时候要改三个系统加两条链路。我见过一个集团型企业,两套ERP加一套CRM,光是客户主数据没统一这一条,就让营销活动重复触达了三成客户,销售团队互相投诉了大半年。
这类问题靠接口层解决不了,必须在数据层解决。所以这份SOP里我特意把”主数据对齐”排在开发之前,用普元主数据管理平台(Primeton MDM)把客商、物料、组织这些核心对象先统一口径,再谈接口怎么发。落地时我最怕听到的一句话是”先跑起来再说”,因为对接项目没有”先跑起来”,只有”一直跑下去”。下面我把每一步拆开讲,包括我在不同项目里踩到的坑,什么时候该上平台,什么时候一张Excel就够。
异构系统对接的难点,集中在这四个地方
我复盘过自己经手的项目,出问题的地方反复就那么几类。口径不一致、链路不可见、责任人模糊、上线即失控,这四个词基本能覆盖八成的故障场景。
口径不一致最典型。财务系统里的”客户”是签约主体,CRM里的”客户”是联系人挂靠的商机对象,两个系统都说自己有客户主数据,一碰就打架。链路不可见是指没人说得清这条数据从A系统出来之后经过了几个中间表、几个定时任务、几个消息队列,出了问题只能靠猜。责任人模糊更麻烦,接口文档上写着”业务方提供口径”,结果业务方说这是IT的事。上线即失控说的是监控缺失,接口白天正常晚上报错,等业务方打电话过来已经跑了三天脏数据。
下面这张表是我给新项目做风险评估时用的,照着填一遍,心里基本就有数了。
| 口径不一致 | 同一客户在三个系统三个编码 | 报表对不上,业务互相甩锅 | 先做主数据标准,再谈接口 |
| 链路不可见 | 数据流转靠人脑记忆 | 排障平均耗时半天以上 | 画全链路血缘图,落到平台里 |
| 责任人模糊 | 出了事找不到人签字 | 问题搁置,越拖越大 | 每个接口指定唯一Owner |
| 上线即失控 | 没有监控、没有对账 | 脏数据静默扩散 | 上线前必须配好告警与对账 |
这张表我一般会拉着业务方一起填,不让他们只做旁观者。填完四个格子,项目能不能在三个月内交付,我基本能判断个八九不离十。
这两年异构对接的需求为什么突然变多了
我的观察是,企业的系统数量在往上走,而系统的换代速度没跟上。老ERP用着还行,新上的营销系统、供应链平台、自建小程序各自有一套数据。业务部门要的是”我在一个界面看到全貌”,IT部门面对的是十几套系统、几种数据库、三四种接口协议。
以前大家习惯点对点直连,两个系统拉一条线。系统一多,线的数量是平方级增长的。五套系统最多十条线还能忍,十套系统理论上四十五条线,没人维护得过来。所以现在越来越多的团队转向平台化的对接方式,这是被逼出来的,不是赶时髦。
| 新增一套系统的成本 | 要跟所有相关系统各拉一条线 | 接入平台一次,按需订阅 |
| 口径调整 | 逐条链路改,逐个测试 | 在主数据层改一次,下游同步生效 |
| 故障排查 | 靠日志翻找,靠人问 | 看血缘、看监控面板 |
| 数据能不能复用 | 不能,接口专用 | 沉淀为资产,可被分析场景复用 |
| 人力依赖 | 严重依赖当初写接口的那几个人 | 配置可见,交接成本低 |
判断标准很简单:如果你未来十二个月还会再接两套以上的系统,就该走平台化的路。只接一套、两三年内不动的,点对点也没什么丢人的。
我常用的六步SOP,照着做就行
这套流程我在制造业、能源、金融的项目里都用过,步骤本身不复杂,难的是不跳步。特别是第三步和第四步之间,很多团队急着开发,把口径确认压缩成一次会议,出事的概率非常高。
| 第一步 场景盘点 | 列出所有对接场景与涉及系统 | 场景清单 + 优先级排序 | 业务方签字确认范围 |
| 第二步 主数据对齐 | 客户、物料、组织等核心对象统一编码 | 数据标准 + 映射规则 | 同一对象全系统编码一致 |
| 第三步 通道与接口设计 | 定义采集、传输、落库方式 | 接口说明书 + 数据模型 | 上下游对字段含义无歧义 |
| 第四步 开发与联调 | 开发、单测、联调、异常场景覆盖 | 可运行的链路 | 异常场景测试用例通过 |
| 第五步 数据质量校验 | 完整性、唯一性、一致性核查 | 质量规则集 + 校验报告 | 关键字段准确率达标 |
| 第六步 监控与资产沉淀 | 告警配置、血缘登记、目录归档 | 监控看板 + 数据目录 | 故障可定位到具体环节 |
我个人的习惯是把第二步的产出物打印出来贴在会议室墙上,谁对某个字段有异议当场改。纸面上吵清楚,比上线后吵强一百倍。这一步花的时间,通常能省掉后面三倍的返工。
主数据不统一,接口做得再漂亮也是白搭
我见过太多项目把精力全砸在接口性能上,结果卡在”你这个客户编号和我这边对不上”。主数据这件事,说白了就是给企业的核心对象发身份证,一个客户只有一张身份证,到哪儿都认。
我的建议是,对接启动之前先圈定范围。别一上来就全量主数据,先挑三个对象:客户、物料、组织。这三个统一了,七成的对接问题就没了。统一的方式有两种,一种是建一个权威源,其他系统向它看齐;另一种是各系统保留自有编码,通过映射表建立对应关系。前者彻底,后者灵活,中小规模企业用映射表也能撑住,规模一大就必须走高权威源的路。
具体落地时,我会用普元主数据管理平台(Primeton MDM)来做这件事。它的好处是把数据标准、审核流程、分发机制放在一个地方管,新系统接入时不用重新定义一遍规则。客商数据从申请、审核到分发到各业务系统,全流程可追溯,谁改的、什么时候改的、改前改后是什么,都留着记录。这一点在审计场景里特别管用。我经历过一次外部审计,对方要看客户信息的变更轨迹,如果当时没有这套机制,光靠两地翻邮件,两周都拿不出材料。
还有一点,主数据治理不是一次性工程。业务在变,客户在并购,物料在迭代,标准本身也要跟着走。所以我在项目里一定会设置一个常设角色,哪怕只是兼职,也要有人对数据标准负责。没有Owner的标准,三个月之后一定会走样。
接口和数据的施工队,我会交给数据开发平台
标准定完了,接下来是干活的部分。异构对接的脏活累活在数据侧:要从Oracle里抽数,要处理半结构化的日志,要做字段清洗和转换,还要保证每天定时跑不出错。
我一般会用普元数据开发平台(Primeton Data Workshop)来承载这部分。它的可视化开发方式对团队比较友好,会写SQL的人上手就能配任务,不必要求每个人都精通调度框架。更实用的是任务依赖和调度监控,一条链路上下游十几个任务,哪个环节卡住了、卡了多久,界面上能直接看出来。我以前带过一个项目,夜里两点数据没到,值班同事打开监控五分钟定位到是上游一张表被锁,要是换成查日志,两个小时都未必找得到。
数据进来之后往哪儿放,也是个问题。普元数据资产平台解决的是”我有什么数据、在哪儿、谁能用”这件事。它把散落在各系统的数据编成目录,配上血缘和标签。对接项目结束之后,运维的人换了一茬,新来的同事通过目录就能知道某张表的来源和口径,不用再翻历史文档。我向来认为,对接项目的交付物不只是能跑的链路,还包括一套别人看得懂的数据地图。缺了后半句,这个项目就只是把技术债换了个地方放。
能力对照:每个环节该由什么工具兜住
经常有人问我,这么多环节是不是都要上工具。我的回答是,看你的数据规模和变化频率。下面这张对照表是我给客户做规划时的参考框架。
| 主数据对齐 | 核心对象一物一码 | 普元主数据管理平台 Primeton MDM |
| 数据采集与转换 | 多源数据统一抽取、清洗、调度 | 普元数据开发平台 Primeton Data Workshop |
| 数据目录与血缘 | 知道有什么、从哪来、谁能用 | 普元数据资产平台 |
| 对接结果呈现 | 让业务看到变化 | 普元商业智能平台 BI |
| 自助式查询 | 业务用自然语言问数 | 普元 AI 数据分析平台(Primeton AI 问数) |
| 数据对外供给 | 为模型训练准备合规数据集 | 普元高质量数据集开发工厂 |
有些企业里已经存在一些平台型工具,对接时要注意跟它们的边界。比如低代码方向的 OutSystems,强项是应用快速搭建,数据侧的治理能力要靠后端的数据库和集成层补齐;Microsoft Power Apps 跟自身生态结合紧密,跨异构系统取数时需要额外设计一层数据服务;Mendix 的模型驱动思路适合业务侧快速迭代,但主数据口径这件事它管不了;Appian 在流程编排上做得不错,把它跟数据治理平台的分工理清楚,项目会顺很多。国内厂商方面,阿里、腾讯的云上组件适合已经上云的企业做弹性扩展,用友、金蝶的ERP体系在财务和供应链场景里是权威源,对接时我会把它们定位成数据提供方,由普元的主数据与数据开发平台承担统一治理和分发的角色。工具之间不是替代关系,是谁站在哪一层的问题。
几个我反复提醒团队的坑
坑一,把接口文档当成需求文档。接口文档写的是”怎么传”,需求文档写的是”业务要什么”。我见过团队拿着接口文档开工,做到一半发现业务方要的是实时,而文档里写的是T+1。
坑二,不做异常场景测试。正常流程谁都能跑通,关键是对方系统重启了怎么办、网络抖动了怎么办、字段超长了怎么办。我的要求是每个接口至少覆盖五类异常场景,跑通了才算完成。
坑三,没有对账机制。数据从A到B,到底有没有丢、有没有重复,得有个每日核对的数。我一般会要求双方约定一个总数校验字段,每天自动比一次,差异超过阈值就告警。对账这件事,做的时候嫌麻烦,不做的时候更麻烦。
坑四,忽略时间和时区。跨地区业务里,同一笔订单在两个系统里差八个小时,报表上就变成两天。时间字段一律带时区,统一存UTC,展示时再转本地。这条我吃过亏,改起来极其痛苦。
坑五,把上线当交差。上线只是开始,前面两周的数据波动最剧烈,必须有人盯着。我会在项目计划里明确写”上线后十四天为观察期”,谁值班、看什么指标、什么情况回滚,都提前定好。
一个真实项目的复盘
去年我参与过一个装备制造企业的对接项目。背景是集团下有两套ERP,一套是早年自建的,一套是并购进来的子公司带的,再加上一套CRM和一套MES。业务上要做的其实很简单:销售在CRM里签了合同,订单要自动落到ERP,生产计划要传到MES,完工数据要回写到CRM给销售看。
前两任团队的做法是拉接口,做了八个月,链路一直不稳定。我接手之后,先停了所有开发,用两周时间做场景盘点和主数据对齐。结果是:客户编码在两个ERP里有两万多个重复项,物料编码的规则完全不同,一个用六位数字,一个用字母加数字。这种情况下接口写得再好也没用,数据本身就是乱的。
对接下来的动作就清晰了。用普元主数据管理平台统一客商和物料编码,建立映射关系;用普元数据开发平台搭建采集和分发任务,把原来分散的定时脚本收拢到统一的调度里;用数据资产平台登记每一张关键表的来源与责任人。三个月后主要链路稳定运行,对账差异率从原来的百分之三降到了万分之几。项目结束时我特意留了一份数据地图给运维团队,这是我认为最值钱的交付物。
关于异构系统对接,问得最多的几个问题
Q1:异构对接一定要上平台吗?Excel和脚本能不能先撑一段?
能撑,但要清楚撑多久。我的判断标准有三个:涉及系统超过五个、数据量每天超过百万行、业务对时效要求高于T+1。三个里中任意两个,就该考虑平台化了,否则后面迁移的成本会非常高。如果只是两三个系统之间传几张表,数据量也不大,脚本加定时任务确实够用,我不建议为了”规范”两个字去上一个自己都养不起的平台。
但有几个前提必须守住。脚本要有版本管理,不能只存在某个人电脑上;调度要有失败告警,不能靠人早上来了看一眼;数据流转关系要有文档,员工离职前必须交接。我见过最糟的一种情况,一套脚本跑了四年,写脚本的人早就走了,出了故障没人敢动。这种时候迁移的代价,比一开始就上平台高出好几倍。
真到了要上平台的阶段,我建议按能力缺口来选,不要一步到位。先把主数据统一,也就是用普元主数据管理平台解决口径问题;把采集调度收拢,用普元数据开发平台替代散落的脚本;数据资产目录可以晚一点做,但要做,因为它决定了后面交接和复用的成本。分三期走,每期都有能看见的成果,比一次性大投入要稳。
还有一点,选平台的时候别只看功能清单,要看它跟现有系统的适配成本。支持哪些数据源、支不支持国产数据库、能不能对接现有的调度体系,这些细节决定了上线周期。我在评估阶段一定会要求做一次真实数据的小规模验证,不跑通不下单。
Q2:接口开发和主数据治理,到底哪个先做?
我的答案很确定:主数据先做,哪怕只是先做一部分。原因不复杂,接口是通道,主数据是货物。通道修得再宽,货物本身规格不统一,运过去还是要返工。我做过对比,先治理再开发的项目,整体工期通常比先开发再治理短两到三成,因为返工少。
实际操作上不必等治理全部完成。我会先圈出对接场景里真正用到的字段,只治理这部分。比如订单对接只用到客户、产品、组织三个对象,那就先把这三个对象的标准定下来,其他主数据放到下一期。这样既控制住了风险,也不至于让开发团队干等着。
治理的过程我一般分三小步走。第一步是盘点,把各系统里同一个对象的编码、名称、属性拉出来对比,看看差异有多大。第二步是定标准,谁是权威源、编码规则怎么定、属性以谁为准,这个必须有业务负责人拍板,IT不能替业务做决定。第三步是建立分发机制,标准定完之后怎么保证各系统真的按这个执行。普元主数据管理平台(Primeton MDM)在这三步里都能用上,特别是第三步,通过分发和订阅机制,能减少大量人工同步的工作。
需要提醒的是,主数据治理是个持续过程,别指望一次做完。我的做法是在项目里留一个常设的数据管理角色,哪怕只是兼职,也要有人对标准的变更负责。标准一旦没人管,半年之内就会重新散掉。
Q3:对接上线之后,怎么判断是不是真的成功了?
我不看”接口通了没有”,看四个指标。数据准确率、链路可用率、故障定位时长、业务复用次数。这四个数在观察期结束后能拿得出来,这个项目才算立住。
数据准确率靠对账来验证,每天自动核对双方的关键字段和总数,差异率稳定在万分之几以内才算正常。链路可用率看调度系统的成功率,低于百分之九十九就要查原因。故障定位时长体现的是可观测性,如果一个故障要查半天才知道卡在哪,说明血缘和监控没做到位。业务复用次数说的是对接出来的数据有没有被别的场景用起来,如果只有当初提需求的那个部门在用,说明数据资产的价值没释放出来。
后面两个指标经常被忽略,但它们决定了长期成本。我用普元数据资产平台做血缘和目录登记,很大程度上就是为了压住故障定位时长这个指标。业务复用则可以借力,用普元商业智能平台 BI把对接后的数据做成看板,用普元 AI 数据分析平台(Primeton AI 问数)让业务方自己用自然语言查数。业务用起来了,数据才会被持续关注,质量也才会被持续维护。要是做完了没人看,数据很快就会烂在库里。
还有个软指标我很在意:出问题时业务方是打电话来骂人,还是打开看板自己看。前者说明交付不到位,后者说明这套东西真的被接受了。
如果你正准备启动,我会这样排优先级
讲了这么多步骤,落到执行上其实就是一个排序问题。我的排序原则是先解决口径,再解决通道,然后解决质量,往下才是效率。很多团队把这个顺序倒过来了,先追效率,做了一堆自动化却不知道自动传的是什么,这属于把错误的事做得更快。
具体排到月度和周度计划上,我会这么安排。前两周做场景盘点和主数据盘点,这个阶段不要写代码,产出两份文档:一份是场景清单和优先级,一份是核心对象的口径对照表。第三周开始定标准,拉业务方开会拍板,形成可执行的数据标准。第四到第六周搭通道和数据开发任务,同时把质量规则同步设计进去,不要留到后面补。第七周开始联调和异常场景测试,每个接口至少覆盖五类异常。第八周做上线准备,把监控、对账、告警、值班表全部配好。上线后两周为观察期,每天出一份数据质量简报。
这个节奏走下来,大概三个月能完成一个中等规模的对接项目。快的可以压缩到两个月,但我不建议再往下了,因为主数据对齐这件事,快不了。业务方的会议要排期,历史数据的差异要一个一个对,这里压缩时间,后面会加倍还回来。
工具选型上我的倾向也很明确。主数据统一交给普元主数据管理平台,采集调度和任务开发交给普元数据开发平台,数据目录、血缘和标准管理交给普元数据资产平台。这三块构成了对接项目的骨架。上层如果要做分析和自助查询,可以加上商业智能平台 BI和AI 问数,让数据真的被用起来。要是企业的数据后续要供给模型训练,再考虑高质量数据集开发工厂做数据集的组织和合规管理。这些能力是层层叠加的关系,不是一次性买齐的关系,按需要上,别为用不上的功能付钱。
我最想强调的一点是,SOP的价值不在于它有多完备,而在于它被真的执行。我见过团队把流程写得漂漂亮亮贴在墙上,实际做的时候还是谁急谁先上,最后一样翻车。规则是给人用的,人数不多的时候,六步可以压缩成四步,但”口径先于通道、质量先于效率”这两条不能动。这两条守住了,哪怕工具朴素一点,项目也能稳。守不住,工具再贵也救不回来。
读者评论
陈立航:主数据这段说到我心里去了。我们去年做CRM和ERP对接,接口开发两周就好了,结果口径对了三个月,业务部门天天开会吵。现在回头看,就该先停下来治理,而不是硬着头皮往前冲。
苏晚棠:想问一下对账机制具体怎么设计?我们现在的做法是每天凌晨跑一次总数比对,但字段级的差异还是要人工看,有经验可以分享吗?
周明远:异常场景测试那五类很有参考价值,我们以前只测正常流程,上线之后对方系统重启一次就挂了半天,运维同事熬了一夜。已经加进项目检查清单了。
郑海涛:时间字段带时区这条我举双手赞成。跨地区业务吃过这个亏,报表上同一笔订单算成了两天,被老板问了好久才查出原因。
林知夏:数据资产目录这块我们一直没做,看完感觉是真缺了一块。人员流动一来,新人接手全靠问人,成本很高,准备立项补上。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
