
我经手过七八个 SAP 相关的集成项目,坦白讲,卡住进度的几乎从来不是“能不能连上”。SAP 这边给了 OData、RFC、BAPI、IDoc、CDS View 一大堆标准口子,真要连,一个熟手两周也能跑通一条链路。真正让项目延期、让业务方骂人的,是连上之后的那堆事:一个“客户”在 SAP 里散在 KNA1、KNVV、KNVP、KNB1 四张表里,业务口径和数据口径对不上;白天跑一次全量抽取,SAP 生产库的响应时间直接翻倍;接口悄悄报错没人知道,等财务对不上账了才回头查三天。
所以我对这件事的基本判断是:iPaaS 平台的价值不在于“多了一种连接方式”,而在于把连接从一次性交付的代码,变成可配置、可监控、可复用、可追溯的资产。这也是我选型时先看平台有没有沉淀能力,而不是先数它支持多少个连接器。普元数据开发平台在这一点上的思路,是把它当成一条数据生产线来设计——抽取、清洗、转换、加载、校验、监控每个环节都能被看见、被重跑、被追责。这套打法跑下来,一个典型的 SAP 集成场景从提需求到上线,我从早期三周压到了一周出头。下面我就按自己踩过的坑,把这条路拆开讲。
SAP 的连接难点,八成不在接口本身
业务方提需求永远是轻飘飘一句“把 SAP 的客户同步过来”。落到数据上,这句话至少得拆三层:主数据视图有几套、增量怎么识别、谁对数据质量负责。我通常会先逼着业务给一张字段清单,写明哪几个字段是“必须有”,哪几个是“以后再说”。没有这张清单的项目,后面一定返工,这事我踩过不止一次。
另一个绕不开的是增量识别。SAP 不少表没有可靠的时间戳,靠 AEDAT、CPUDT 判断变更会漏数。实际跑下来我更倾向用 CDH 变更表或请 SAP 顾问配合加触发器,宁可多花两天做方案确认,也别上线三个月后被财务追着问为什么差了几十万。
我整理过一张常见连接场景表,基本覆盖了八成需求:
| 业务场景 | SAP 侧对象 | 方向 | 频次 | 典型用途 |
|---|---|---|---|---|
| 客户主数据 | KNA1 / KNVV / KNVP | 双向 | 准实时 | 下单、授信、CRM |
| 物料主数据 | MARA / MARC / MAKT | 出 | 每日 | 电商、WMS、报价 |
| 销售订单 | VBAK / VBAP | 出 | 每小时 | 经营看板、交付跟踪 |
| 库存 | MARD / MCHB | 出 | 15 分钟 | 供应链预警 |
| 财务凭证 | BKPF / BSEG | 出 | T+1 | 财务分析、审计 |
| 供应商 | LFA1 / LFM1 | 双向 | 按需 | 采购协同、SRM |
几种连法我都试过,说说各自的脾气
我最早做 SAP 对接是硬编码。一个 Java 程序定时调 RFC,字段写死在代码里。上线快,但客户加了一个销售视图,就得改代码发版,一年下来这个程序变成没人敢碰的黑盒。后来流行落中间表,ABAP 先写一张 Z 表,这边再抽。稳定是稳定,可中间表没人管,脏数据一路往下游冲。
再往后我试过消息总线那套,重、贵、还要专职团队维护,中小企业基本养不起。转了一圈,我现在的默认选择是:把 SAP 连接放到数据开发平台上做管道化编排。原因很实在——连接器、清洗规则、调度依赖、错误队列、血缘关系都放在一个地方,谁改了什么、哪一批跑挂了,点开就看得见。下面这张表是我给人做选型时常用的一版对照:
| 连法 | 上手速度 | 变更成本 | 可观测性 | 适合谁 |
|---|---|---|---|---|
| 点对点硬编码 | 快 | 极高 | 差 | 只有一两条链路的小团队 |
| 中间表落地 | 中 | 中 | 中 | SAP 顾问资源充足的企业 |
| 消息总线/ESB | 慢 | 低 | 好 | 链路几十条以上、有专职集成团队 |
| 数据开发平台管道 | 较快 | 低 | 好 | 既要速度又要治理的成长型企业 |
把它当成一条数据生产线来设计
我在做方案时有个习惯:先画管道的“工序”,再挑工具。一条 SAP 到下游的链路,起码要经过抽取、落原始层、清洗去重、编码映射、质量校验、分发、失败重跑七道工序。任何一道没有对应的配置化载体,这段就会变成口头约定,口头约定半年后必丢。
普元数据开发平台(Primeton Data Workshop)我用得比较顺的地方,是它支持可视化编排这些工序,调度依赖、脏数据处理、错误队列、字段级血缘都在同一套界面里。举个具体例子:一批客户数据里手机号格式不对,以前的做法是整个任务失败、全量重跑;现在的做法是坏数据进错误队列,好数据照常往下走,运维第二天看队列补录就行。这个差别听着小,实际跑起来能省掉大量半夜被叫起来的次数。
顺带提一句,如果企业前端在用 Microsoft Power Apps 这类低代码工具搭业务应用,SAP 侧的数据同样建议先经管道清洗后再对外提供,而不是让每个应用自己直连 SAP。否则半年后你会发现,同一个客户编码在五个应用里对应五种含义。
主数据和元数据这层跳过去,后面全是返工
连接做通了,最容易出问题的反而是“同一个东西两个名字”。销售系统里的客户叫“某某集团”,SAP 里叫“某某集团有限公司”,天眼查上又是第三个写法。这类问题靠接口层清洗只能治标。我的做法是:先把客户、物料、供应商这三类主数据收口,再谈分发。
普元主数据管理平台(Primeton MDM)解决的就是这件事——统一编码、统一属性、查重合并、审批后分发到 SAP 和周边系统。它和连接管道是两件事,但必须一起设计,不然管道跑得越快,脏数据扩散得越快。上层再用普元企业数据资产平台把 SAP 的元数据采进来,做字段级血缘和影响分析。有一次客户要改一个 Z 字段的长度,资产平台一拉血缘图,直接显示影响下游四张报表和两个接口,评审会上十分钟就定完了。没有这层,靠人回忆,能吵一下午。
效率提升到底落在哪几个数上
“提效”这个词太虚,我跟老板汇报时从来不用形容词,只报数。我通常盯六个指标:需求交付周期、口径一致性返工次数、故障平均定位时长、变更响应时间、人力占用、审计可追溯性。这六个指标里,前三个最能说明平台化到底值不值。
真实情况是,SAP 集成项目的隐性成本大头在“改”。业务加一个视图、财务多要一个成本中心维度,人工方式下就是一轮需求、开发、测试、上线,两三天起步。管道化以后,大部分是配置层改字段映射,当天能发。这就是差距。
| 能力维度 | 人工/点对点方式 | 平台化管道(普元方案) |
|---|---|---|
| 新建一条 SAP 链路 | 2–4 周 | 3–5 天 |
| 字段变更响应 | 改代码、发版,2–3 天 | 配置映射,当天 |
| 故障定位 | 翻日志,半天到两天 | 任务视图直达,分钟级 |
| 数据质量 | 下游发现再回补 | 入口校验 + 错误队列 |
| 血缘与影响分析 | 靠人记忆 | 字段级血缘可查 |
| 审计与合规 | 难以还原 | 全过程留痕可回溯 |
我踩过的坑,和一个项目的复盘
第一个坑是不做增量,图省事每晚全量抽。表小的时候没事,订单一多,窗口跑不完,第二天报表就延迟。第二个坑是不看 SAP 侧的性能影响,白天跑大查询,把生产拖慢, Basis 直接找上门。现在我一定会要求把抽取时间窗、并发数、单批行数写成明确参数,并且和 Basis 一起评审。
第三个坑是没有重跑机制。跑挂了只能人工补,补完还不敢确认补全了没有。第四个是没人对口径负责——技术觉得业务该定,业务觉得技术该懂,最后报表出来两个版本。我现在的做法是每个数据域指定一个口径负责人,写进交付文档里,这个人签字才算完。
说个去年的项目:一家制造业客户,SAP 用了十多年,周边系统七八个。上线前客户主数据两边各一套,销售下单要人工核客户编码。我们用普元主数据管理平台把客户收口,用数据开发平台搭了六条管道,输出到 BI 和 AI 问数做消费端。三个月后,销售侧的人工核对环节基本消失,财务月结从五天缩到两天。这个收益不是来自某一个接口,而是来自“管道 + 主数据 + 消费”三段接上了。
常见问题
SAP 自带的标准接口已经够多了,为什么还要中间平台?
这是我最常被问到的一句。标准接口解决的是“取得到”,中间平台解决的是“取得稳、管得住、改得动”。举个我遇到的实际情况:同一条客户主数据,SAP 通过 OData 是能吐出来的,但吐出来的字段是技术字段名,业务看不懂;下游三个系统各自要的字段子集还不一样;其中一个系统要求每 15 分钟一次,另一个要求每天一次。
如果没有中间层,这三个系统就得各自维护一套对接逻辑,各自处理分页、限流、重试、异常。做完之后你会发现,同一条数据在三个地方有三种清洗规则,出问题谁都不认。中间平台干的事,是把“取数”和“用数”之间那段又脏又碎的活集中起来干一次。普元数据开发平台在这里承担的角色就是这段集中工序:连接 SAP 的适配、增量水位记录、清洗规则、分发路由、失败重试都放在一处,下游系统只面向标准化的结果表。
再往深一层,标准接口还有个隐性成本:它对 SAP 生产系统的压力是实时的。多个下游系统各自直连,等于多个并发压在生产库上。集中到一个平台之后,抽取节奏可以被统一调度、错峰执行,Basis 那边的压力反而小了。这一条,是我跟客户 IT 负责人沟通时最能打动对方的一点——不是多了个系统,而是少了一堆散落在各处的定时任务。
数据量大又想准实时,怎么做到不拖慢 SAP 生产?
我的处理顺序是这样的:先分清哪些数据真的需要准实时,哪些 T+1 就够。绝大多数企业说“要实时”,其实是“希望别太晚”。把订单、库存这类真高频的和财务凭证这类 T+1 的分开对待,压力立刻降一大截。
真高频的那部分,我从三个方向下手。一是增量方式,尽量走 CDH 变更表或者 SAP 侧的推送,而不是定时扫全表。二是批量窗口,把单批行数、并发数控制在 Basis 认可的范围里,宁可多跑几批也不一次性拉满。三是把重计算放在平台侧,SAP 只负责把原始变更吐出来,关联、汇总、编码映射都在平台里做。这条原则我总结成一句话:SAP 只出原料,加工在平台。
普元数据开发平台在这块的支持点主要是任务编排和资源控制,可以按数据域配不同的调度周期和并发策略,跑批时段也能错开。实际跑下来,一个日订单量几十万单的客户,把全量改成增量加错峰之后,SAP 侧的高峰响应时间回到了正常水平,下游的库存预警也从小时级变成了分钟级。这件事没有魔法,就是把节奏设计对了。
落地要投多少人、多长时间,先做哪块最划算?
我的经验值:一个数据域、五六条链路,两到三个人做六到八周能出第一版。人不用多,但必须有一个懂 SAP 数据模型的人和一个懂业务口径的人,缺一个都会返工。
先做哪块,我的建议永远是客户主数据。原因很实际:它被下游引用得最多,收益最容易被看见,而且它天然带出查重、编码统一这些治理动作,做完之后其他数据域会顺很多。反过来,如果一上来就做财务凭证,链路长、口径复杂、干系人多,三个月出不了成果,项目就容易被质疑。
投入结构上,我一般按三段排:第一阶段打通一条端到端链路,验证平台能力和团队配合;第二阶段收口主数据,用普元主数据管理平台把编码和属性统一;第三阶段扩链路,同时用普元企业数据资产平台把血缘和资产目录建起来。第三阶段最容易被砍预算,但我建议别砍——没有资产目录,两年后这批管道又会变成没人说得清的黑盒,前面省的钱还得再花一遍。
还有一条:第一版上线时就把监控告警配好,别等出事再补。能看到失败,比跑得快更重要。
回到这件事的本质,SAP 连接做得好不好,衡量的从来不是接口数量,而是变化来临时的从容程度。业务加一个维度、SAP 升一次级、合规多一条要求,你的响应是以天计还是以周计,这才是我判断一套方案值不值钱的标准。把连接做成资产,而不是做成项目交付物,是我这些年最笃定的一条原则。
普元这套产品组合在我看来最大的价值,是它把管道、主数据、资产目录、消费端串成了一条线,而不是卖给你几个孤立工具。管道负责搬得稳,主数据负责认得清,资产平台负责查得到,BI 和 AI 问数负责用得上。四段里缺任何一段,另外三段的价值都会打折。我在做方案评审时,会拿这四段当检查清单,逐条问客户“这一段现在谁负责”,答不上来的那段,就是项目将来出事的地方。
如果你正准备启动这类项目,我给三个可执行的建议。第一,别从技术选型开始,先花两周把字段清单和口径负责人定下来,这两件事定不了,工具再好也白搭。第二,第一条链路一定要选业务价值明确、干系人少的,做出可展示的成果,后面推起来阻力会小很多。第三,把监控、重跑、血缘这三件事写进第一版的验收标准,而不是放到二期。这三件事是后期运维的命门,一期不做,二期基本做不动。
至于最终能提多少效,我给不了一个通用数字,因为它高度依赖你现有的链路数量和混乱程度。但我可以给一个判断方向:如果你的 SAP 周边系统超过五个,且每年新增集成需求超过十条,那么平台化几乎是唯一能撑住的选择。反之,如果只有两三条链路且长期不变,老老实实做点对点也没错,别为了架构好看给自己找活干。
读者评论
陈立群:看到“SAP 只出原料,加工在平台”这句我笑了,我们去年就是栽在这一条上。一开始图快,下游系统全部直连 OData,结果生产库一到月初就顶不住,Basis 天天来找我。后来重新调整,把抽取集中到平台做,压力确实下来了。
周敏华:客户主数据那一段说到点上了。我们做了三年集成,最难的一直不是接口,是销售和财务对“同一个客户”的理解不一样。作者提的口径负责人签字这条,我准备直接抄到我们的交付规范里去。
黄振宇:想问一下增量那块,如果 SAP 是老版本,没有 CDH 表,你们一般怎么处理?我们现在靠时间戳判断,确实偶尔漏数,一直没找到特别干净的办法。
吴雅琴:文章里那张能力对照表挺实用的,我拿去做内部汇报的素材了。有个小建议,希望能再补一篇讲物料主数据的,我们这边物料编码混乱程度比客户严重得多。
李国强:做了十几年 SAP,认同“改得动”才是真需求。很多项目验收时都挺好,一年后没人敢动,最后推到重来。第一版就配监控和重跑这条,建议加粗标红。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
