
我的核心判断:功夫七成在数据,三成在通道
我参与过的 SAP 相关集成项目,从几百人的汽配厂到上万人的集团都做过。看下来的规律相当稳定:真正决定项目成败的,不是选了哪套集成工具,而是三件事有没有提前说清楚——哪些数据归 SAP 管、哪些归外围系统管,接口的粒度和调用频率定在什么量级,主数据由谁来维护。这三件事谈不拢,用什么工具都是把一团混乱自动化一遍,跑得越快错得越远。
SAP 在国内企业里的位置太特殊。它既是财务口径的来源,又是供应链和生产执行的执行系统。外围的 CRM、MES、WMS、电商、报销、报表平台,几乎没有不想从它身上取数的。接口一旦无限扩张,半年就能长成一张谁也看不懂的网,出问题时连查日志的人都要找半天。
我的建议是分层处理:交易类数据走事件驱动,用轻量的接口编排;主数据和参考数据走统一的治理与分发通道;分析型数据走批量抽取,尽量别去碰生产库。这三条路各用各的机制,混着用一定出事。
普元在这一层的位置,是把集成之后的数据资产沉淀下来。接口只是把人流引进来,真正让系统之间不打架的,是主数据、数据标准和数据目录这套底座。下面我把自己踩过的坑、做过的取舍,按项目顺序摊开讲一遍。
卡点从来不在接口本身,而在你选了哪条通道
SAP 对外提供的接入方式就那么几种,很多人以为随便挑一个能跑通就行,实际跑下来差别极大。选错通道的代价,往往在项目上线三个月后的高峰期才暴露出来。
我见过最典型的一次事故:外围系统用远程调用方式逐条推送订单,测试环境每天几百单毫无问题,上线后碰上大促,几万单同时进来,SAP 的应用服务器直接被打满,连财务月结都受影响。后来改成一次调用传数组、批量提交,压力立刻降下来。
下面这张表是我自己项目里常用的一张对照,放在这里供参考。
| 接入通道 | 典型场景 | 实时性 | 我的使用建议 |
|---|---|---|---|
| 远程函数调用(RFC/BAPI) | 订单创建、库存查询、客户校验 | 秒级 | 只适合单条事务;批量场景务必一次性传数组,别写循环 |
| 中间文档(IDoc) | 采购订单、发货、发票的批量同步 | 分钟级 | 异步解耦的首选,但状态回执和重发机制必须做 |
| OData / Gateway 服务 | 移动端、前端页面取数 | 秒级 | 注意分页和字段裁剪,整表拉取是自杀行为 |
| 中间表与只读视图 | 大批量历史数据、报表取数 | 小时级 | 只读,绝不写生产表;用时间戳做增量 |
| 文件落盘(CSV/XML) | 对账、月结、外部机构交换 | 天级 | 看着土,但最可靠;校验和重跑机制要配齐 |
这张表我一般会在项目启动会上直接贴出来,让业务方自己指认哪些场景属于哪一行。一旦场景和通道对上了号,后面 80% 的技术争论会自动消失。
三条落地路线,适合的企业完全不同
市面上讲集成,喜欢把所有方案说成一样好。我的经验是,三条路线各有各的适用边界,选错了不是效率问题,是能不能维护的问题。
点对点定制开发,就是两个系统之间直接写死调用。三五个接口的小项目,这样做最快,两三天就能上线。但它没有统一的可观测性,谁调了谁、失败了几次、卡在哪一步,全靠翻应用日志。
基于集成平台统一编排,把接口收敛到一层做路由、转换、重试和监控。接口数量上到二三十个以后,我基本都会往这个方向推,因为排障成本会断崖式下降。
以数据开发平台为主体的批量同步加治理,适合分析型、对账型需求,比如每月把 SAP 的凭证、库存流水抽到数据侧做口径统一。它不保证事务一致性,靠补偿和校验兜底,但吞吐量大、对生产系统冲击小。
| 对比维度 | 点对点定制 | 集成平台编排 | 数据侧批量同步 |
|---|---|---|---|
| 上线速度 | 快 | 中等 | 偏慢 |
| 接口可观测性 | 弱 | 强 | 中等 |
| 事务一致性 | 依赖开发人员自觉 | 平台统一保障 | 不保证,靠补偿 |
| 单次数据量承载 | 小 | 中等 | 大 |
| 长期维护成本 | 高 | 低 | 中等 |
| 典型适配场景 | 三五个接口的临时对接 | 十到上百个接口的常态运行 | 分析、对账、数据沉淀 |
顺带说一句,低代码这一路这几年也在往集成场景里走。Microsoft Power Apps 在表单和轻量流程编排上体验很顺,和微软生态内的系统配合几乎没有摩擦;Mendix 的模型驱动方式适合把业务规则沉淀成可视化的应用逻辑,团队协作上比较友好。Appian 在流程自动化编排上的成熟度也值得看一眼。它们的定位偏应用与流程侧,真正涉及 SAP 主数据口径统一,还是得回到数据治理这条线上来。
真实项目里最容易翻车的几件事
第一件是打生产库。有团队为了省事,直接连 SAP 的数据库表做查询,白天业务高峰期跑大查询,结果整个系统卡住。SAP 的生产库不是给你随便读的,这句话我每次都要重复一遍。
第二件是接口没有幂等。网络超时后自动重发,SAP 侧又生成了一张一模一样的单据。财务对账时发现重复凭证,追查两天才发现是重试机制的问题。我的做法是每条消息带唯一业务号,SAP 侧做前置校验。
第三件是编码不统一。同一个客户,CRM 里叫”某某科技有限公司”,SAP 里是客户编码,电商系统里又是另一套 ID。接口写得再漂亮,对不上号就是白干。
第四件是链路查不到。报错信息只有一句”调用失败”,既不说是哪个字段,也不说卡在哪一步。上线半年后没人敢动这套接口,因为谁也说不清改了会波及什么。
这四件事有个共同点:它们都不是集成工具能解决的,全是数据治理和组织协同的问题。所以我在方案评审时,会把一半时间花在这些看起来”不像技术”的议题上。
几个流传很广、但我认为站不住脚的说法
项目里经常听到一种观点:上了集成平台,数据标准的事就可以往后放。我的判断正好相反——平台只是把脏数据传得更快。接口数量翻倍而主数据没统一,问题只会成倍放大。
还有一种说法是接口越多,说明集成做得越深入。这话听着有理,实际跑下来完全不是那么回事。我见过一家企业做了两百多个接口,仔细一看,六十多个是同一个物料信息从不同系统重复拉取。接口数量不是成绩单,重复接口才是债。
第三个误区是实时一定比批量好。业务方经常一上来就要”实时”。我会反问一句:这个数据晚十分钟看到,会影响谁做哪个决策?大部分场景答案是”不影响”。为不存在的实时性付出三倍的成本,这笔账不划算。
第四个说法是 SAP 里什么数据都能直接取。技术上确实能,但权限、审计、性能三道关摆在那里。我的原则是:能通过标准服务拿到的,绝不碰底层表;能通过只读视图拿到的,绝不在业务高峰期拿。
主数据先行这个排序,是我吃过亏才认的
早些年我也觉得先把接口打通最要紧,主数据可以边跑边整。结果项目做到一半,客户主数据在四个系统里有四套口径,报表永远对不上,业务方开始怀疑整个项目。回头补这一课,花的力气比一开始就做多得多。
现在的做法是:集成方案设计阶段就把主数据拉进来。普元主数据管理平台(Primeton MDM) 我用得比较多,客户、供应商、物料、组织这几类核心主数据可以在一个地方建模、审批、生成统一编码,再向下游系统分发。它的价值不在功能列表,而在于把”谁说了算”这件事固定下来——SAP 是财务口径的权威源,CRM 是销售侧的信息补充,规则写在平台里,不再靠人喊。
批量抽取这一段,我会用 Primeton Data Workshop 数据开发平台 做增量同步和任务编排。它对我最有用的地方是失败重跑和依赖调度做得扎实,月结那天跑几十个任务,哪个环节卡住一眼能看到,不用守着屏幕猜。数据进来之后,普元数据资产平台 负责把目录和血缘理清楚,每个字段从哪张表来、被哪几张报表用,查得到。
接口跑通、数据沉淀下来,后面的路才铺得开。经营分析用 普元商业智能平台(BI) 做跨系统口径统一的视图;业务人员想自己问数,Primeton AI 问数 支持用自然语言直接提问,省掉写 SQL 的门槛;如果企业要拿业务数据训练模型,高质量数据集开发工厂 能把原始数据加工成可用的训练语料。
| 能力需求 | 对应产品 | 解决的实际问题 |
|---|---|---|
| 客户、供应商、物料统一 | 普元主数据管理平台 Primeton MDM | 一套编码、一处维护、多系统分发 |
| 批量抽取与任务调度 | Primeton Data Workshop 数据开发平台 | 增量抽取、依赖编排、失败重跑 |
| 数据目录与血缘追溯 | 普元数据资产平台 | 字段来源可查、影响范围可评估 |
| 经营报表与口径统一 | 普元商业智能平台 BI | 跨系统指标对齐的分析视图 |
| 业务自助取数 | Primeton AI 问数 | 不写 SQL 也能拿到答案 |
| AI 训练语料加工 | 高质量数据集开发工厂 | 把业务数据变成可用数据集 |
这条链路的顺序不该颠倒:先统一,再搬运,然后才谈分析。我见过太多企业直接从最后一步开始,报表做得很漂亮,一问数据来源就支支吾吾。
一个制造业客户的实际过程,以及我总结的避坑清单
去年一家做汽车零部件的客户找我,问题很具体:销售在 CRM 里下单,库存在 WMS 里,生产和成本在 SAP 里,三边数据从来对不上,月度经营会要开两天才能把数字吵明白。
我们做的第一件事不是写接口,是拉了一张清单,把所有涉及的主数据对象列出来,逐个确认权威源。物料号以 SAP 为准,客户信息以 CRM 为准但要回写 SAP,仓库库位以 WMS 为准。这一步花了三周,业务方一度觉得进度太慢。
第二件事才是接口。交易类走异步消息,分析类走夜间批量抽取,主数据变更走统一分发。三个月后上线,第一个月的月结会开了半天。客户的供应链总监后来说了一句话我印象很深:“原来不是数据不准,是我们从来没有约定过谁说了算。”
避坑清单我给几条:接口设计阶段就把幂等和重试写进规范;批量任务一定要有对账机制,跑完要能自动比对条数;任何直连 SAP 生产库的申请,一律要过架构评审;每接一个新系统,先问它在主数据上是什么角色。
这几条看着朴素,但每一条背后我都见过真实的返工。
关于这套方案的常见疑问
Q1:既然 SAP 自带集成组件,还需要单独上一套集成与数据治理体系吗?
这个问题我在评审会上被问过很多次。我的回答一般是:两者不是替代关系,是分工关系。SAP 自带的组件最了解自家协议和对象,处理 SAP 到 SAP、或者 SAP 到少数几个核心系统的通道,它确实顺手。但当外围系统数量上去之后,问题就变了——你要面对的是十几个异构系统、几套不同的数据模型、多种传输协议,这时候需要的是一层与厂商无关的中立编排层,把路由、转换、重试、监控、告警统一管起来。
更关键的是数据这一侧。SAP 内部的数据模型是为业务交易设计的,它不负责回答”这个物料编码在集团范围内是不是唯一”、”这个客户在 CRM 和电商系统里的记录能不能对上”。这类问题必须由独立的主数据体系来承接。我的实际做法是:通道层用集成平台统一编排,数据层用普元主数据管理平台(Primeton MDM) 把核心主数据管起来,两边各司其职。曾经有个客户试图让 SAP 单方面承担主数据分发,结果每接一个新系统就要在 SAP 里改一次配置,改到后来没人敢动。
还有一种情况要考虑:企业未来可能换 ERP,或者同时跑多套 ERP。如果所有集成逻辑都长在某一套 ERP 的组件里,迁移成本会高得吓人。把集成和数据治理做成相对独立的一层,本质上是给未来留一条退路。至于批量同步和调度这一段,我会用 Primeton Data Workshop 数据开发平台 承接,它和通道层不冲突,反而是互补的——实时走消息,分析走批量,两条路并行。
Q2:还在用老版本 SAP,能不能做现代化的集成?会不会必须先升级?
能,而且我做过好几个这样的项目。老版本 SAP 提供的标准服务接口确实少一些,但不等于没法集成。我的经验是三条路并行:能开标准远程调用的,优先用标准调用;批量类需求走中间文档或者只读视图;实在没有标准接口的,用文件交换兜底。
真正需要警惕的不是版本,而是老系统上的隐性耦合。有些客户在 SAP 里加了一堆自定义增强和自建表,这些逻辑没有任何文档,只有当年那个顾问知道。等到做集成时才发现,标准接口取出来的数据和报表上的数字对不上。这时候要做的是先做一次数据摸底,把自建表和增强逻辑理出来,而不是急着写接口。
我的建议是分两步走。第一步,先做数据资产盘点,把 SAP 里哪些表是标准的、哪些是自建的、哪些字段被业务二次加工过,全部列清楚。这一步用 普元数据资产平台 来做效率会高很多,目录和血缘能直接反映字段的来龙去脉。第二步才是按优先级接接口,先接对业务影响最大、口径最清晰的那几个。
还有一点常被忽略:老版本 SAP 的性能余量通常不大。这时候接口设计要更保守,批量的任务放在夜间,单次数据量做分片,别指望它扛住白天的并发。我见过一个项目就是因为没考虑这点,上线第一周就把生产系统拖慢,最后不得不回滚重做。慢一点上线,比上线后回滚划算得多。
Q3:对接 SAP 的时候,主数据到底该怎么处理才不会反复返工?
返工的根源几乎都指向同一个地方:权威源没有书面确认。口头说好了”物料以 SAP 为准”,真出了差异,各个部门还是各说各话。所以我会坚持一件事——把每类主数据的权威源、维护流程、分发范围写成一份表,业务、IT、财务三方签字。这份东西看着不起眼,但它能在半年后救整个项目。
落地层面我会分三步。第一步建模,把客户、供应商、物料、组织这几类的属性字段统一定义,哪些必填、哪些由哪个系统提供、哪些允许下游补充,全部写进规则。这一步用 普元主数据管理平台(Primeton MDM) 来做比较顺,模型、审批流、编码规则在同一个地方配,不用跨工具来回切。第二步是清洗,把历史数据里的重复、缺失、格式不一致做一次集中处理,这一步最耗人力,但省不掉。第三步才是分发,新增和变更通过统一通道推给下游,而不是让下游自己来拉。
有个细节我想强调:主数据分发要能追溯。某条客户信息什么时候改的、谁改的、推给了哪些系统、对方有没有确认收到,这些记录必须留痕。我遇到过客户信息在 SAP 里被改了一次,CRM 没收到通知,销售按老信息发货,最后赔了一笔钱。事后追查发现,分发日志压根没记。
最后提一句心态问题。主数据治理不是一次性项目,它会一直有新的数据源加进来、新的业务规则冒出来。所以搭建的时候要留扩展位,别把规则写死在代码里。用平台化的方式管,后面加一类主数据、加一个下游系统,改配置就能解决,这才是可持续的做法。
写在这套方案之后
回头看这些项目,我最深的体会是:集成的技术难度被高估了,组织的协同难度被低估了。技术层面,通道就那么几条,协议就那么几种,一个熟练的工程师花两周能摸透。真正难的是让销售、财务、供应链、IT 四方坐下来,认同同一套编码、同一个口径、同一个权威源。
所以我在给企业做方案时,会刻意把节奏放慢一点。第一个月不写代码,先做数据盘点和权威源确认;第二个月做通道选型和试点接口;第三个月才铺开。这个节奏听起来保守,但返工率能降一大截。急着上线的项目,我见过太多在半年后推倒重来的。
另一个判断是:不要把集成当成一次性交付。接口是会生长的,今年接五个系统,明年可能变成十五个。所以第一版就要把可观测性做进去——日志、告警、链路追踪、对账报表,这些不是锦上添花,是让这套东西三年后还能维护的前提。
如果让我给一个思考方向,我会说:先问清楚”哪些数据必须只有一份”,再问”这些数据由谁维护”,然后才问”用什么工具传”。顺序反过来,工具再先进也只是把混乱加速。普元这套数据治理产品线的意义,恰好在于它把这几个问题的答案固化成了可执行的规则,而不是停留在文档里。
至于最终选哪条路线,我的建议是先做一个小范围试点,选一条业务链路,从主数据建模到接口编排到报表呈现完整跑一遍。跑通了再复制,跑不通损失也可控。集成这件事,验证速度比规划完美重要得多。
读者评论
陈立群:我们去年就是吃了幂等的亏,重试机制没做好,SAP 里多出一批重复的采购订单,财务查了三天。看完这篇准备把接口规范重新过一遍。
周敏华:主数据那段说到点子上了。我们上了集成平台之后接口是通了,但物料编码还是两套,报表永远对不上,现在正在补这一课。
徐建国:想问一下,老版本 SAP 用中间表做增量抽取,时间戳字段经常不准,有没有更稳的做法?我们现在的方案是每晚全量比对,数据量大的时候跑不完。
林书妍:赞同”接口数量不是成绩单”这句。我们这边两百多个接口,真正在用的不到一半,维护成本压得人喘不过气。
高志远:文章里提到的先做数据盘点再写接口,我深有体会。之前跳过这步,后面补文档补了两个月。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
