以前说过RAP的简介。

SAP学习笔记 - 开发11 - RAP(RESTful Application Programming)简介_sap rap-CSDN博客

咱们这里再来说一下为啥需要要学习RAP,以为RAP开发中涉及的常见的概念。

RAP存在的目的,简单来说,RAP存在的目的就是为了系统升级的时候,省钱省时间。

RAP里面有很多概念,咱们尽量给厘清。

目录

1,SAP软件的种类以及升级方式

- SAP Public Cloud

- SAP Private Cloud

- SAP On-premise

2,传统的ABAP开发特点

3,RAP方式的特点

4,SAP S/4HANA extensibility

- Core solution Extensions (On-stack)

- Side-by-side Extensions

- Secured connectivity

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)

- Steampunk 关键点解析

- 为什么叫“Steampunk”?

- 那么什么又是“Embedded Steampunk"呢?

- Embedded Steampunk的核心概念解析

- 为什么需要Embedded Steampunk?

- 与独立Steampunk的选择建议

- 总结

- Steampunk可以理解为RAP吗?

1. 本质不同

2. 依赖关系

3. 类比说明

4. 典型开发流程(Steampunk + RAP)

5. 为什么容易混淆?

6.总结

9,RAP 可以作为On-stack和Side-by-side共通的扩展方式

- I_Product 的作用

- 示例查询

- 为什么用 I_Product 而不是传统表(如 MARA)?

- 如何确认 I_Product 的字段?

- 结论

10,ABAP Cloud的进化史

11,Availability of ABAP Cloud

12,SAP S/4HANA Public Cloud(公有云)/ Private Cloud(私有云)的各版本发布时间

12-1. SAP S/4HANA Cloud, Public Edition(公有云版)

12-2. SAP S/4HANA Cloud, Private Edition(私有云版)

12-3. 总结

13,CAP,RAP的市场占有率 

13-1. CAP(Cloud Application Programming Model)

13-2. RAP(ABAP RESTful Application Programming Model)

13-3.关键对比 & 趋势分析

13-4.总结

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)中,SteampunkSAP ABAP Environment 的昵称,特指基于云的现代化ABAP开发环境。它是传统SAP ABAP的演进版本,专为SAP BTP(Cloud Foundry或Kyma运行时)设计,结合了经典ABAP的强大功能与云原生特性。

- Steampunk 关键点解析

  1. 核心定位
    Steampunk 是 ABAP Platform in SAP BTP 的代号,支持开发者使用ABAP语言构建云原生应用或扩展SAP解决方案(如S/4HANA Cloud)。

  2. 技术特性

    • 云原生ABAP:支持RESTful服务、CDS视图、OData V4等现代技术。

    • 与BTP集成:可无缝连接其他BTP服务(如SAP HANA、Workflow、AI等)。

    • 扩展性:通过ABAP扩展框架(Side-by-Side扩展)增强SAP标准应用(如S/4HANA)。

  3. 与传统ABAP的区别

    • 仅包含ABAP语言的子集(移除过时语法),强调轻量化和云适配性。

    • 无GUI依赖,开发通过ABAP Development Tools(ADT)在Eclipse中进行。

  4. 典型用例

    • 开发独立的Fiori应用或微服务。

    • 为SAP S/4HANA Cloud构建合规的扩展(避免直接修改标准代码)。

- 为什么叫“Steampunk”?

名称灵感来源于蒸汽朋克(Steampunk)的美学风格——融合复古与未来科技,隐喻传统ABAP在云时代的创新重生。

总结:Steampunk代表了ABAP在云端的现代化转型,是SAP BTP中企业级ABAP开发的核心环境。

- 那么什么又是“Embedded Steampunk"呢?

Embedded SteampunkSAP 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解耦的云原生应用。

  1. 关键特性

    • 原生集成:直接访问S/4HANA Cloud的业务数据与逻辑,无需远程调用。

    • 合规扩展:遵循SAP的扩展规则(如仅使用发布的API或扩展点),确保升级安全性。

    • 开发工具:同样通过Eclipse的 ABAP Development Tools(ADT) 开发。

  2. 典型用例

    • 在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)

  1. 在Steampunk环境中创建ABAP Cloud项目。

  2. 使用RAP框架定义业务实体(如Business Object)和行为(如create, update)。

  3. 自动生成符合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 视图,用于:

  • 统一访问产品主数据(替代传统表如 MARAMARCMARD 等)。

  • 提供标准化字段(如 ProductProductExternalIDProductTypeBaseUnit 等)。

  • 支持 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/4HANASteampunk(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


- 结论

I_Product 是 SAP S/4HANA 的标准 CDS 视图,官方文档中有明确描述。
推荐在 Steampunk / Cloud ABAP 中使用,而不是直接查询 MARA
ProductExternalID 通常是产品的外部标识符(如物料号、GTIN 等)。

如果需要更详细的字段说明,建议查阅 SAP Help PortalSAP 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 CloudPublic 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顾问业务知识请点击下面目录链接或东京老树根的博客主页

https://blog.csdn.net/shi_ly/category_12216766.html

东京老树根-CSDN博客

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐