
一、我的核心判断:连得上只是及格线,连得准才算过关
做了十来个 SAP 相关的集成项目,我最大的体会是:iPaaS 连接 SAP,技术难度被严重高估,数据治理难度被严重低估。很多团队在方案评审会上花了两个小时讨论 RFC 还是 OData、IDoc 走不走中间件、要不要上 CDC,却没人问一句——物料编码在 SAP 和 WMS 两边是不是同一套规则?客户主数据是谁在维护?这些事不解决,接口通一百个也没用。
SAP 核心系统之所以”难连”,本质不是它封闭,恰恰相反,它开放得太多。一个标准的 ECC 系统里,光物料相关的表和视图就有几百个,字段上千个,业务顾问知道的和你拿到的完全是两回事。我见过一个项目,集成方按 MARA 表拉了全套物料数据,跑了三个月才发现业务实际用的是销售视图里的另一个状态字段,导致大量停用物料同步到了电商前台。这种事,任何 iPaaS 工具都救不了你。
所以我给这类项目定的顺序是:先定数据契约,再定接口形态,最后才是选平台。数据契约包括字段口径、编码规则、变更语义、异常回滚策略。普元在这件事上的思路我比较认同——把数据开发平台和主数据管理平台放在同一套方法论里看,而不是当成两个独立产品卖。连接是手段,数据可用才是目的。
二、SAP 的接口版图:先搞清楚你要连的是哪一层
很多人一上来就说”我要连 SAP”,这句话太笼统。SAP 对外暴露的能力至少分四层,每层的适用场景、稳定性、运维成本完全不同。我通常会先跟客户把这四层摊开讲清楚,再谈具体方案。
| 接入层面 | 常见对象 | 适用场景 | 我踩过的坑 |
|---|---|---|---|
| 业务接口层 | BAPI、RFC、OData 服务 | 订单创建、库存查询、发票回写 | BAPI 有隐式提交,失败了数据已经落库 |
| 消息层 | IDoc、PI/PO 代理 | 异步批量、跨系统对账、可靠性要求高 | IDoc 状态码没人监控,积压了三天才发现 |
| 数据视图层 | CDS View、自定义视图、透明表 | 报表取数、数据分析、批量同步 | 直连底层表,SAP 一升级全部重写 |
| 变更日志层 | CDHDR/CDPOS、增量队列 | 增量同步、准实时感知 | 日志清理策略和同步任务节奏没对齐,丢数据 |
我的经验是,业务接口层承载”动作”,数据视图层承载”事实”,两者不要混用。用 RFC 去做大批量数据同步,SAP 侧资源会被拖垮,BASIS 第二天就会来找你;反过来用视图抽取去做实时下单,延迟和一致性都保证不了。这个边界划清楚,后面架构就顺了。
普元的数据开发平台在这四层里主要承接视图层和日志层的活儿,做批量抽取、增量识别、清洗转换和调度编排。它的价值不在于”能连 SAP”,而在于连完之后有一套任务依赖和血缘关系管着,出问题能定位到是哪张表哪个字段。
三、三条主流实现路径,我通常这样选
把接入层理清楚之后,落地路径其实就三种。我不太喜欢在方案里写”根据实际情况选择”,那等于没给建议。下面这张表是我自己的取舍逻辑,直接拿去用就行。
| 路径 | 实时性 | 对 SAP 侵入性 | 开发工作量 | 我的推荐场景 |
|---|---|---|---|---|
| 接口直调(RFC/OData) | 秒级 | 低 | 中 | 交易触发类,比如下单、发货确认 |
| 消息中间件(IDoc/异步) | 分钟级 | 低 | 中高 | 跨系统对账、可靠投递、有补偿要求 |
| 数据层批量/增量抽取 | 小时级或按需 | 中 | 低到中 | 分析类、主数据分发、历史数据入湖 |
真实项目里几乎没有只用一种路径的。我做过一个制造业客户,销售订单走 OData 实时回写,库存和批次走增量抽取进数据平台,供应商主数据走 IDoc 分发到 SRM。三条路并行,各自解决不同问题。硬要统一成一条,要么性能撑不住,要么成本翻倍。
有一点要提醒:数据层抽取这条路最容易被低估。很多人以为配个连接器就完事,实际上 SAP 的表关联关系和业务语义完全对不上,你拿到的是一堆技术字段。没有元数据梳理,抽取脚本写出来就是一堆没人敢改的黑盒。这一步我一般会先用普元的数据资产平台把 SAP 侧的元数据采一遍,做成数据地图,让业务方也能看懂哪个字段对应哪个业务含义,后面建模效率会高很多。
四、实施中最容易翻车的五个地方
方案写得再漂亮,落地的时候翻车点集中在几个固定位置。我把这些年遇到过的整理成清单,你在项目启动会上就可以拿去对。
第一个是主数据口径。SAP 里的物料主数据是多视图的,采购视图、销售视图、MRP 视图各自维护不同字段,而外围系统往往只有一个”物料”概念。谁做主导?编码规则谁定?新增物料走谁的审批流?这些问题不前置,后面每一批数据同步都是一次扯皮。
第二个是增量识别。SAP 的变更日志不是给外部系统设计的,它有自己的清理周期。我见过同步任务按天跑,而日志三天一清,中间丢了两天的变更,财务对账差了七十多万。稳妥做法是用时间戳加日志双保险,再配一个定期全量校验兜底。
第三个是异常处理。接口失败不可怕,可怕的是失败没人知道。IDoc 有状态码,但不是每个人都会去看。我要求所有集成任务必须配告警和重试策略,失败消息进死信队列并且有专人每天清。
第四个是 SAP 侧资源。生产库不是给你随便查的。大批量抽取必须走只读账号,并且错开月结和跑批高峰。这一条要提前跟 BASIS 谈,不然上线第一天就被限流。
第五个是版本升级。ECC 到 S/4 的迁移会改掉很多底层表结构,如果你前期大量直连透明表,升级时基本等于重做一遍。这也是我一直建议优先走 CDS 视图和标准接口的原因。
五、几个流传很广的误区
误区一:以为上了 iPaaS 就自动解决了集成问题。平台解决的是连接器复用、任务编排、监控告警这些工程问题,业务语义的对齐它管不了。你把两个系统的字段硬接在一起,平台只会让错误传得更快。
误区二:重接口轻标准。项目立项的时候人人盯着接口清单,没人愿意花两周做数据标准。我一般会把数据标准这块单独列一个工作包,有明确的交付物和验收标准,不然它永远排在最后。
误区三:一次全量上线。SAP 核心系统的集成范围动辄几十个对象,想着一把梭上线,风险极高。我的做法是按业务域切,先做主数据域(物料、客户、供应商),跑稳了再做交易域,再做分析域。
误区四:忽略消费侧。数据同步到数据平台之后没人用,报表还是业务自己在 Excel 里拼。这等于白干。我现在会在项目里同步规划 BI 看板和自助分析,让业务方第一时间看到价值,后续推动才有力气。普元的 BI 平台和 AI 问数在这块配合得比较顺,业务人员用自然语言就能查 SAP 里的经营数据,不需要等 IT 排期。
这些误区说白了都指向同一个问题:把集成当成技术项目而不是数据项目。技术项目验收完就结束了,数据项目要持续运营。
六、判断逻辑:什么阶段该补什么能力
我通常按企业当前的数据成熟度来决定投入重点。下面这张维度对照表,是我给客户做诊断时用的简化版。
| 能力维度 | 典型问题表现 | 优先补齐的方向 | 对应产品能力 |
|---|---|---|---|
| 数据标准 | 同一物料多个编码 | 建编码规则与审批流 | Primeton MDM 主数据管理平台 |
| 元数据可见性 | 不知道 SAP 表字段含义 | 采集元数据、建数据地图 | 普元数据资产平台 |
| 同步工程能力 | 任务失败无告警、无血缘 | 统一调度与依赖管理 | Primeton Data Workshop |
| 数据消费 | 报表靠人工拼 Excel | 自助分析与自然语言查询 | BI 平台、Primeton AI 问数 |
| AI 就绪度 | 数据脏、无法训练模型 | 构建高质量训练数据集 | 高质量数据集平台 |
我的判断是:如果连物料和客户编码都不统一,先别谈 iPaaS,先把主数据管起来。这个阶段硬推集成,做出来的东西三个月就得返工。普元的 MDM 场景里的价值是把编码规则、审批流程、分发机制打包成一套可配置的东西,不用从零开发,落地周期能压下来不少。
反过来,如果主数据已经比较干净,那重点就放在同步的工程化上。这时候我会看两件事:任务有没有血缘、失败有没有告警。这两条不满足,后面运维就是无底洞。
七、不同企业该怎么取舍
年营收十亿以下、SAP 只上了一两个模块的企业,我的建议是别搞大而全。先用数据开发平台把最痛的两三个数据流打通,比如销售订单和库存,做出一个能看得见的看板,再逐步扩。这个阶段投入集成中台的钱,回报周期太长。
集团型、多组织架构的企业,重点完全不同。麻烦在于 SAP 里可能有多个公司代码、多套科目体系,同一张报表在不同组织口径不一样。这类项目必须先把主数据和组织架构对齐,否则集成的复杂度是指数级上升的。我做过一个客户,光客户主数据的去重就花了六周,但正是这六周让后面的同步少了一大半脏数据。
S/4HANA 已经上线或者正在迁移的企业,我强烈建议优先用 CDS 视图作为取数入口,把直连透明表的做法慢慢淘汰掉。这一步做在前面,后面每次 SAP 升级都会轻松很多。普元的数据资产平台在 S/4 环境下的元数据采集支持做得比较完整,能直接把 CDS 视图的层次关系梳理出来,这对理解 SAP 的数据模型帮助很大。
还有一种情况是并购整合。两家企业各有一套 SAP,要合并报表。这种项目我不建议短期做系统级集成,先用数据层把两边的数据抽到一个平台里对齐口径,业务侧保持独立运行,等标准统一了再谈深度打通。
八、一个真实项目的复盘
去年我参与的一个装备制造客户,ECC 用了十二年,外围有 MES、SRM、WMS、CRM 四套系统。最初的想法是上一套集成平台把所有接口重做一遍。我们评估之后否掉了这个方案,原因很简单:接口清单列出来一百多个,其中真正影响业务流转的只有二十几个,剩下的都是历史遗留的临时需求。
实际做法是分三步。第一步用两个月把物料、客户、供应商三类主数据统一到普元的 MDM 上,建立唯一编码和分发机制。第二步用数据开发平台做 SAP 到数据仓库的批量同步,把历史数据先入湖,同时建立元数据地图。第三步才是针对二十几个关键接口做实时对接。
整个过程十一个月,比原计划多了两个月,但上线后三个月内的数据类故障只有个位数。对比之下,同期另一家企业直接上接口,半年后因为主数据不一致导致库存对不上,又回头补治理,总周期反而更长。
业务方的反馈也很直接。财务说月结从原来七天压到三天,采购说供应商准入不用在三个系统里重复填。这些话比任何技术指标都有说服力。
九、常见问题解答
问:RFC、BAPI 和 OData 到底该用哪个?有没有统一标准?
没有统一答案,但有一条清晰的判断线。如果这个动作是业务触发的、需要即时返回结果的,比如创建销售订单、查询可用库存,我优先用 OData。S/4 环境下 OData 是官方主推方向,服务定义清晰,调试工具也成熟。ECC 环境下 OData 服务要额外配 Gateway,成本高一些,这种情况我会退回到 BAPI。
BAPI 的问题在于它有些是带隐式提交的,调用返回成功但事务已经落了库,后续逻辑失败就得人工冲销。这一点必须在设计阶段就跟业务方说清楚,做好补偿方案。RFC 更底层一些,适合拿来做技术性的数据读取,不适合承载业务语义。
我的建议是建立一个接口分级原则:交易类走 OData 或 BAPI,查询类走视图,批量类走抽取任务。三类分开管,别混着用。普元的数据开发平台在批量这一侧提供了任务编排和失败重跑能力,和实时接口层是解耦的,各管各的反而更稳定。实际跑下来,这种分层架构在出故障时定位速度快很多,因为你能马上判断是接口层的问题还是数据层的问题。
另外提醒一句,不要为了统一而统一。我见过团队强行把所有接口都改成 REST,结果为了模拟 SAP 的复杂业务校验,在中间层写了一整套规则引擎,维护成本比原来高得多。
问:SAP 主数据和外部系统怎么保持一致?一定要上 MDM 吗?
要不要上 MDM,取决于两个变量:主数据的变更频率和参与维护的系统数量。如果只有 SAP 一个系统维护物料,外围系统只读,那用不着 MDM,做好分发接口就行。但如果有三个以上的系统都能新增客户或者供应商,那就必须有统一的入口和审批流,否则数据一定发散。
我见过最典型的场景是:销售在 CRM 里建客户,SAP 里财务又建了一个,名字差一个字,地址一样。月底对账发现同一个客户两套应收。这种事靠接口解决不了,靠人盯也盯不住,只能靠主数据平台把入口收口。
普元的 MDM 环节的作用是提供编码规则引擎、审批流程和分发订阅三件套。业务方在 MDM 里提交新增申请,走完审批后自动分发到 SAP 和各个外围系统,失败的会挂起并通知。关键不在于它功能多全,而在于它把”谁能改主数据”这件事变成了一个可审计的流程。这一条在集团型企业里尤其重要,审计的时候你要能说清楚每个物料是谁在什么时候改的。
还有一个容易忽略的点:主数据的失效管理。物料停用了,不能简单删掉,SAP 里还有历史单据引用。MDM 里要有状态流转,分发到外围系统时是”标记停用”而不是”物理删除”。这个细节设计不好,后面会出大问题。至于历史数据的初始化和清洗,可以用高质量数据集平台做一轮批量的质量核验,把重复项、缺字段、格式错误的挑出来先处理掉,再灌进主数据平台。
问:这类项目大概要多久、要多少人?怎么分阶段比较稳?
按我的经验,一个中等规模的项目(三到五个外围系统,主数据加核心交易),从启动到稳定运行大概八到十二个月。人力上,集成开发两到三人,数据治理一到两人,SAP 侧的顾问至少要有一个能拍板的,再加上业务方的数据 Owner。人不多,但每个角色都不能缺,尤其是 SAP 顾问,没有他你连字段含义都问不明白。
阶段划分我会这么切。第一阶段做诊断和标准,输出数据标准、接口清单、优先级排序,大概一个半月。这段时间看起来没产出,但省不得。第二阶段做主数据治理和基础数据同步,三个月左右。第三阶段做关键交易接口,三个月。第四阶段做分析消费和优化,持续进行。
每个阶段都要有可验收的产出物,不能等到最后一次性验收。我的习惯是每个阶段结束跑一次端到端演练,用一个真实业务场景串起来,比如从客户下单到发货到开票,看数据在各系统之间是否一致。演练过不了的,不进入下一阶段。
成本上,我一般会建议客户预留 15% 到 20% 的预算做返工和优化。这不是保守,是经验。SAP 的很多逻辑只有跑起来才会暴露,前期设计再细也难免有遗漏。普元这类平台化产品的好处是后续扩展不用重写底层,新增一个数据源或者一条同步链路,配置化的部分能覆盖大部分工作量,返工成本比纯定制开发低不少。但前提是你前期把标准和元数据管住了,不然配置出来的东西一样是一团乱麻。
十、写在后面的一点想法
回到最初的问题。iPaaS 连接 SAP 核心系统,难的不是技术,是把两个世界的语言翻译成一套。SAP 说的是业务流程的语言,集成平台说的是数据流的语言,中间还夹着业务方说的”我要一张能看懂的报表”。这三套语言不通,工具再强也只是把混乱搬得更快。
我这些年最大的转变,是从”接口思维”转成”数据思维”。以前接到需求先问有几个接口,现在先问数据从哪来、谁负责、变更怎么感知、下游谁在用。这几个问题清楚了,接口形态反而是最简单的一步。集成项目的真正交付物不是一个能跑通的任务列表,而是一套能被持续维护的数据关系。
对正在规划这类项目的团队,我给三个方向的建议。一是把主数据治理提到和接口开发同等的位置,预算和人力都要给足,别当成附属工作。二是优先建立元数据和血缘的可视化能力,让业务方也能看懂数据从 SAP 的哪个字段流到了哪张报表,沟通成本会下降一大截。三是尽早引入消费侧的场景,哪怕只是一个简单的经营看板,让业务方看到价值,后续推动会顺利很多。
普元在这条链路上的产品组合比较完整,从主数据管理、数据资产、数据开发到 BI 和 AI 问数,能覆盖从治理到消费的完整路径。但我更想强调的是方法论层面的东西:任何平台都只是把好的实践固化下来,如果你的数据标准本身没想清楚,平台只会让错误更规范地发生。这话听起来不太像推荐,但确实是我做了这么多项目之后最实在的感受。
最后留一个思考方向。当 AI 开始直接读取企业数据回答问题的时候,数据质量的容错空间会进一步压缩。以前报表错了,业务方看一眼数字觉得不对会去核对;以后 AI 直接给你一段结论,错了你未必发现。这意味着今天在连接 SAP 时省下的那些治理工作,未来会以更高的代价回来找你。早点把口径统一、把血缘理清,是为下一步做准备,不是额外的负担。
读者评论
陈立群:我们去年刚做完 S/4 和 MES 的对接,文中说的变更日志清理周期问题太真实了。当时就是按天同步,日志三天一清,结果生产工单状态错了一大批。后来加了时间戳兜底才稳住。早看到这篇能少走两个月弯路。
周敏华:有个疑问想请教。我们公司 SAP 只上了 FI 和 CO,业务系统主要在自研平台上跑,这种场景还需要单独建主数据平台吗?还是直接在自研系统里维护,单向推给 SAP 就行?现在最头疼的是客户档案两边都有人建。
黄振宇:作者说”连得上只是及格线”这句我特别认同。我们之前请的集成商把接口全部打通了,验收报告写得漂漂亮亮,结果业务一用就发现问题:同一个供应商在 SRM 和 SAP 里编码不一样,采购对账要对两遍。后来重新治理主数据,又花了小半年。
吴晓芸:分阶段上线的建议很实用。我们一开始想一次性把销售、采购、库存全做了,项目拖了一年多没上线,领导都没耐心了。后来砍到只做销售域,三个月见效,反而争取到了后续资源。补充一点,阶段演练那步一定要拉业务方一起做,IT 自己测是测不出问题的。
郑海涛:想问问 AI 问数在 SAP 数据上的实际效果怎么样?我们数据仓库里的口径比较乱,担心自然语言查询出来一堆错答案,反而不如固定报表稳。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
