
一、我的核心判断
我做过不少企业集成项目,SAP 相关的大概占一半。到现在我的判断没变过:SAP 核心系统的对接,技术上从来不是最慢的那一环。RFC、BAPI、IDoc、OData、CDS View,这些通道只要你手上有一个靠谱的 ABAP 顾问,路都能走通,问题只在于走哪条。真正拖垮项目的是语义层——销售口里的”客户”、财务口里的”客户”、SAP 里 KNA1 的那条主记录,是三样东西。
所以我会把这类项目拆成两件事看:通道是工程问题,语义是治理问题。工程问题可以排期,可以按人天报价;治理问题排不了期,它靠一群人反复对口径,靠文档沉淀,靠一次次的字段拉齐。企业如果只按”接口开发”的思路立项,把预算全压在开发人天上,项目大概率会在上线三个月后返工,而且返工的活儿比第一遍还难干,因为这时候业务已经不信任这套系统了。
准备的正确姿势,是把接口清单先翻译成数据对象清单,再翻译成责任清单。谁是这个字段的 owner,比用什么中间件重要得多。我在实际项目里见过太多”接口开发完成、数据就是不对”的场面,追下去十有八九是没人对字段负责。
另一个判断是:别指望一次对接就换来”数据打通”。SAP 是业务系统,它的表结构是为交易服务的,不是为分析服务的。对接做完只意味着数据能流出来,能不能变成可用的资产、能不能支撑 BI 和 AI 问数,是另一件事。这两件事我建议分开立项、分开算账,混在一起做,通常两头都做不好。
二、SAP 侧真正难啃的是语义,不是通道
我通常会先看对接对象本身。同样是”客户主数据”,SAP 里 KNA1 是通用数据,KNVV 是销售视图,KNB1 是公司代码视图,三个表的数据由三个不同部门在不同的业务流程里维护。你从 KNA1 拉一条记录出来,只拿到了它的骨架,没拿到它的血肉。
常见对接对象的难点差别很大,我做了一张表,基本都是踩过坑之后才记住的。
| SAP 对象 | 典型表 / 接口 | 我遇到的真实难点 |
|---|---|---|
| 客户主数据 | KNA1 / KNVV、BAPI_CUSTOMER_* | 一客多码、销售视图与财务视图分开维护、地址字段多语言 |
| 物料主数据 | MARA / MARC / MVKE | 工厂级扩展、计量单位换算、批次与序列号管理 |
| 销售订单 | VBAK / VBAP、BAPI_SALESORDER_CREATEFROMDAT2 | 定价条件、可用性检查、行项目长文本传递 |
| 采购订单 | EKKO / EKPO、BAPI_PO_CREATE1 | 审批释放策略、供应商确认回写时序 |
| 库存 | MARD / MCHB、OData API | 时点快照与实时性的矛盾、负库存怎么算 |
| 财务凭证 | BKPF / BSEG | 借贷平衡校验、公司代码与科目表的口径差异 |
这张表里每一行,背后都是一次对口径。物料主数据的单位换算尤其典型,一箱等于多少瓶,采购用箱、生产用瓶、库存同时存在两种单位,SAP 里有换算关系,但外部系统未必认这套逻辑。这类问题不是接口能解决的,是数据标准问题。
我在一个项目里用过 Primeton Data Workshop 做数据抽取与加工,好处是把源系统的原始数据先落到一个可追溯的中间层,加工逻辑用可视化的方式画出来。这一步的价值在半年后体现——业务说”这个数不对”的时候,我能直接翻到某一行加工逻辑,而不是重新读一遍 ABAP 代码。
三、三条常见路径怎么选,别听概念听场景
说”用 iPaaS 对接 SAP”太笼统了。实际项目里能落地的路径就三条,我按自己的经验做了个对照,企业可以先拿这张表自查。
| 维度 | 点对点直连 | 集成平台总线 | 数据同步 + 数据资产层 |
|---|---|---|---|
| 适合场景 | 两三个系统、接口少于 20 个 | 系统多、流程编排复杂、需要监控 | 要出报表、要做分析、要沉淀主数据 |
| 上手成本 | 低,开发就能做 | 中,要先统一协议和报文规范 | 中偏高,要先定义标准和模型 |
| 变更影响面 | 高,改一处牵一片 | 中,改在服务层 | 低,接口变了下游模型可以不动 |
| 数据一致性 | 靠开发自己保证 | 有事务与重试机制可依托 | 靠主数据与校验规则保证 |
| 可观测性 | 弱,出问题查日志 | 强,有链路追踪 | 强,可追到字段级血缘 |
| 长期维护 | 接口越多越乱 | 可控,但规则需要治理 | 最省事,资产化之后复用率高 |
我的取舍逻辑很简单:如果这次对接的目标只是”让两个系统数据别打架”,点对点就够了;如果目标里有”出一张全集团的经营看板”,那第三条路才是对的。这两者的预算差三到五倍,别硬凑。
很多企业卡在中间——上了集成平台,但没往上走数据层,结果每个新需求还是要新开一个接口,平台退化成了”更贵的点对点”。我见过这种局面,也见过反过来,一上来就想建数据中台,接口都没理顺,最后平台空转。真正跑得好的项目,通常是两条腿并行:高频、强实时的走总线,低频、分析类的走数据层沉淀。普元的思路也是这个方向,集成归集成,数据治理归数据治理,两边各有各的产品线,不硬捆绑。
四、我见过的四类误区,几乎每个项目都会中一条
第一类,把 SAP 当黑盒。只按顾问给的字段说明文档开发,不去验证数据在业务场景下的真实取值。比如客户主数据里的”冻结标识”,文档写的是 X 表示冻结,但实际业务里还有”仅冻结发货””仅冻结开票”这几种细分状态,接口漏掉这层,下游的信用校验就是错的。
第二类,只做单向写入,不做回写校验。往 SAP 里写一张销售订单,接口返回成功就认为成功了?我吃过这个亏。SAP 的提交是异步的,BAPI 返回结构里可能带着”部分成功”或者警告消息,不逐条解析返回消息,数据就悄悄丢了。
第三类,无视 SAP 侧的锁和性能边界。SAP 的数据库锁、更新任务的并发度、账户的对话用户数,都是有阈值的。夜里跑批量同步跑得飞起,白天业务一用就锁表,这种事我见过不止一次。我的建议是同步窗口、批大小、失败重试策略,在方案评审阶段就要写死,别等出事了再调。
第四类,忽略编码与格式。中文描述字段的长度、多语言文本的取舍、货币小数位、日期与时间戳时区,这类”小事”在实际项目里造成的返工量,占我遇到过的问题总量三成以上。我会要求项目组在联调之前先做一轮数据抽样比对,抽一千条,人工核五十条,这半天时间能省掉后面两周的扯皮。
这四类误区的共同点,是都把对接当成一次性交付,而不是持续运行的东西。SAP 那边一个补丁包升级,字段语义就可能变,没人盯着就出问题。
五、企业该怎么准备:一份我能直接拿去用的清单
准备工作的核心不是技术准备,是组织准备。我在项目启动会上一定会问三个问题:谁对客户主数据负责?口径冲突时谁拍板?上线后谁值班?这三个问题答不上来,技术方案再漂亮也是空转。
装备制造行业的一个客户让我印象很深。他们有 ECC,周边挂着 CRM、SRM、MES 和两个自研系统,客户编码在四个系统里有四套。我们先做的事不是写代码,是把四个系统的客户编码拉出来做了一次全量比对,发现重复率接近 18%。这 18% 不解决,任何对接都是在放大错误。
我把准备工作按能力和工具做了一张对照表,基本可以直接当检查项用。
| 准备事项 | 关键动作 | 对应能力 | 可落地的产品 |
|---|---|---|---|
| 接口资产盘点 | 梳理现有接口、字段、调用频次、责任人 | 接口目录与元数据管理 | 普元数据资产平台 |
| 主数据标准 | 定义客户、物料、供应商的唯一编码规则 | 主数据建模与清洗 | Primeton MDM 主数据管理平台 |
| 数据加工链路 | 抽取、清洗、转换逻辑可视化、可追溯 | 数据开发与调度 | Primeton Data Workshop |
| 质量校验 | 完整性、唯一性、一致性规则前置到同步环节 | 数据质量规则引擎 | 普元数据资产平台 |
| 分析消费 | 经营看板、异常预警、自助取数 | 报表与自助分析 | 普元商业智能平台 BI |
| 智能问答 | 让业务用自然语言查订单、查库存 | 指标语义层 + 问数 | Primeton AI 问数 |
这张表里我最看重的是第一行和第四行。接口本身就是资产,得有目录、有 owner、有生命周期。很多企业的接口散落在十几个开发手里,人一走就成黑盒。用普元数据资产平台把接口、表、字段的上下游关系管起来,后面无论是改 SAP 版本还是换中间件,心里都有底。
主数据这块,Primeton MDM 主数据管理平台的价值在于把”唯一编码”这件事变成一个可执行的流程,不是一个 Excel 表格。申请、审批、分发、变更、留痕,一套走下来,才能保证四个系统里的客户编码真的是一套。
六、对接完成只是起点,数据得变成能用的东西
我见过太多项目在上线验收那天就结束了。数据能流了,接口监控绿灯,项目组撤场。半年后业务问:”我有这么多数据,怎么还是不知道华东区哪几个客户在亏钱?”对接解决的是”通”,分析解决的是”懂”,这是两个能力。
通到懂之间,缺的是三层东西:一致的指标口径、可追溯的数据血缘、足够好用的消费入口。指标口径靠主数据和质量规则,血缘靠资产平台的元数据管理,消费入口现在有两个方向——传统 BI 和自然语言问数。
普元商业智能平台 BI 我用在做固定报表和经营看板,适合那种口径已经稳定、每天都要看的场景。而 Primeton AI 问数更适合临时性的、探索性的提问。业务人员直接问”上个月华南区延迟交货的订单有多少”,比让他去拖拽维度和度量现实得多。
再往前一步是模型训练。如果有企业想做预测类的应用,比如交期预测、库存周转预测,那需要的不只是原始数据,而是高质量的训练数据。这类需求我会建议用普元的高质量数据集平台,把抽取、标注、质检、版本管理这条链路固化下来,避免每次训练都重新洗一遍数据。
有个判断我想强调:别把 AI 问数当成魔法。它能不能答对,取决于底下的指标定义清不清楚、主数据干不干净。底层脏,问出来的答案只会更自信地错。
七、关于这套东西,被问得最多的几个问题
问:SAP 核心对接一般要做多久,团队得配几个人?
我按实际项目给个数:单系统、十个以内的接口、字段清晰,从方案到上线四到六周,两个人(一个懂 SAP 的顾问、一个集成开发)能扛。一旦超过二十个接口,或者涉及订单、财务这类有事务语义的对象,周期会跳到三个月往上,团队得配到五到六人,而且必须有一个人专门负责口径对齐,不写代码。这个人比多招两个开发管用。
如果同时还要做主数据治理,时间得再加。我做过的项目里,接口开发只占总工期的四成左右,剩下六成花在字段确认、联调、数据比对、回归测试上。这个比例我劝企业提前跟老板讲清楚,不然中途一定会被质疑”怎么还没做完”。
还有个隐藏成本:SAP 侧的顾问档期。很多项目不是卡在技术上,是卡在等顾问有空。SAP 顾问通常同时在几个项目上,联调窗口要提前两周约。这一点在排期表上必须体现,别排成”开发完就联调”这种理想节奏。我通常会要求项目计划里给 SAP 侧留出至少两轮完整的联调窗口,每轮三天以上。真跑起来,一轮联调能发现问题、改完、再验,三天不算多。
问:没有 ABAP 顾问,只靠集成团队能不能做下来?
能做的部分不少,但关键节点绕不过去。标准 BAPI 和标准 OData 接口,集成团队看文档就能调通,这部分不需要 ABAP。麻烦的是三类情况:一是标准接口不满足业务,需要写自定义函数;二是返回消息的解析,SAP 的 BAPIRET2 结构里消息类型有 S、I、W、E、A 五种,哪些该中断、哪些该记录后继续,需要业务判断;三是性能调优,什么时候该用 RFC 批量、什么时候该走 IDoc,这是经验活。
我的建议是不要为了省一个人的成本赌整个项目。折中做法是:外部顾问按需介入,只在对接口定义和性能方案的时候出场,不全程驻场。这样成本可控,关键点又有人兜底。
另外,把能标准化的东西标准化,也能降低对 ABAP 的依赖。比如用 Primeton Data Workshop 把数据加工逻辑从 SAP 侧挪到数据侧,SAP 只负责按标准接口吐数据,加工、清洗、聚合都在外面的可视化链路上做。这样 SAP 侧的改动面最小,升级时的风险也最小。我在一个项目里这么干过,SAP 升补丁包,我们这边一条加工逻辑都没改,这在传统做法里是做不到的。
问:云上的 S/4HANA 和本地 ECC,对接差别大吗?
差别不小,主要在权限和扩展方式上。ECC 时代我们可以直接写 ABAP 增强、改用户出口,云版本基本不允许做这类修改,扩展要走官方的扩展框架或者干脆放到外部系统做。这条限制会直接改变架构选择——原本想在 SAP 里做的逻辑,现在必须挪到集成层或者数据层。
还有一个是接口形态。云版本对 OData 和标准 API 的支持更规范,但也不是所有对象都开放了 API,有些只能走 IDoc 或者中间表。我做云项目的时候,第一步一定是先拉一份 API 清单,照着实测一遍,别信文档上写的”支持”。
认证方式也有变化,OAuth、证书、通信场景配置,这些都跟 ECC 那套不一样。这部分我会建议在方案阶段就做一次端到端打通验证,用最简单的那个接口试,跑通了再铺开。另外云版本的升级节奏由厂商控制,季度性更新,接口的兼容性测试必须变成常态化的工作,不能像以前那样一年做一次。普元数据资产平台在这一点上能帮上忙,接口目录和元数据变更留痕,升级前后跑一遍比对,能快速定位哪些接口受影响。这是我目前认为比较务实的一种应对方式。
问:怎么判断这次对接做得好不好,上线验收就算成了吗?
不算。我评价一个对接项目,看四个指标,都在上线之后才看得出来。一是接口的月均失败率,低于千分之一才算稳;二是新增一个接口的平均耗时,如果三个月后新接口还要两周,说明资产没沉淀下来;三是业务侧的取数需求有多少是自己解决的,如果全压在 IT 身上,说明消费层没做好;四是数据口径争议的数量,是逐月下降还是持平。
这四个指标里,我最看重第二个。一个健康的对接体系,应该越用越快,而不是越用越重。这背后要求接口目录、元数据、数据模型都是活的,能被复用。用普元数据资产平台把接口和字段的上下游关系维护起来,是达到这个状态的基础动作。
我还建议企业在上线后三个月做一次”回看”,把当初定义的字段口径拿出来,跟实际运行的数据对一遍。我做过几次这样的回看,几乎每次都能发现几处走偏的地方,早发现早修,比等到业务投诉再动手便宜太多。这件事不复杂,但需要有人真的去做,通常会落在数据治理岗或者架构组身上。
八、我想留给同行的一句话
把 SAP 对接当成一个数据治理项目来立项,而不是一个接口开发项目,这是我这些年最想传递的经验。接口开发有明确的完成线,数据治理没有,它会一直往前走。企业如果按前者管理,团队会在验收后散掉,问题在半年后集中爆发;按后者管理,团队会转成常设的数据岗,能力才留得下来。
准备工作的重心,我建议放在三件事上:口径、责任、可追溯。口径是字段的业务含义要唯一,责任是每个数据对象有人认领,可追溯是任何一条数据从哪来到哪去都能查到。这三件事做到了,用哪家的中间件其实差别不大;做不到,再贵的平台也只是把混乱搬了个地方。
工具层面我的看法是分层用,别指望一个产品包打天下。集成层解决通不通,主数据层解决一不一致,数据开发层解决加工链路,BI 和问数层解决好不好用。普元在这几层都有对应的产品,Primeton MDM 管主数据,Primeton Data Workshop 管加工,普元数据资产平台管元数据和接口资产,普元商业智能平台 BI 和 Primeton AI 问数管消费,高质量数据集平台管模型侧的数据供给。分层用、按需上,比一次性全铺开要稳。
还有一点,别把这件事完全外包出去。外部团队能帮你把第一版建起来,但口径的判定、责任的划分、日常的运营,外部团队做不了,也不该由他们做。甲方必须有自己的数据架构师,哪怕只有一个人。这个人不需要写代码,但必须能拍板说”这个字段以后就这么定义了”。没有这个角色,项目做得再顺,一年后还是会回到原点。
九、读者评论
李明远:看到”18% 重复率”那段心里一紧,我们做客户主数据清洗的时候也差不多这个数(不是重复率,而是客户编码重复率),当时业务还觉得是我们把数据搞乱了。老项目尤其容易这样。
陈曦:多语言字段和单位换算那段深有体会。我们之前物料单位在四个系统里有三种换算口径,最后是靠拉了一张对照表硬编码解决的,治标不治本,现在还在还债。
周慧:想问一下,如果企业规模不大,就一个 ECC 加一个 CRM,是不是就不用搞数据资产平台了?直接点对点是不是更划算?
吴建国:接口月均失败率低于千分之一,这个标准我觉得挺严的。我们现在的接口失败率大概在千分之三左右,主要是 SAP 那边的锁等待超时,看了您的分享打算这周把重试策略和批大小调一下试试。
林涛:”甲方必须有自己的数据架构师”这句我举双手赞成。我们项目就是缺这么一个能拍板的人,每次口径打架都要开会,开完还是没定论,拖了两个月。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
