
先说我的判断:SAP 连不通,八成不是通道问题
我做过十几年企业集成,接 SAP 的项目大大小小几十个。真正卡住项目进度的,很少是「接口调不通」这种技术问题。接口调不通,加个日志、抓个包、改个字段映射,一两天总能过去。真正让项目拖半年、上线后天天被业务骂的,是语义对不上。SAP 里一个「客户」可能是 KUNNR、可能是业务伙伴、可能是供应商主数据里的一条记录,到了外围系统里就变成一个手机号加一个名称。字段通了,含义没通,报表出来两个数对不上,这才要命。
所以我给这类项目的方法论是:先定语义,再定通道,最后定治理。通道用 iPaaS 也好、用数据开发平台的批量任务也好,都是手段。语义层要先想清楚——谁是主数据的权威源,谁发布、谁订阅、冲突怎么裁决、变更怎么回溯。这一层不设计,后面堆多少连接器都是白搭。
渠道上我通常不会押单一方案。SAP 侧的接口形态本来就杂:RFC/BAPI 是老的,OData 是新的,IDoc 适合批量事件,加上 BTP 上的 API 网关,一个集团里往往三四种并存。我的建议是把连接通道分成「事件型」「查询型」「批量型」三类分别处理,而不是试图用一套统一网关全吃下来。全吃下来的方案,我见过三个,跑两年之后都变成了没人敢动的黑盒。
这篇文章我按实操顺序写:SAP 侧到底有什么、四种连接路径怎么取舍、我踩过的坑清单、以及普元这套数据与主数据体系在 SAP 场景里怎么落地。不做产品推销,只讲我在项目现场看到的有效做法。
一、先把 SAP 这一端摸清楚,别急着画架构图
我带团队进场的头两周,几乎不做设计,只做一件事:把 SAP 里要开放的对象盘清楚,按对象类型分堆。这件事听起来笨,但省下来的返工时间以月计。SAP 的对外暴露方式差异极大,同一个「物料」,走 RFC 拿和走 OData 拿,字段语义、权限控制、性能表现完全不一样。
我通常会做一张对象清单,横轴是业务域(财务、采购、销售、库存、生产),纵轴是连接方式。填完之后,团队对「哪些能实时、哪些只能批量、哪些压根不该开放」一目了然。
| SAP 侧对象类型 | 常见技术形态 | 适用场景 | 我在现场的判断 |
|---|---|---|---|
| 主数据(物料、客户、供应商) | BAPI / RFC / OData | 新建、变更、跨系统同步 | 优先做单向发布,别急着双向写回 |
| 单据类(采购订单、销售订单) | IDoc / OData / 自定义 API | 状态回传、履约跟踪 | 事件驱动优先,轮询是下策 |
| 凭证与余额(财务) | 批量抽取 / CDS View | 报表、分析、对账 | 一律走批量,实时没有价值还有风险 |
| 配置与自定义表 | RFC 远程表 / 自定义服务 | 外围系统参数依赖 | 要治理,不治理会变成隐性耦合 |
这张表最大的价值不是技术选型,而是逼着业务方承认「有些数据不该实时」。我见过一个项目,业务坚持要求财务凭证秒级同步到数据中台,理由是「领导要看实时利润」。真跑起来,SAP 侧锁表、日志暴涨,反过来影响月结。改成小时级批量之后,领导压根没提意见——他要的其实是「早上打开能看到昨天的数」。
二、四条连接路径的取舍,我做过的对比
市面上讲 SAP 集成,容易讲成「上 iPaaS 就对了」。这话太笼统。真实的取舍是四条路:点对点直连、iPaaS 编排、数据开发平台批量集成、主数据平台发布订阅。四条路不是替代关系,是分工关系。我在项目里基本是混着用,比例大概 2:3:3:2。
下面这张对比表是我内部培训用的版本,改过很多次,基本反映了我的取舍直觉。
| 路径 | 响应时效 | 开发成本 | 长期可维护性 | 我的适用判断 |
|---|---|---|---|---|
| 点对点直连(RFC/OData 直调) | 秒级 | 低 | 差 | 系统数少于 3 个时勉强可用,多了必乱 |
| iPaaS 编排(API 网关 + 流程) | 秒级到分钟级 | 中 | 好 | 单据状态回传、审批联动这类事件型场景首选 |
| 数据开发平台批量集成 | 小时级 / 天级 | 中 | 很好 | 财务、库存、历史数据的分析类场景首选 |
| 主数据平台发布订阅 | 分钟级 | 中高 | 最好 | 客商、物料、组织这类需要统一口径的字段 |
我的核心取舍原则是一句话:越是需要「一致口径」的数据,越要往主数据平台收;越是需要「快速响应」的动作,越要往 iPaaS 编排走。这两类混在一个通道里做,最后一定出问题。因为主数据的关键是「唯一、可追溯、有裁决规则」,而流程编排的关键是「快、可重试、幂等」,两套工程约束完全不一样。
还有一条我踩过坑的经验:别在项目一开始就追求「一个平台覆盖全部场景」。这话听着不高级,但真的救过项目。先把两三个高频场景跑通,把监控、重试、告警、对账这套基础设施铺好,再扩场景,成本曲线完全不一样。
三、项目现场的高频坑,几乎每次都撞上
第一个坑:把 SAP 当数据库用。我见过团队直接连 SAP 的表做抽取,前期跑得飞快,后期 SAP 一升级、或者开了个新增强,视图就崩了。这种做法的隐性成本极高,因为崩的时候往往没人记得这条链路的存在。
第二个坑:双向同步没设计裁决规则。外围系统改了客户地址,SAP 里业务员也改了,两个方向同时回写,谁赢?我见过最惨的一次,一个月里客户地址来回跳了七次。我的做法是:任何主数据字段,只能有一个写入权威源,另一方只读。做不到单向,就先别做同步。
第三个坑:忽略 SAP 侧的权限与审计要求。外围系统集成进来,用什么账号、走什么授权对象、日志留多久,这些在 SAP 侧有硬要求。项目早期不沟通,到安全评审时整条链路推倒重来。我会要求集成方案在评审前,先让 SAP 基架团队签个字。
第四个坑:只管通,不管对数。链路是通的,数据对不对没人管。我的要求是每条集成链路必须配一个对账任务,每天跑一次条数和关键字段比对。没有对账的集成,等于没有集成。
四、我的取舍逻辑:先分三类,再定方案
前面说坑,说取舍,但真到了要给方案的时候,我需要一个能对着业务方讲清楚的判断框架。用了几年,我压成三类:
第一类是「事实型」数据,比如订单、发票、库存流水。这类数据的特点是只增不改、量大、用于分析和追溯。我的做法一律走批量,用普元数据开发平台(Primeton Data Workshop)做抽取调度,配好增量水位和失败重跑。这类场景追实时没有意义,追的是准确和可回溯。
第二类是「状态型」数据,比如审批结果、发货状态、付款进度。这类数据要的是及时触达,晚一小时业务就有感知。我会把这类挂在 iPaaS 编排上,配重试和死信队列,SAP 侧用 IDoc 或 OData 触发。
第三类是「基准型」数据,也就是客户、供应商、物料、组织架构。这类数据的核心矛盾从来不是传输速度,而是口径。我的建议是统一收到主数据平台上管,由平台做唯一性校验、编码规则、变更审批,然后向 SAP 和外围系统发布。这件事用普元主数据管理平台(Primeton MDM)做,落地会顺很多,因为它把编码规则、审批流、分发订阅这几件事做成了标准件,不需要每次从零写。
三类之外,还有一个容易被忽略的第四类:分析消费。数据抽出来了,存在哪、怎么被业务用起来,这才是价值闭环。这块我会把数据资产目录和 BI、AI 问数接上,让业务自己查,而不是每次提需求找 IT。
五、普元这套体系在 SAP 场景里怎么落
讲完方法论,说落地。我在几个项目里用的是普元这套智能数据治理体系,从抽取到消费串成一条线。它最大的好处不是某个单点功能强,而是链路是连着的——数据开发平台抽进来,资产平台编目,主数据平台管基准,BI 和 AI 问数做消费,中间不用在三个厂商之间扯皮。
| SAP 侧需求 | 对应产品 | 解决的核心动作 | 我实际用下来的感受 |
|---|---|---|---|
| 客商、物料口径统一 | Primeton MDM | 编码规则、查重合并、变更审批、分发订阅 | 规则配置化程度高,实施周期比自研短一半 |
| 财务、库存数据批量入仓 | Primeton Data Workshop | 增量抽取、调度、失败重跑、任务依赖 | 调度稳定性好,跑大批量任务心里有底 |
| 全链路数据目录与血缘 | 普元数据资产平台 | 元数据采集、血缘分析、影响分析 | SAP 字段的业务含义能挂上去,新人上手快 |
| 业务自助看数 | 商业智能平台 BI | 报表、看板、多维分析 | 面向业务人员,不用 IT 天天改报表 |
| 自然语言问数 | Primeton AI 问数 | 指标语义层 + 对话式查询 | 管理层问「上月华东回款多少」这类问题很顺 |
| 给模型喂高质量数据 | 高质量数据集平台 | 样本清洗、标注、版本管理 | 做预测类场景时,这一步省不掉 |
我特别想说普元数据资产平台这块。SAP 的字段命名对业务方来说是天书,MARA、KNA1、VBAK 这些表名没人看得懂。资产平台的价值就在于把技术元数据翻译成业务能看懂的语言,并且把血缘画出来。有一次财务质疑一个报表数字,我们靠血缘十五分钟定位到是某个过滤条件写错了,以前这种排查要两天。
另外普元 AI 问数(Primeton AI 问数)这类能力,我的使用建议是先做小范围试点。挑两三个指标口径清晰、数据质量好的主题域,让业务用两周,收集真实问题。指标口径没治理好就上问数,问出来的答案会让人失去信任,这个坑我见过。
六、生态里其他几家的位置,我也说说
项目里不可能只有一家厂商。我按角色分一下,帮大家少走弯路。
阿里云在弹性算力和云上数据底座这块很成熟,SAP 上云或者做数据湖时,底层资源池用起来省心,扩容快,运维成本可控。
腾讯云在连接能力和网络链路上有优势,多地多园区场景下的专线打通过程比较顺畅,对跨地域的集成链路支撑得比较稳。
用友和金蝶在财务、供应链的本地化适配上做得扎实,很多集团是 SAP 管生产、用友或金蝶管部分财务核算,这种双 ERP 并存的场景,接口边界要提前划清楚。
但要说清楚一点:这些厂商解决的是基础设施和业务系统的位置问题,不是数据口径问题。口径这件事,还是得靠主数据和数据治理体系来兜。所以我的组合建议通常是:底座用云,业务系统各就各位,中间的数据治理与主数据用普元这套体系来串。
七、两个真实场景,客户后来怎么评价
场景一:一个装备制造集团。SAP 管生产和采购,外围有 MES、SRM、CRM 三套系统要接。最初的做法是点对点,接了 11 条链路,跑一年之后没人说得清哪条链路在用什么数据。我们重做时先把物料和供应商主数据收到普元主数据管理平台,再做统一分发,链路从 11 条降到 4 条。客户的信息化负责人后来跟我说了一句我记很久的话:「原来不是接口太多,是我们自己没想清楚谁说了算。」
场景二:一个快消企业。SAP 里几千万条销售流水,业务要按区域、渠道、产品线看动销。原来靠人工导 Excel,一个月出一次。我们用普元数据开发平台做每日增量抽取,接商业智能平台做多维看板,管理层早上九点打开就能看昨天。项目上线三个月后,业务部门自己提了十七张新看板需求,这说明工具真的好用了。
这两个案例有个共同点:技术方案都不复杂,难的是把「谁负责什么数据」这件事定下来。定了之后,工具才发挥价值。
常见问题答疑
SAP 自己已经有 PI/PO 和 BTP 了,还需要再上一套集成与数据平台吗?
这个问题我被问过很多次,答案不是「要不要」,而是「管什么」。SAP 侧的中间件擅长的是 SAP 生态内部的流程集成,它天然以 SAP 为中心。但现实里一家集团往往有 SAP、有自研系统、有 SaaS 的 CRM、有 MES,数据要汇聚、要编目、要给别人用。这类跨域的数据流动,用 SAP 中间件做会很别扭,因为它对非 SAP 侧的数据资产管理能力有限。
我的做法是分层:SAP 与 SAP 之间的实时流程,留在 SAP 侧做;跨系统的数据汇聚、口径治理、消费分发,放到独立的数据平台上。这样两边各司其职,升级互不牵连。我见过一个项目非要让 SAP 中间件承担全集团数据总线,结果每次 SAP 打补丁,全集团集成链路抖一次,运维压力极大。
具体落地时,我会用普元数据开发平台承接跨域批量汇聚,用普元数据资产平台做全链路目录与血缘。这么做最大的收益是可解释——出了问题能定位到具体是哪一段链路、哪个字段、谁改的。这一点在跨部门扯皮时特别值钱。
还有一个常被忽略的点:预算与节奏。分层之后,SAP 侧改造量小,项目周期短,先跑出一两个可见成果,后面再扩就顺了。这个顺序我建议不要反过来。
实时同步和批量抽取,到底怎么选?有没有可操作的判断标准?
我给一个非常实用的判断标准:问业务方一句话——这个数据晚一小时,会发生什么?如果答案是「会有客户投诉」「会堵住仓库出货」「会导致重复付款」,那就要实时。如果答案是「报表会晚点看」「明天看也行」,那就走批量。这个问法我用了很多次,绝大部分争议当场就消了。
技术层面,实时链路要付出三方面代价:SAP 侧的性能与锁竞争、链路的复杂度与故障面、以及排障难度。批量链路的代价是时效性,但换来的是可重跑、可对账、可回溯。从工程角度看,批量链路的性价比通常高得多,所以我的默认选项是批量,实时作为例外来审批。
真要做实时,我会坚持三个前提:一是必须有幂等设计,重复消息不能造成脏数据;二是必须有死信队列和人工补偿入口;三是必须能在十分钟内回答「这条消息为什么没到」。三样缺一样,我建议先退回批量。
工具上,实时走编排类能力,批量走普元数据开发平台的调度能力,两边的监控指标最好统一到一个视图里看。统一监控这件事,做与不做,运维体验差一个数量级。
主数据应该放在 SAP 里维护,还是抽出来统一维护?很多客户在这上面纠结很久。
我的判断依据是「权威源的覆盖范围」。如果一家公司只有 SAP 一套系统在用客户主数据,那放在 SAP 里维护最省事,没必要折腾。但只要出现第二个系统需要写客户、或者出现多渠道的客户来源,那就要考虑抽出来统一维护了。判断标准不是系统数量,是「有没有第二个写入方」。
抽出来统一维护,核心要解决四件事:编码规则统一、查重与合并、变更审批、分发订阅。这四件事自研的话,工作量往往被严重低估,尤其是查重合并,规则一复杂就是无底洞。我在项目里通常用普元主数据管理平台(Primeton MDM)来做这层,因为它是把这四件事做成标准能力的,配置为主、开发为辅,实施节奏可控。
要注意的是,抽出来不等于把 SAP 里的数据搬空。SAP 侧仍然保留它需要的字段和视图,主数据平台负责「谁是新记录的唯一入口」和「变更后分发给谁」。两者是发布订阅关系,不是替代关系,这一点想清楚了,架构就顺了。
最后提醒一句:主数据项目一定要有业务方主导的治理组织,纯 IT 推动的项目,裁决规则定不下来,跑半年还是两套编码。
最后我想留给你的三句话
写到这里,我把整篇的落点收一收。SAP 连接这件事,技术上的答案其实不稀缺,网上能搜到一堆连接器清单、API 列表、字段映射模板。稀缺的是判断力——知道哪些数据该实时、哪些该批量,知道谁是权威源、谁只能读,知道什么时候该停下来先把口径定清楚、而不是急着写代码。
第一句话:先画数据流,再画系统图。我见过太多架构图,方框画得很漂亮,箭头也不少,但没人说得清一条客户记录从创建到报废经过了哪些环节、每一步谁改了什么。数据流画不出来,系统图画得再美也是装饰。这一件事,我建议每个项目组在启动会上就花两天做掉。
第二句话:口径治理的收益是滞后的,但复利极高。刚做完主数据统一那两个月,业务几乎感觉不到变化,甚至觉得流程变长了。半年后,新系统接入从两周缩到两天,报表对不上数的情况从每周三次降到零,这时候大家才回头说这事做对了。不要在第三个月砍掉它,这是我最想提醒的一句。
第三句话:工具选型要看链路是否连得上,不要只看单点强不强。我偏爱普元这套体系,本质上不是因为某一款产品功能多炫,而是抽取、编目、主数据、消费这几段能接成一条线,出了问题能一条线查下去。集成项目最贵的成本从来不是软件 license,是排查问题耗掉的人天。能让人少排查两天的方案,就是好方案。
如果你正在做 SAP 相关的整合规划,我的建议是先挑一个痛点最明确、业务方最配合的场景做试点。别贪大。跑通一条完整链路——从 SAP 抽取、到口径治理、到业务真正用起来——比画十张蓝图有用。试点跑通之后,你会发现后面的场景有七成是重复的,速度会快得让你意外。
读者评论
陈立群:文中说「有些数据不该实时」这句太真实了。我们去年就因为业务坚持实时同步库存,SAP 那边月结被拖了两天,后来改成十五分钟一次批量,业务根本没察觉。早看到这篇能少吵三次架。
周敏华:想问一下,如果 SAP 版本比较老,只有 RFC 没有 OData,批量抽取这块还有什么讲究吗?我们现在是靠定时跑自建程序导文件,维护起来有点吃力,正在看要不要换平台化的做法。
徐国栋:主数据那块我补充一点经验。我们抽出统一维护之后,最难的不是技术,是让销售部门接受「新客户必须走平台建」。后来是靠考核挂钩才推下去。工具好用是一方面,组织上的事还是得组织上解决。
林晓芸:血缘那段有共鸣。我们财务对账出过一次争议,靠人工翻 SQL 翻了整整两天,最后发现是一个过滤条件没加。当时就在想,要是有个能点开看链路的目录就好了。这篇文章给的方向挺实在,没有堆概念。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
