深入解析 ABAP RESTful 应用编程模型

ABAP RESTful 应用编程模型 (RAP) 标志着我们在 SAP 平台上设计和实现应用程序的方式迎来了重大变革。通过提供现代化的、面向云的框架,RAP 赋能我们构建可扩展、易维护且符合企业级标准的应用程序,这些应用完全遵循现代软件架构原则。

本指南专门面向中级和高级开发人员,我们将深入探讨 RAP 的架构、核心功能,以及它与传统 ABAP 开发的区别。我们还将探索 RAP 核心组件的实际应用及其在开发过程中的具体用法。

什么是 RAP?

ABAP RESTful 应用编程模型 (RAP) 是 SAP 用于创建端到端 Fiori 应用程序和服务的现代框架。它通过专注于以下几个方面简化了应用程序开发:

  • 关注点分离: 确保数据库、业务逻辑和用户界面层之间有清晰的界限。
  • OData 服务: 利用 OData 作为 UI 和后端之间的通信协议。
  • 注解驱动开发: 在核心数据服务 (CDS) 视图中大量利用注解来定义数据模型、服务暴露和 UI 行为。

RAP 提供了标准化的开发范式,确保了应用程序在云端和本地环境的一致性、可扩展性以及面向未来的稳定性。

RAP 的核心特性

  • 统一的开发框架: 无缝集成后端逻辑、数据建模和用户界面开发于单一框架之中。
  • 就绪云端与可扩展性: 专为支持 SAP S/4HANA 云端和本地部署而设计,RAP 确保了跨环境的平滑过渡。
  • 以业务对象为中心的方法: 将业务对象视为“一等公民”,将数据和行为封装在可重用的实体中。
  • 白名单 API: RAP 强制执行安全且稳定的系统交互,确保 SAP 升级期间的兼容性。
  • 注解驱动设计: 通过允许开发人员直接在 CDS 视图中定义 UI 和行为的元数据,从而提高开发效率。

RAP 架构概览

RAP 构建在三个不同的层之上,每一层都有特定的职责:

第一层 – 数据库层

数据库层主要关注数据的持久化和检索。RAP 严重依赖核心数据服务 (CDS) 视图来定义和使用数据库对象。

关键变化

  • 直接访问 SAP 标准数据库表(如 KNA1)被 CDS 视图 所取代,用于读操作。
  • 写操作通过基于类的 API 或事务性业务对象处理。
  • 开发人员被限制使用白名单 API,以确保 SAP 升级期间的兼容性和稳定性。

示例: 要从标准 SAP 表中读取客户数据,我们需要创建一个 CDS 视图:

abap


CODEBLOCK_947c745e

这种方法确保了视图以受控且稳定的方式被暴露。

第二层 – 业务逻辑层

业务逻辑层是我们实现特定于应用程序行为的地方。RAP 引入了行为定义行为实现 来定义和管理业务对象的逻辑。

核心概念:

  • 行为定义: 使用行为定义语言 (BDL) 来描述业务对象可以执行的操作,例如创建、更新或删除。
  • 行为实现: 在 ABAP 代码中实现这些操作的逻辑。

示例: 为自定义表定义业务对象的行为:

abap


CODEBLOCK_0b1353e0

在这个例子中:

  • managed 关键字表示 RAP 将处理标准的 CRUD 操作。
  • 自定义逻辑可以在指定的类 (ZCL_ORDER_BDEF) 中实现。

第三层 – 用户界面层

UI 层消费 RAP 提供的 OData 服务来渲染 SAP Fiori 应用程序。RAP 利用 CDS 视图中的注解来定义 UI 特定的元数据,从而减少了对自定义 UI 代码的需求。

核心特性:

  • UI 注解: 直接在 CDS 视图中定义标签、字段可见性和用户交互。
  • Fiori Elements: 使用预构建的模板来开发事务性、分析型和概况表应用程序。

示例: 在 CDS 视图中定义 UI 注解:

abap


@UI.selectionField: [{ position: 10 }]

@UI.lineItem: [{ position: 10 }]

@UI.fieldGroup: [{ qualifier: ‘Basic‘, position: 10 }]

define view ZOrderView

as select from zorder

{

key order_id,

@UI.label: ‘Ord

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/19458.html
点赞
0.00 平均评分 (0% 分数) - 0