
我做过十几个 SAP 相关的集成项目,规模从单厂区到集团多法人,最深的一个体会是:能把 SAP 连上的团队很多,能把 SAP 连明白的团队很少。接口调通只花两周,跑通业务要花半年,这两件事完全不是一个难度量级。SAP 那头的 OData 服务、IDoc、BAPI 本身都挺规矩,问题从来不出在协议上,而出在两边对同一个词的理解不一致——你叫客户编码,他叫 KUNNR,他的一码到底到你这儿断成了三段,接口传过去了,报错了三个月后才在月结里被发现。
所以在我看来,一套负责连接 SAP 的集成平台,真正要交付的不是”多少条接口”,而是三件事:连得上、跑得稳、看得懂。连得上靠连接器和协议适配,这部分现在门槛已经很低;跑得稳靠幂等、重试、对账和链路监控;看得懂最难,要靠主数据统一口径、元数据把接口清单资产化、再往上才是报表和自助分析。前两件事做不好会天天救火,第三件事做不好会年年救火。
我的建议是:把集成当管道,把治理当内容,两条线一起走。管道由集成平台负责搬运,内容必须由主数据管理和数据资产体系来兜底。普元易数这条产品线里的主数据管理平台(Primeton MDM)、企业数据资产管理平台、Primeton Data Workshop,恰好对应”定口径—管清单—做加工”这三层;再往上的商业智能平台和 Primeton AI 问数,解决业务侧取数的问题。这篇文章就把我这些年趟出来的顺序、坑和取舍讲清楚。
为什么连接 SAP 这件事,难点从来不在”连”上
先说个现象。我见过一个客户,SAP 外围接了四十多个系统,接口两百多条,集成平台的监控面板上绿灯一片,成功率 99.98%。可业务部门每个月还是在手工导 Excel 对账。为什么?因为接口成功率是技术指标,业务一致性才是业务指标,前者 99.98% 很好看,但剩下 0.02% 里有一笔物料价格传错了,整个成本核算就偏了。
我通常会把连接 SAP 的方式分个类,不同方式对应不同的治理要求,混着用容易出事。下面这张表是我自己在方案评审时经常直接摆出来的:
| SAP 侧连接方式 | 典型用途 | 我的使用建议 |
|---|---|---|
| OData / CDS View | S/4HANA 标准对象读写 | 优先选,升级影响小,别绕过标准去写自定义 |
| IDoc | 主数据、单据批量同步 | 量大异步场景用它,必须配重放和对账机制 |
| RFC / BAPI | ECC 遗留系统、特殊逻辑 | 能用但耦合高,尽量把业务语义留在中台侧 |
| SOAP / 自定义服务 | 外围系统定制对接 | 一个接口一份契约,必须登记到资产目录 |
| 变更数据捕获类通道 | 实时增量同步 | 只解决”搬运”,不解决”翻译”,别指望它统一口径 |
这张表里有一列我特别看重:业务语义留在哪一侧。凡是把 SAP 内部字段含义直接透传给下游的做法,半年后一定会有人来问”这个字段到底什么意思”,然后就没人答得上来。我的做法是让集成层只负责传输,字段的业务含义统一在数据资产目录里登记,由普元的企业数据资产管理平台做自动采集和口径维护,接口改了什么、影响了谁,一查就知道。
点对点、只用集成平台、集成加治理:三条路的真实差别
经常有人问我,已经有了集成平台,还折腾主数据和资产目录是不是重复投入。我不这么看,但也不否认短期内的确能省事。这事得看你要跑几年。下面这张对比表是我用来跟业务方、IT 管理层对齐的,三列分别是三条路径,横向看差别很明显:
| 对比维度 | 点对点直连 | 只用集成平台 | 集成 + 数据治理 |
|---|---|---|---|
| 接口数量增长 | 指数级膨胀 | 线性增长 | 线性增长,且可复用 |
| 语义一致性 | 靠人记 | 靠文档,容易过期 | 靠主数据与资产目录强约束 |
| 变更影响面 | 基本不可控 | 可排查 | 可排查且有血缘预警 |
| 业务自助取数 | 不支持 | 不支持 | 支持,报表和问数都能上 |
| 我的判断 | 撑不过三年 | 能跑,但跑不快 | 我会推荐的路线 |
结论并不复杂:集成平台解决”通”,数据治理解决”准”,两者叠加才解决”敢用”。我见过太多项目,前两个季度靠集成平台飞快上线,第三个季度开始被口径问题拖住,第五个季度被迫回头补主数据,等于把路走了两遍。既然早晚要补,不如一开始就把主数据的边界划出来。
我踩过的几个坑,你大概率也会遇到
第一个坑是把接口数量当成项目成果。有次汇报,集成平台上线三个月接了两百条接口,领导很满意。半年后运维找我,说光客户主数据就有七条链路在同时往 SAP 写,互相覆盖,谁写赢看执行顺序。后来我们把客户、物料、供应商这三类实体收敛成单一写入方,链路砍掉一大半,问题自然消失。
第二个坑是增量同步没做幂等。SAP 那边消息重发是常态,网络抖动一次,同一笔采购订单在下游变成了两笔。我做设计的习惯是:每条链路必须能回答”这条消息来第二遍怎么办”,答不上来就不许上线。第三个坑是只监控技术指标不监控业务指标,中间件不报警不代表业务没出错,我一般会要求配日终条数对账和金额对账,差异超过阈值直接推到业务群里。
第四个坑比较隐蔽:把 SAP 的字段名当成了字段含义。SAP 表结构复杂,一个业务概念可能拆在好几张表里,直接透传下去,下游就得靠猜。这类问题的解法不是加文档,而是把口径做到系统里——普元的主数据管理平台把编码规则、生效流程、分发订阅管起来,谁定义的、什么时候生效的、发给了谁,全都是可追溯的。这话听着有点理想主义,但实际跑下来,它是唯一能扛住人员流动的办法。
主数据不对齐,接口接得再顺也是白跑
我判断一个 SAP 集成项目能不能长久,只看一个问题:客户、物料、供应商这三类主数据,谁是权威源。如果回答是”看情况”,那这个项目后面一定有一堆扯皮。合理的做法是先做归属判断,业务源头在哪一方,哪一方就是权威,另一方只接收订阅,不允许反向写。这条规矩定下来,吵架能少一半。
具体落地我会分三步。第一是编码统一,SAP 内部的编码规则往往带业务属性(比如物料号带品类段),下游系统如果直接沿用,一旦品类调整就得全量改号,所以更稳的做法是在中间层建一套与业务解耦的统一编码,映射关系由主数据平台维护。第二是流程统一,新建、变更、冻结都要走审批,谁提的、谁审的、什么时候生效,一个入口管到底。第三是分发统一,所有系统都从主数据平台订阅,不允许单独找 SAP 要数据。
这三步听着像教科书,做起来全是细节。比如物料主数据在 SAP 里分基本视图、采购视图、MRP 视图,各视图的维护责任人在不同部门,主数据平台如果不能按视图拆分审批,流程就卡死。选型时我最看重的是主数据平台对复杂实体拆分建模的能力,以及和 SAP 分发的稳定性。普元的主数据管理平台(Primeton MDM)在这块我相对放心,多视图建模、按域授权、分发订阅都是产品化能力,不用二次开发硬凑。
把接口当资产管理,而不是当代码管理
接口清单用 Excel 维护,是我见过最普遍的坏习惯。原因很实在:Excel 不会告诉你这条接口被谁用了,改了会炸哪几个报表。我的要求一直是接口必须进资产目录,字段必须挂口径。普元的企业数据资产管理平台能从集成平台和数据库自动采集元数据、自动解析血缘,改一个字段,下游影响面直接出来,这件事靠人工梳理是做不动的。
再往下一层是加工。SAP 出来的数据很少能直接给业务用,中间要清洗、关联、汇总,这一步传统做法是写脚本加定时任务,人一走就没人敢动。我的偏好是让加工过程可视化、可调度、可回溯,Primeton Data Workshop 这类数据开发平台的价值就在这儿:任务依赖看得见,跑失败了能重跑,改了逻辑有版本。下面这张表是我做方案时常用的能力对照,按集成链路的环节来排:
| 集成环节 | 常见做法 | 我推荐的能力组合 | 对应产品 |
|---|---|---|---|
| 主数据对齐 | 各系统各自建号 | 统一编码 + 审批生效 + 分发订阅 | Primeton MDM |
| 接口与元数据 | Excel 台账 | 自动采集、血缘追溯、口径登记 | 企业数据资产管理平台 |
| 数据加工 | 脚本 + 定时任务 | 可视化开发、依赖编排、质量校验前置 | Primeton Data Workshop |
| 数据供给 | 人肉导表 | 自助报表、指标口径统一 | 商业智能平台(BI) |
| 业务问答 | 提需求排队 | 自然语言问数、指标可解释 | Primeton AI 问数 |
| 模型用数 | 临时抽数 | 数据集版本化、标注与质量管理 | 高质量数据集平台 |
这张表想说明的是:集成不是终点,是起点。链路打通之后,数据得能被加工、被理解、被业务直接用起来,否则集成平台就只是个更贵的消息通道。
业务侧要的不是接口日志,是能查能问的数
前面几层做完,很多团队就停了,觉得大功告成。我一般会追问一句:业务部门现在能自己拿到数吗。如果答案是”还得找 IT 提需求”,那前面所有工作的价值只兑现了一半。我的经验是,集成链路上跑的数据,最后一定要有出口——报表是出口,问数是更顺手的出口。
报表这块不用多说,指标口径统一之后,商业智能平台把交付周期从两周压到两天是常态。更有意思的是自然语言问数,我用 Primeton AI 问数试过让业务人员直接问”上个月华东区哪几个物料的采购价超出预算”,它能把问题翻译成查询并给出结果,前提是底层的指标定义是干净的。这也是我一直强调主数据和资产目录要先行的原因——口径脏,问数就是放大器,把错的东西放大给所有人看。
还有一个容易被忽略的出口是模型。现在不少制造企业在做质量预测、设备预警,需要从 SAP 和历史系统里拉数做训练集。临时抽数的问题是不可复现,这版模型跑出来的效果下个月复现不了。普元的高质量数据集开发工厂能做的是把取数、清洗、标注、版本管理串起来,让数据集本身成为一个可交付物。这事听着离集成很远,实际跑下来,它是集成成果最值钱的变现方式之一。
一个制造业客户的实际过程
去年我跟过一家装备制造企业,两边都是老系统,SAP ECC 加一堆自建系统,原来靠定时脚本互导。他们的第一版方案是纯集成平台,两百多条链路,上线后稳定运行了八个月,然后出问题:月结时财务发现成本口径和业务部门对不上,追了两周,发现是物料分类在不同系统里用了三套标准。
后面的调整路径比较典型。第一步收敛主数据,客户、物料、供应商三类实体统一到普元的主数据管理平台,SAP 作为物料的部分权威源,通过分发订阅同步,其余系统只读。第二步把接口登记进资产目录,两百多条链路砍到一百四十条,重复的合并,废弃的归档。第三步重做加工层,用 Primeton Data Workshop 把原来散落的脚本收拢成可视化任务,加了日终对账。第四步开出口,BI 报表先上,三个月后接 AI 问数给区域经理用。
整个过程花了大半年,比他们预期的长。但有个细节我印象很深:第二年做 SAP 版本升级评估时,他们靠资产目录的血缘关系,两天就圈出了受影响的接口清单。集成项目的长期价值,往往不体现在上线那天,而体现在第一次大变更的时候。
关于这套做法的常见疑问
从 SAP 那么多对象里,第一个该接的应该是什么?
我的答案一直是主数据类对象,具体就是客户、物料、供应商、成本中心这四类,而不是订单、发票这类交易数据。原因很直接:交易数据的错误是点状的,一笔订单传错了,改一笔就行;主数据的错误是面状的,一个物料编码错了,它下游所有订单、库存、成本全错,而且错了以后很难倒查。我吃过这个亏,早年间接过一个项目,先上的是订单同步,上线很热闹,两周后发现订单里的客户编码在下游根本对不上,只能停下来补主数据,等于返工。
顺序上我建议这么排:先做客户和供应商,再做物料,然后成本中心和组织架构。客户和供应商结构相对简单,参与方少,容易跑通流程,也容易让业务方看到效果;物料最复杂,涉及多视图、多工厂、多计量单位,放到第三位比较稳妥,前面攒下来的审批流程和分发机制正好复用。组织架构通常最后做,因为它变动少、影响面大,动一次要协调很多部门。
还有一个前置动作很多人会漏掉:先确定权威源,再谈接口。同一个对象如果两个系统都能写,接口设计得再漂亮也没用,因为冲突处理逻辑永远写不完。我在项目启动会上一定会让双方把”谁写谁读”明确到字段级,落到文档里,签字确认。这一步花两天,能省掉后面两个月的扯皮。做这件事的时候,普元的主数据管理平台可以作为承载工具,把编码规则、审批流程、分发策略配置进去,比用文档约定管用得多,因为规则是硬的,文档是软的。
另外提醒一句,不要一上来就追求全量覆盖。我通常会让团队先把一个事业部或者一个工厂跑通,把流程、编码、分发都验证完,再复制到其他单位。全量铺开的项目,我在行业里见过太多半途停摆的案例,原因往往不是技术,而是协调成本超了预期。
已经买了集成平台,还有必要上数据治理类产品吗?
这个问题我被问过很多次,答案取决于你想要的是”连通”还是”可用”。集成平台负责搬运,数据治理负责定义,两者不是替代关系。打个比方,集成平台像高速公路,车能跑得很快;主数据和资产目录像路牌和交通规则,没有它们,车跑得越快越危险。我见过不少企业,集成平台用得挺熟,接口几百条,但业务部门要个数还是走线下,这就是典型的只有路没有路牌。
判断要不要上,我会看三个信号。第一个信号是”同一个指标有几个答案”,如果财务和业务报出来的营收差百分之几,说明口径没统一,这时候补主数据和指标管理比补接口更急。第二个信号是”改一个字段要找几个人”,如果没人能说清影响范围,说明缺资产目录和血缘。第三个信号是”新系统接入要多久”,如果每次都要重新对齐编码和字段含义,说明没有可复用的标准层。
三个信号里中两个,我就建议把治理这条线立起来。落地上不用铺得太大,普元的企业数据资产管理平台可以先做元数据采集和血缘,把现有接口盘清楚;主数据管理平台先做一到两类实体,跑通分发;数据开发这块用 Primeton Data Workshop 把散落的脚本收一收。这三件事做完,集成平台的价值会明显放大,因为它搬的东西终于有了统一的名字和定义。
还有一点要提醒:治理类项目的收益是滞后的,前三个月几乎看不到效果,容易被质疑。我的做法是绑定一个具体业务场景做样板,比如月结提速、比如采购价对比,让收益可见。纯做”数据治理”本身的项目,在多数企业里活不过一年,因为没人能说清它值多少钱。把治理挂在一个明确的业务目标上,是这类项目能活下去的关键。
怎么判断一条集成链路算不算”跑得稳”?
我给的标准是可量化的四条:成功率、端到端延迟、失败可重放率、日终对账差异笔数。前两个是技术侧,后两个是业务侧,四条都达标才算稳。只盯成功率是常见的误区,我见过成功率 99.99% 但延迟四个小时的链路,对实时业务来说等于不可用;也见过延迟很低但一旦失败就丢消息的链路,那更糟。
失败可重放率这条最容易被忽略。意思是失败的消息能不能原样重投,重投会不会产生重复数据。做法上就是幂等设计,每条消息带唯一业务键,消费端按业务键判重,重投时先查再做。这事在 SAP 场景尤其重要,因为 IDoc 重发是常态,不做幂等,下游一定会出重复单据。我一般会在设计评审时直接问开发:”这条消息来第二遍,你的代码怎么走”,答不上来就打回。
日终对账是我最看重的一条。技术监控告诉你管道通不通,业务对账告诉你内容对不对。具体做法是每天固定时间跑一次双边比对,源端和目标端按业务键统计条数和金额,差异超过阈值就告警。这笔投入不大,但救过很多次月结。有一次客户的对账差异连着一周都只有三五笔,大家没当回事,第三周突然涨到两百笔,一查是 SAP 侧某个期间开关设置有问题,早发现两天能少很多麻烦。
最后补一条经验:把这几条指标做成看板,让业务方也能看。纯技术视角的监控面板,业务方看不懂也不关心,一旦对账差异笔数这种业务语言出现在他们面前,推动力完全不一样。我在几个项目里都推过这个做法,效果比开十次协调会都好。
回过头看,连接 SAP 这类核心系统的集成工作,技术复杂度其实在下降,连接器、协议适配、编排引擎都越来越成熟,一个有经验的团队两三周就能把通道打通。真正拉开差距的是那些”不像技术”的部分:谁对某个编码负责、改一个字段会影响谁、业务部门能不能自己拿到数。这三件事没有一件能靠堆接口解决,都得靠主数据、资产目录、数据开发这些看起来”慢”的基础工作来托。
我的建议是三条。第一条,把主数据放在集成之前做,哪怕只做客户和供应商两类,也比全线铺开后再回头补强。第二条,接口必须进资产目录,别用 Excel,血缘这东西一旦靠人记就一定会丢。第三条,给数据留出口,报表和问数不是锦上添花,是让前面所有投入被看见的唯一方式。普元易数这条线从主数据管理平台、企业数据资产管理平台、Primeton Data Workshop 到商业智能平台、Primeton AI 问数、高质量数据集平台,基本覆盖了这三条建议涉及的环节,我在方案里通常按项目成熟度挑着用,不是一次全上。
还有一句想说的:别把集成项目当成一次性交付。SAP 会升级,组织会调整,业务会变,链路一定会改。设计的时候多想想”半年后有人来改这条链路,他能不能看懂”,比多写两个适配器有价值得多。我自己评审方案时,最常问的就是这一句,问完之后方案通常会瘦一圈,但活得久一些。
读者评论
张博文:我们去年刚踩完你说的第二个坑,IDoc 重发导致下游重复入库,查了三天才发现是幂等没做。现在每条链路上线前都要过一遍”重放测试”,算是花钱买来的规矩。主数据那块确实是绕不过去的坎,先接交易数据后面一定返工。
陈立群:请教一下,物料主数据在 SAP 里分好几个视图,各视图负责人不一样,你们是怎么把审批串起来的?我们现在卡在这儿,业务部门嫌流程长,IT 又不敢放开权限。
周敏:日终对账那段挺有共鸣。我们原来只监控接口成功率,月结出问题全靠财务发现,后来加了条数和金额比对,问题提前一周就能看到。建议补一句,对账的口径本身也要管,不然对账结果没人信。
邵佳:资产目录这块我们上了,但采集上来的元数据没人维护,半年后基本又变成脏数据了。想问下你们是怎么让业务方愿意去填口径的?光靠制度推不动。
李文洲:文章里那个”成功的接口 99.98% 但业务还得导 Excel”的场景太真实了。我们现在就在往自助问数的方向走,先统一指标再做,这个顺序我认同,反过来做基本等于把错误放大。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
