SAP学习笔记 - 开发35 - RAP(RESTful Application Programming)中的各种概念,On-stack,Side-by-side,Steampunk等
本文讲了 RAP(RESTful Application Programming)中的各种概念,On-stack,Side-by-side,Steampunk,Embedded Steampunk,Clean Core等等。
以前说过RAP的简介。
SAP学习笔记 - 开发11 - RAP(RESTful Application Programming)简介_sap rap-CSDN博客
咱们这里再来说一下为啥需要要学习RAP,以为RAP开发中涉及的常见的概念。
RAP存在的目的,简单来说,RAP存在的目的就是为了系统升级的时候,省钱省时间。
RAP里面有很多概念,咱们尽量给厘清。
目录
- Core solution Extensions (On-stack)
5,SAP S/4HANA Cloud extensibility patterns
6,SAP S/4HANA Cloud extensibility 用户(开发者)/开发工具
7,SAP S/4HANA Cloud extensibility - Side by side Extensibility
8,SAP S/4HANA Cloud ABAP Environment(Embedded Steampunk)
- 那么什么又是“Embedded Steampunk"呢?
9,RAP 可以作为On-stack和Side-by-side共通的扩展方式
- 为什么用 I_Product 而不是传统表(如 MARA)?
12,SAP S/4HANA Public Cloud(公有云)/ Private Cloud(私有云)的各版本发布时间
12-1. SAP S/4HANA Cloud, Public Edition(公有云版)
12-2. SAP S/4HANA Cloud, Private Edition(私有云版)
13-1. CAP(Cloud Application Programming Model)
13-2. RAP(ABAP RESTful Application Programming Model)
14,Clean core rules for extensions
15,在 私有云以及On-premise中,如何使用RAP呢?
16,SAP S/4HANA private cloud and on-premise中的3层扩展
以下是详细内容。
1,SAP软件的种类以及升级方式
- SAP Public Cloud
公有云,自动升级
S4 Hana系统,预装到云服务器上,由SAP公司管理
没有GUI界面,Tr-cd这个概念也没了,客户在Launch Pad里运行Fiori App
不是说公有云就不能做开发,也是可以的,但是都是以 Fiori App形式开发Add-on程序
- SAP Private Cloud
私有云,不自动升级,需要客户自己升级
还是可以用GUI,也可以做传统意义上的Classic Add-on开发
但是SAP 推荐使用RAP进行开发,这样将来升级的时候,Add-on部分就可以无缝丝滑升级
- SAP On-premise
这个就是传统意义上的SAP ERP软件,不自动升级,需要客户自己升级
这个大家都知道,基本都用GUI,Add-on开发和以前一样
和Private Cloud一样,SAP也推荐用RAP进行开发,这样升级的时候就省心省钱省时间
总的来说,就SAP本身来讲,它的方向是云,所以它搞了云产品之后,希望大家去用,
考虑到升级问题,它就不再推荐大家开发 Classic Add-on,而是 Clean Core,纯内核,
虽然不做Add-on也是不太可能的,但是你可以用RAP啊,这样SAP版本升级对你的Add-on没影响
2,传统的ABAP开发特点
这是On-premise 中Classic 开发方式。
- 可以直接使用标准表,比如这里的 MARA
- 可以通过USEREXIT 修改标准功能的代码
- 好处就是 非常的灵活/强大
- 坏处就是 升级不方便,需要移行Add-on代码,重新测试

3,RAP方式的特点
相对于Classic方式,RAP方式就是SAP订立的新规则:
- Public Cloud 上面
- SAP Object不再允许修改
- 只允许使用稳定的公开SAP APIs
- Private Cloud/ On-Premise 上面
- SAP Object也推荐不要去修改
- 同样只允许使用稳定的公开SAP APIs

上图还有个SAP extension,它是啥东西呢?
4,SAP S/4HANA extensibility
- Core solution Extensions (On-stack)
- 这就是传统的开发
- 左边这么多各种技术是说SAP传统开发可以做很多事情,SAP也不断推出新技术和解决方案,
但是很遗憾,当升级的时候,就需要付出很大努力,费时费力,因为它门都深度绑定Core功能
- Side-by-side Extensions
- 这就是SAP BTP平台进行开发
- 因为是和SAP Core功能(即咱们理解的ERP功能)完全分开的,可以把它理解为SAP的外挂
所以这里面根据需要爱加啥加啥,比如比较火的AI,大数据,等等这些东西都可以安排上
- Secured connectivity
- 这个地方咱们先简单理解为 APIs,即通过APIs 来沟通/连接 左右两侧

5,SAP S/4HANA Cloud extensibility patterns
- On-stack
又整新概念了,On-stack指的就是S/4上面的开发,就是 1-4 左侧的 Core solution Extensions
- Public extension point
- Public local API
- Public remote API
- Side-by-side
这个跟1-4 里面一样的
- Public remote API
这个图里提到的这几种开发pattern,主要为了强调一件事,就是耦合度。
那要是用 Remote API 这种方式,那就是松耦合;其他方式基本都是紧耦合。

6,SAP S/4HANA Cloud extensibility 用户(开发者)/开发工具
- Business expert,Consultant,Key user
TA们用的工具是Low-code/No-code工具,基本就是在Fiori App上点一点,也可以增减字段
- Developer
TA们就需要专用的工具了,这里列举了 ADT
SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建_sap cds view-CSDN博客

这里对于各个用户(开发者),在两种开发模式上所能用的语言和技术进行下对比:
- ABAP environment:这就是咱们这里讲的 RAP,既能在On-stack上,又能在BTP上开发
- Java,Node.js:这个实际上就是 CAP,只能在BTP上开发,On-stack上用不了
有关RAP,CAP,在下面这篇文章里面稍微提及了一下:
SAP学习笔记 - 开发09 - BTP简介,BTP在SAP产品中的位置_sap btp-CSDN博客
下图这里也推荐大家用 ABAP Cloud,也就是RAP

7,SAP S/4HANA Cloud extensibility - Side by side Extensibility
这里主要是讲的右侧的内容,即BTP环境上的ABAP Environment(RAP)。
- BTP内部,指的是前端和DB之间,可以通过RAP做一个APIs
- BTP和S/4HANA Cloud之间,也可以通过 Remote APIs进行交互
使用S/4HANA Cloud那边提供的APIs的好处就是离散的,低耦合的,
这样分层之后,对SAP升级来说那可就太友好了,无论SAP S/4HANA那边怎么变,怎么升级,
对BTP来说基本都没啥影响,因为接口的名称/参数这些一般都不怎么变,那里面的实现方式,业务逻辑变了,跟调用方有啥关系呢。
就跟你去餐厅吃饭似的,后厨怎么变跟你有啥关系,你只需要下单,后厨就给你端菜。
餐厅后厨升级了,只要菜单不变,你点那道菜都能给你做。
对于SAP来说呢,它要做的就是保证菜单(APIs)不变。

8,SAP S/4HANA Cloud ABAP Environment(Embedded Steampunk)
这个 Embedded Steampunk 是个啥东西呢?
- Steampunk :指的就是BTP上面的SAP ABAP Environment,Steampunk是它的代号
- Embedded Steampunk:就是把本来只是在BTP上面使的技术给拿到S/4HANA Cloud上面去了
拿去干嘛呢?就跟BTP上面干一样的活儿,也是搞个APIs,然后然Core端去调用

(以下从Deepseek上查询有关Steampunk后整理而成)
在SAP BTP(Business Technology Platform)中,Steampunk 是 SAP ABAP Environment 的昵称,特指基于云的现代化ABAP开发环境。它是传统SAP ABAP的演进版本,专为SAP BTP(Cloud Foundry或Kyma运行时)设计,结合了经典ABAP的强大功能与云原生特性。
- Steampunk 关键点解析
-
核心定位
Steampunk 是 ABAP Platform in SAP BTP 的代号,支持开发者使用ABAP语言构建云原生应用或扩展SAP解决方案(如S/4HANA Cloud)。 -
技术特性
-
云原生ABAP:支持RESTful服务、CDS视图、OData V4等现代技术。
-
与BTP集成:可无缝连接其他BTP服务(如SAP HANA、Workflow、AI等)。
-
扩展性:通过ABAP扩展框架(Side-by-Side扩展)增强SAP标准应用(如S/4HANA)。
-
-
与传统ABAP的区别
-
仅包含ABAP语言的子集(移除过时语法),强调轻量化和云适配性。
-
无GUI依赖,开发通过ABAP Development Tools(ADT)在Eclipse中进行。
-
-
典型用例
-
开发独立的Fiori应用或微服务。
-
为SAP S/4HANA Cloud构建合规的扩展(避免直接修改标准代码)。
-
- 为什么叫“Steampunk”?
名称灵感来源于蒸汽朋克(Steampunk)的美学风格——融合复古与未来科技,隐喻传统ABAP在云时代的创新重生。
总结:Steampunk代表了ABAP在云端的现代化转型,是SAP BTP中企业级ABAP开发的核心环境。
- 那么什么又是“Embedded Steampunk"呢?
Embedded Steampunk 是 SAP S/4HANA Cloud(私有云或特定版本)中内置的ABAP云开发环境,属于 SAP BTP ABAP Environment(Steampunk)的嵌入式版本。它允许客户直接在S/4HANA Cloud系统中使用现代化的ABAP云编程模型进行扩展开发,而无需单独部署独立的BTP ABAP环境。
- Embedded Steampunk的核心概念解析
-
-
相同点:
使用相同的技术栈(基于ABAP Cloud编程模型),支持CDS视图、RAP(ABAP RESTful Application Programming)、OData V4等现代开发方式。 -
不同点:
-
部署位置:Embedded Steampunk运行在S/4HANA Cloud系统内部,而独立Steampunk是BTP上的单独服务。
-
使用场景:Embedded更适用于直接扩展S/4HANA Cloud,独立Steampunk更适合开发与S/4HANA解耦的云原生应用。
-
-
-
关键特性
-
原生集成:直接访问S/4HANA Cloud的业务数据与逻辑,无需远程调用。
-
合规扩展:遵循SAP的扩展规则(如仅使用发布的API或扩展点),确保升级安全性。
-
开发工具:同样通过Eclipse的 ABAP Development Tools(ADT) 开发。
-
-
典型用例
-
在S/4HANA Cloud中创建自定义业务逻辑或UI(如Fiori应用)。
-
通过Side-by-Side扩展增强标准流程(例如添加自定义字段或审批流程)。
-
- 为什么需要Embedded Steampunk?
-
简化架构:无需额外维护独立的BTP ABAP环境,降低运维复杂度。
-
性能优化:直接嵌入S/4HANA系统,避免跨网络数据传输延迟。
-
升级保护:通过ABAP Cloud的严格API约束,确保客户扩展在S/4HANA版本升级时不受影响。
- 与独立Steampunk的选择建议
| 场景 | Embedded Steampunk | 独立Steampunk(BTP ABAP) |
|---|---|---|
| 扩展紧密依赖S/4HANA | ✅ 优先选择(如修改标准单据) | ❌ 不适用 |
| 跨系统集成/微服务 | ❌ 受限 | ✅ 更适合(如连接多系统或BTP服务) |
| 开发隔离需求 | ❌ 与S/4HANA共用环境 | ✅ 独立环境,更灵活 |
- 总结
Embedded Steampunk是SAP为S/4HANA Cloud客户提供的 “就地云扩展” 方案,平衡了传统ERP扩展的便捷性与云原生开发的现代化要求。而独立Steampunk(BTP ABAP)更适合构建与S/4HANA解耦的新应用。两者共同构成SAP“ABAP Cloud”战略的核心组成部分。
- Steampunk可以理解为RAP吗?
不可以简单地将Steampunk等同于RAP,但二者紧密关联且常协同使用。以下是关键区别与联系:
1. 本质不同
-
Steampunk(ABAP Environment in BTP)
是一个运行时环境,指SAP BTP中基于云的现代化ABAP开发平台,支持ABAP Cloud编程模型。
作用:提供运行ABAP代码的云基础设施,包含编译器、调试器、服务发布等基础能力。 -
RAP(ABAP RESTful Application Programming)
是一种编程模型,专为开发OData服务和Fiori应用设计的ABAP框架。
作用:定义如何结构化开发业务对象(如创建、查询、更新数据)并暴露为RESTful API。
2. 依赖关系
-
RAP依赖Steampunk
RAP是Steampunk环境中推荐的开发范式之一(其他范式如纯CDS或原生API开发也可用)。
例如:在Steampunk中,你可以用RAP快速构建一个支持CRUD操作的员工管理服务,并自动生成OData V4端点。 -
Steampunk不限于RAP
Steampunk还支持其他开发方式(如直接编写HTTP服务或使用传统ABAP逻辑),但RAP是其“最佳实践”。
3. 类比说明
| 概念 | 类比 | 在SAP生态中的角色 |
|---|---|---|
| Steampunk | 智能手机硬件(如iPhone) | 提供ABAP代码运行的云环境。 |
| RAP | iOS操作系统+开发框架 | 提供标准化方法(如MVC)开发应用。 |
4. 典型开发流程(Steampunk + RAP)
-
在Steampunk环境中创建ABAP Cloud项目。
-
使用RAP框架定义业务实体(如
Business Object)和行为(如create,update)。 -
自动生成符合OData V4标准的API,供Fiori或第三方应用调用。
5. 为什么容易混淆?
-
强绑定性:SAP官方推荐在Steampunk中用RAP开发,导致二者常被同时提及。
-
术语重叠:RAP是ABAP Cloud的核心部分,而Steampunk是ABAP Cloud的运行时载体。
6.总结
-
Steampunk是“舞台”(环境),RAP是“剧本”(开发规范)。
-
你可以不用RAP在Steampunk中开发(如直接写函数模块),但会失去高效性和标准化优势。
-
二者的组合代表了SAP ABAP在云时代的未来方向。
9,RAP 可以作为On-stack和Side-by-side共通的扩展方式
- 下面这个是On-stack开发下的代码示例
直接用SAP标准表写代码,在Embedded Steampunk里会报错。
在Embedded Steampunk里面,要用CDS 的方式,这里的I_Product 就是一个标准CDS View。
有关标准CDS View I_Product,可以参照如下文档:
https://api.sap.com/cdsviews/PCE_I_PRODUCT
--这个代码在Embedded Steampunk里面跑会出错
SELECT matnr FROM mara INTO TABLE @DATA(l_matnr).
--在Embedded Steampunk里面,要用CDS 的方式,或者你可以把这里的 ProductExternalID 理解为API
SELECT ProductExternalID FROM I_Product INTO TABLE @ODAT(l_matnr_new)
- I_Product 的作用
I_Product 是 SAP 提供的 标准 CDS 视图,用于:
-
统一访问产品主数据(替代传统表如
MARA、MARC、MARD等)。 -
提供标准化字段(如
Product、ProductExternalID、ProductType、BaseUnit等)。 -
支持 OData / REST 服务,适用于 Fiori Apps、API 集成、Analytics。
- 示例查询
SELECT Product, ProductExternalID, ProductType, BaseUnit
FROM I_Product
WHERE ProductType = 'FERT' "成品
INTO TABLE @DATA(lt_products).
-
这里
ProductExternalID可能是 物料编号(Material Number) 或 外部系统 ID(如 EAN/UPC 码),具体取决于配置。
- 为什么用 I_Product 而不是传统表(如 MARA)?
在 SAP S/4HANA 和 Steampunk(ABAP for Cloud) 环境下:
-
传统表(
MARA) 仍然存在,但 SAP 推荐使用 CDS 视图(如I_Product),因为:-
✅ 更清晰的数据模型(避免直接访问底层表结构)。
-
✅ 更好的性能(CDS 视图可优化 SQL 执行)。
-
✅ 兼容云开发规范(Steampunk 限制直接访问某些传统表)。
-
✅ 支持 OData 服务(便于 Fiori/API 集成)。
-
- 如何确认 I_Product 的字段?
-
方法 1:在 ABAP 开发环境(ADT)中查看
-
使用 CDS View Navigator 或执行
SE11/SE80查看I_Product的定义。
-
-
方法 2:SAP API Business Hub
-
访问 SAP Business Accelerator Hub,搜索
I_Product,查看字段列表。
-
- 结论
✅ I_Product 是 SAP S/4HANA 的标准 CDS 视图,官方文档中有明确描述。
✅ 推荐在 Steampunk / Cloud ABAP 中使用,而不是直接查询 MARA。
✅ ProductExternalID 通常是产品的外部标识符(如物料号、GTIN 等)。
如果需要更详细的字段说明,建议查阅 SAP Help Portal 或 SAP API Business Hub 的官方文档。
10,ABAP Cloud的进化史
- 2018 年 SAP BTP ABAP Environment(Steampunk 发布)
- 2022 年 SAP S/4HANA Cloud ABAP Environment(Embedded Steampunk 发布)
11,Availability of ABAP Cloud
首先上面也写了有很多跟RAP有关,但是又似乎不太一样的概念,比如
- ABAP Cloud
- ABAP Environment
- Steampunk/ Embedded Steampunk
他们当然有细微的差异,咱们这里先把他们都理解为 RAP,这样有利于你理解这些资料。
如果你一下就能分清,把它们都分清当然更好。
- RAP(上图写作ABAP Cloud) 在 所有版本的 BTP ABAP Environment里面都可以使用
但是注意 BTP原来是SAP为了整合客户周边零散系统用的,
主要是CAP(Java/Node.js/Python)这些系统,后来为了照顾ABAP开发人员,才搞出来的RAP。
而RAP的发布时间是 2018年,之前只有CAP开发,没有RAP。
SAP学习笔记 - 开发09 - BTP简介,BTP在SAP产品中的位置_sap btp-CSDN博客
- 对于 SAP S/4HANA Public Cloud(公有云)环境,必须要 >= 2208版本才可以
在 1-11 进化史 里面看到,2022 年,Embedded Steampunk才发布嘛,之前的版本都不行
- 对于 SAP S/4HANA Private Cloud/ On-premise版本,
跟Public Cloud一样,也是2022 年,Embedded Steampunk发布之后才可以用
看着公有云和私有云的版本感觉有点儿乱哈,简单整理一下:
12,SAP S/4HANA Public Cloud(公有云)/ Private Cloud(私有云)的各版本发布时间
以下是 SAP S/4HANA Cloud 的 Public Edition(公有云版) 和 Private Edition(私有云版) 的主要版本及发布年月信息:
12-1. SAP S/4HANA Cloud, Public Edition(公有云版)
-
发布周期:每季度一次(每年4个版本)
-
版本命名规则:
YYMM(年份+月份) -
主要版本示例:
-
2302(2023年2月)
-
2308(2023年8月)
-
2402(2024年2月)
-
2408(2024年8月)
-
2502(2025年2月)
-
12-2. SAP S/4HANA Cloud, Private Edition(私有云版)
-
发布周期:每 两年 一次主版本,但 每6个月 提供功能包更新(FPS)
-
维护周期:每个主版本提供 7年 维护
-
主要版本示例:
-
2021(2021年发布)
-
2023(2023年10月发布)
-
2025(计划2025年发布)
-
12-3. 总结
| 对比项 | Public Edition | Private Edition |
|---|---|---|
| 发布频率 | 每季度(4次/年) | 每两年(主版本)+ 每6个月(功能包) |
| 升级方式 | SAP自动管理 | 客户选择升级时间 |
| 功能范围 | 标准化,较少定制 | 支持更多定制化配置 |
| 维护周期 | 持续更新 | 7年维护(主版本) |
如需更详细的版本历史,可参考 SAP 官方文档或 SAP Help Portal。
13,CAP,RAP的市场占有率
目前,SAP 官方并未公开 CAP(Cloud Application Programming Model) 和 RAP(ABAP RESTful Application Programming Model) 在 BTP(Business Technology Platform)开发中的具体市场占有率数据。不过,我们可以基于行业趋势、SAP 的技术推荐以及企业采用情况,分析它们的大致使用情况:
13-1. CAP(Cloud Application Programming Model)
-
适用场景:
-
主要用于 云原生应用开发(BTP 上的多语言开发,如 Node.js、Java)。
-
适合 SAP 与非 SAP 系统集成,特别是 SaaS 扩展应用。
-
-
市场采用情况:
-
较高增长:由于 SAP 强推 CAP 作为 BTP 的标准开发模式,新项目(尤其是非 ABAP 开发团队)更倾向于使用。
-
初创公司 & ISV(独立软件开发商) 更青睐 CAP,因为其灵活性(支持 JavaScript/TypeScript)。
-
预计占有率:约 50%-60% 的新 BTP 云应用开发(基于 SAP 社区和开发者调研)。
-
13-2. RAP(ABAP RESTful Application Programming Model)
-
适用场景:
-
主要用于 S/4HANA 扩展、ABAP 云开发(Steampunk 环境)。
-
适合 企业级核心业务逻辑,尤其是需要深度集成 SAP 标准功能的场景。
-
-
市场采用情况:
-
传统 SAP 客户主流选择:大型企业(尤其是已投资 ABAP 技能的团队)更倾向于 RAP。
-
S/4HANA 迁移项目 中常见,因为 RAP 能直接对接 CDS 视图和 OData 服务。
-
预计占有率:约 40%-50% 的 BTP ABAP 开发(在 SAP 现有客户中占比较高)。
-
13-3.关键对比 & 趋势分析
| 对比项 | CAP | RAP |
|---|---|---|
| 技术栈 | 多语言(Node.js/Java/Python) | ABAP(仅限 SAP 环境) |
| 典型用户 | 新开发者、ISV、云原生项目 | 传统 SAP ABAP 开发团队 |
| 增长趋势 | 上升(SAP 强推云原生) | 稳定(ABAP 生态延续) |
| 占有率估算 | 50%-60%(新项目) | 40%-50%(SAP 现有客户) |
13-4.总结
-
CAP 更受新项目和云原生开发者欢迎,市场占有率可能略高(尤其在非 ABAP 生态)。
-
RAP 仍是 SAP 传统客户的首选,尤其在 S/4HANA 扩展场景中占据重要地位。
-
未来趋势:CAP 可能进一步增长(因 SAP 云优先战略),但 RAP 在 ABAP 生态中仍不可替代。
如需具体数据,建议参考 SAP TechEd 年度报告 或 第三方分析师报告(如 IDC/Gartner)。
我瞅着RAP 是不是SAP 主推,看来SAP主推的还是CAP哈。
想想也是,Java/ Node.js/ Python这些语言的开发者基数大,SAP瞄准这个市场的话,占有率高也是可以理解的。
14,Clean core rules for extensions
- Clean core,指的就是SAP ERP 标准机能,上面越没做Add-on开发,越Clean
那要是加了字段,改了Exit,那就不 Clean 了呗
- 这个东西诉说的对象是 S/4HANA Cloud Private edition,和 on-premise 版本
因为Public edition的话,是强制用APIs来做Add-on的,所以肯定是Clean Core的
虽然SAP也推荐 Private edition和 On-premise用 APIs,但是毕竟不强制啊,那客户不用也OK啊
但是,不用APIs的话,就会面临升级问题,需要迁移Add-on代码啊,做测试啊等等。
咱们还时常听说的 Fit-to-Standard,我理解应该就是这个 Clean Core概念的具体体现。

15,在 私有云以及On-premise中,如何使用RAP呢?
很简单,选ABAP语言版本的时候,选下面这个就可以了
- ABAP for Cloud Development
然后你找API的时候,就找这种 Use in Cloud Development
Embedded Steampunk – Some more details for ABAP de... - Page 2 - SAP Community
16,SAP S/4HANA private cloud and on-premise中的3层扩展
- Tire 3:这就是传统的ABAP 开发,直接用SAP中的标准表等,这种就直接丢弃,不要再用了
- Tire 2:这种就是在SAP还没有提供相关APIs的时候,你先自己弄个用,
等SAP发布了标准的APIs,你再替换,也就是个临时解决方案
- Tire1:这种就是SAP提供了标准API,那你就直接用呗,也是SAP最为推荐的方式
以上就是本篇的全部内容。
更多SAP顾问业务知识请点击下面目录链接或东京老树根的博客主页
更多推荐




所有评论(0)