【学习系列】SAP RAP 1:关于RAP的一些基本介绍

前言

SAP Business Technology Platform (SAP BTP) 于 2021 年 1 月推出,是 SAP 独特而强大的解决方案产品。它是整个 SAP 生态系统的技术基础,对所有 SAP 客户和合作伙伴都发挥着至关重要的作用。

SAP BTP 提供 2 种主要编程模型来构建企业应用程序:

  • ABAP RESTful 应用程序编程模型 (RAP)
  • SAP 云应用程序编程模型 (CAP)

什么是SAP RAP

ABAP RESTful 应用程序编程模型 (RAP) 是 ABAP Cloud 的基本要素,ABAP Cloud 是 ABAP 开发模型,用于在 SAP BTP、SAP S/4HANA Cloud 和 SAP S/4HANA 上构建符合干净核心、云就绪的业务应用程序、服务和扩展。RAP 是 ABAP Cloud 的核心,用于构建事务性 SAP Fiori 应用程序、基于 OData 的服务和扩展。

RAP 包含一套概念、工具、语言和强大的框架,可帮助开发人员构建创新的、云就绪的 SAP Fiori 应用程序以及本地和 Web API。它还支持在云和本地部署中扩展 SAP S/4HANA 标准应用程序。

RAP 利用 ABAP 核心数据服务 (CDS)、扩展的 ABAP 语言以及现代 ABAP 开发工具 (ADT) 中的业务服务提供标准化开发流程。

可以使用 RAP 开发和建模不同类型的服务、本地 API 和 business 事件:

  • 基于 OData 的 UI 开发服务,用于构建令人愉悦的、基于角色的、响应式的、支持草稿的 SAP Fiori 应用程序
  • 基于 OData 的服务,用于作为 Web API 公开
  • 可以通过发布的 RAP 业务对象接口提供生命周期稳定且升级安全的本地 API
  • 可用于异步通信的业务事件,以通知使用者 RAP BO 已更改

RAP 开发堆栈提供了可测试性、可支持性、可文档性和可扩展性的内置选项,例如 ABAP 单元测试、ABAP 交叉跟踪工具和知识转移文档。

在 RAP 框架中无缝集成业务事件和变更文档等重用组件,以降低开发总成本。例如,开发人员可以轻松启用业务事件的公开,并允许在基于 RAP 的应用程序中创建变更文档。

SAP 使用 ABAP RAP 构建新的标准业务应用程序并对现有业务应用程序进行现代化改造,并将其推荐给客户和合作伙伴,用于他们自己的定制开发。

核心概念

  • CDS View:数据建模。

  • Behavior Definition/Implementation:业务逻辑(CRUD、验证、动作)。

  • Service Definition/Binding:服务层(自动生成 OData V4 API)。

  • UI:天然支持 Fiori Elements。


什么是 SAP CAP

CAP (Cloud Application Programming Model)

  • BTP(SAP Business Technology Platform) 上的云原生应用开发框架。

  • 提供统一的编程模型,支持 Node.jsJava,与数据库(SAP HANA)、服务(OData、REST、GraphQL)、以及 UI(Fiori Elements)无缝集成。

  • CAP 面向的是 多语言、多云环境,尤其适合构建 扩展应用、集成应用、独立云应用

核心概念

  • CDS (Core Data Services):跨语言的数据建模语言。

  • Service Layer:OData/REST API。

  • Business Logic:可用 Node.js/Java 实现。

  • UI:支持 Fiori Elements 或自由 UI。

  • 多租户、多服务集成:内建支持 SaaS 模式和与 BTP 服务的集成。


RAP vs CAP 对比

维度RAP (ABAP)CAP (Node.js/Java)
技术栈ABAP (S/4HANA)Node.js / Java (BTP)
数据建模ABAP CDSCDS (通用,跨语言)
运行环境ABAP 平台(On-prem + Cloud)SAP BTP Cloud Foundry/Kyma
API 类型OData V2/V4 (REST 原生)OData V2/V4, REST, GraphQL
UI 支持Fiori ElementsFiori Elements, 任意前端
业务逻辑ABAP Class/BehaviorNode.js/Java 代码
优势与 S/4HANA 深度集成(内核级),ABAPer 转型平滑灵活云原生,多语言,多服务集成
适用场景扩展 S/4HANA 标准(in-app/side-by-side),ABAP 应用开发云原生新应用、跨系统集成、非 ABAP 团队开发

RAP:面向 S/4HANA 核心业务扩展,在 ABAP 平台内构建现代应用。

CAP:面向 BTP 云原生应用开发,支持更广泛的集成和扩展。


什么时候选择哪个

  • 首选 RAP 的场景

    • 你在 S/4HANA(本地或云) 内开发或扩展应用;

    • 团队主要是 ABAP 背景,要充分利用现有 ABAP 遗留产物;

    • 需求是 强业务逻辑 + 标准事务性应用(CRUD + Fiori Elements)。

  • 首选 CAP 的场景

    • 你在 BTP 上开发独立应用

    • 需要跨系统、跨云的 集成场景

    • 需要 非 ABAP 技术栈(Node.js/Java,更适合敏捷开发和微服务);

    • 要做 多租户 SaaS 应用


技术曲线对比

RAP 技术曲线

  • 适合已有 ABAP 基础的团队;

  • 入门门槛相对低(基于 ABAP、CDS、OO),学习曲线平滑;

  • 深入后要掌握 Behavior 定义/实现、Draft、Unmanaged/Managed 等模式。

CAP 技术曲线

  • 非 ABAP 开发者非常友好,尤其是 Node.js 背景;

  • 需要掌握 CDS + OData + Cloud Native 概念

  • 要学会与 BTP 服务(HANA、Messaging、Workflow 等)集成;

  • 曲线前期较陡峭,但一旦掌握,扩展性和灵活性极强。


为什么要学习 RAP?

在过去几年中,对 SAP 业务应用程序及其相关技术的要求发生了显着变化。除了对嵌入式分析和人工智能的要求不断提高外,这种演变的主要驱动力是:

• SAP HANA – 用于实时事务和分析处理的高性能内存数据库。

• SAP Fiori – 为智能企业选择的现代、直观和跨设备用户体验设计。

• 云 – 随着业务对云运营支持的需求不断增加,从混合(即云和本地)到纯云运营模式。

最终用户期望增强的产品质量,例如连续和协作工作——例如,在家开始工作,在通勤期间继续工作,并在公司完成任务,或者在不同设备类型上或协作完成任务。

产品质量(例如可扩展性、可测试性、可支持性、可扩展性、垂直化和可文档性)必须开箱即用。

为了满足 ABAP 平台上的这些不同要求,SAP 在 SAP BTP ABAP 环境和 SAP S/4HANA 上提供了 ABAP RESTful 应用程序编程模型 (RAP),无论是在本地还是在云中。


从下一篇开始,将会结合我已经掌握的内容开始总结实际开发的一些基本用法,目前的计划可能是会分别写一下managed,unmanaged,custom entity这些场景的实现方式,以及一些细节的内容,后面想到哪写到哪吧,如有不对欢迎指正。

03-15
### SAP RAP 技术文档和实现指南 SAP RESTful 应用编程模型(RAP)是一种现代化的应用程序开发方法,专注于简化复杂的企业应用程序设计过程。以下是关于其技术文档和实现指南的关键信息: #### 1. 官方资源和技术文档 官方提供了详细的文档来支持开发者学习和实施 RAP 模型。这些资料包括但不限于: - **DEV260 开源项目指南**:作为 SAP TechEd 2020 的一部分,该项目提供了一个全面的基础引导,帮助开发者理解如何使用 RAP 构建应用[^1]。 - **openSAP 课程材料**:通过 openSAP 提供的在线课程《Building Apps with the ABAP RESTful Application Programming Model (RAP)》,可以获取到理论知识与实践案例相结合的学习体验[^3]。 #### 2. 实现指南 为了成功部署基于 RAP 的解决方案,需遵循以下指导原则: - 阅读并熟悉项目的 `README.md` 文件及其关联的技术文档,这是任何开发活动之前不可或缺的第一步。 - 利用 GitHub 或其他托管平台上共享的样例代码库(如 [abap-platform-rap-opensap](https://gitcode.com/gh_mirrors/ab/abap-platform-rap-opensap)),从中借鉴最佳实践模式。 此外,在具体编码阶段还需注意 OData 协议的服务端处理逻辑优化等问题;这方面的补充说明可参见针对 C4C 平台定制化接口开发的经验分享文档[^4]。 #### 示例代码片段展示 下面给出一段简单的创建实体类型的伪代码表示形式用于演示目的: ```abap CLASS zcl_entity_definition DEFINITION FINAL CREATE PRIVATE. PUBLIC SECTION. INTERFACES if_rap_entity. ENDCLASS. CLASS zcl_entity_definition IMPLEMENTATION. METHOD if_rap_entity~define. lo_data_model = cl_abap_data_desc=>create( ). ... ENDMETHOD. ENDCLASS. ``` #### 总结 综上所述,借助上述提到的各种工具链路以及持续更新迭代后的版本特性描述等内容,能够有效提升个人对于整个框架体系架构的认知水平,并促进实际工程项目落地效率最大化目标达成!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeveloperMrMeng

觉得有用的佛系投币哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值