
资源介绍
子书)
详细介绍了 ABAP RESTful 应用程序编程模型(RAP)的相关内容,涵盖基础概念、技术组件、实践应用开发等多个方面,具体总结如下:
一、书籍及相关信息
书籍基本信息:由 Lutz Baumbusch、Matthias Jäger、Michael Lensch 所著,是 SAP PRESS 联合 Rheinwerk Publishing 推出的关于 ABAP RESTful 应用程序编程模型的综合指南,旨在指导开发者为 SAP S/4HANA 和 SAP BTP 开发 ABAP 应用,涵盖核心数据服务、SAP Fiori 等关键工具和技术,以及数据建模、行为实现、用户界面开发等步骤。
相关书籍推荐:包括《Core Data Services for ABAP (2nd Edition)》《ABAP to the Future (4th Edition)》等多本 SAP 相关技术书籍。
二、ABAP RESTful 应用程序编程模型基础
定义与目的:是在 ABAP 平台上开发企业应用的新方式,涵盖应用开发的各个步骤和元素,如数据模型、操作、业务逻辑、事务行为和技术接口等,为应用开发者提供构建、测试和排查应用的方法,包括开发对象、依赖关系和可用 API 等。
REST 架构风格:源于 Roy Fielding 的博士论文,描述万维网架构及设计和演进指南,涉及资源、URI/URL、HTTP 方法、无状态通信等关键元素和原则。
OData:基于 HTTP 的 REST 合规 API 规范,定义了数据模型、服务元数据文档、服务文档等,规定了 HTTP 元素的使用方式,还可通过词汇表丰富数据模型。
与 SAP S/4HANA 的技术创新:SAP S/4HANA 在数据库、CDS、SAP Gateway 和 OData、SAP Fiori UX 等方面有技术变革,RAP 与之紧密结合。
ABAP 基于编程模型的演进:经历了经典 ABAP 应用开发、业务对象处理框架(BOPF)、ABAP for SAP Fiori 编程模型等阶段,RAP 是其发展的新阶段。
三、核心数据服务(CDS)
定义与重要性:是创建语义丰富且持久的数据模型的基础设施,ABAP CDS 在应用服务器上维护,与 SAP HANA CDS 不同,其语法与 SQL 标准一致,在 SAP S/4HANA 架构中对代码到数据范式、虚拟数据模型(VDM)和编程模型有重要意义。
结构与语法:包括创建基本接口视图、分析数据模型、使用和扩展 CDS 视图等,还涉及关联、注解、访问控制、可扩展性、额外功能和虚拟数据模型等内容。
建模业务对象的语言元素:如 CDS 视图实体、根实体、行为定义、CDS 投影视图和业务服务等。
四、行为定义
定义与结构:是通过行为定义语言(BDL)声明业务对象行为的核心开发对象,分为行为定义头部、实体行为定义区域等,包含头部、实体行为定义的头部和主体等部分。
语法规则:关键字小写,语句通常以分号结束,名称或标识符不区分大小写,可使用注释。
可能的行为:包括事务行为和属性、标准操作、特定操作、内部业务逻辑、字段相关行为和跨领域 BDL 关键字等。
在 ABAP 开发工具中的编辑:包括创建、更改、激活、查找和文档化行为定义等操作。
实现类型:有托管(managed)和非托管(unmanaged)两种,托管场景又有不同的保存选项,投影行为定义是特殊类型。
其他关键概念:如严格模式、实体行为定义、行为池定义、编号、字段属性、字段映射、标准操作、特定操作、并发和锁定行为、内部业务逻辑、授权检查、草稿处理和跨领域概念等。
五、实体操作语言(EML)
定义与作用:是 ABAP 语言的一部分,提供对 RAP 业务对象的访问,支持对业务对象实例进行读写操作,是行为实现和外部访问业务对象的重要方式。
数据类型:包括派生数据类型(如 % CID、% CID_REF 等)和隐式返回参数(如 FAILED、REPORTED、MAPPED)。
EML 操作:包括 READ ENTITIES、MODIFY ENTITIES、GET PERMISSIONS、SET LOCKS、COMMIT ENTITIES 和 ROLLBACK ENTITIES 等,各操作有其语法和作用。
在行为实现之外的使用:可在 ABAP 报表和 ABAP 单元测试类等场景中使用。
六、行为实现
业务对象提供器 API:是行为实现的编程接口,行为实现也称为行为池,是特殊的 ABAP 类,在不同场景下有不同的实现要求。
RAP 运行时行为:程序流程分为交互阶段和保存序列,通过事务缓冲区关联,交互阶段由交互处理器实现,保存序列由保存处理器实现。
交互处理器和保存处理器的接口:基于 CL_ABAP_BEHAV 类,交互处理器继承自 CL_ABAP_BEHAVIOR_HANDLER 类,保存处理器继承自 CL_ABAP_BEHAVIOR_SAVER 类。
交互处理器方法:包括 FOR MODIFY、FOR INSTANCE AUTHORIZATION、FOR GLOBAL AUTHORIZATION 等多种方法,用于处理不同的操作和逻辑。
保存处理器方法:包括 FINALIZE、CHECK_BEFORE_SAVE、ADJUST_NUMBERS、SAVE、CLEANUP 和 CLEANUP_FINALIZE 等,按固定顺序处理保存序列中的步骤。
七、业务服务
定义与组成:是 RESTful 或 OData 服务,由服务定义和服务绑定组成,服务定义是数据模型和相关行为的投影,服务绑定定义通信协议。
投影层:包括 CDS 投影视图和投影行为定义,用于为特定用例提供业务对象字段的子集和服务特定行为。
服务定义:描述应暴露哪些 CDS 实体以启用特定业务服务,与协议无关。
服务绑定:将服务定义绑定到客户端 - 服务器通信协议,有不同的绑定类型和版本控制方式。
测试:可在 SAP Gateway 客户端测试业务服务,也可使用 SAP Fiori Elements 预览测试 UI 服务。
八、用户界面和 SAP Fiori Elements
开发工具:包括 SAP Business Application Studio(基于 Eclipse Theia 的云服务,有 dev 空间概念)和 Visual Studio Code(免费的现代开发环境,有丰富插件)。
SAP Fiori Elements:提供预定义模板(floorplans)如列表报告和对象页面,通过 UI 注解定义用户界面中数据的使用模式,可在 CDS 视图中定义 UI 注解来设计用户界面。
九、实践应用开发
用例:包括应用类型、实现类型和选择合适的实现类型等内容。
不同场景开发:如托管场景开发应用、带非托管保存的托管场景集成现有应用、非托管场景重用现有源代码等,还包括 SAP BTP ABAP 环境的特定功能和对 RAP 未来的展望。