简单说一说Modern ABAP这个概念
Modern ABAP
是 SAP近些年来提出的一个概念,指的是在传统 ABAP (Advanced Business Application Programming) 的基础上,结合新技术和现代化编程理念进行改进和优化,旨在使 ABAP 更适应云计算、数据驱动业务以及开发效率提升的需求。
这一概念的引入背景在于 SAP 技术栈的不断演进,特别是在 SAP HANA 和 SAP S/4HANA 平台的推广以及云原生架构兴起的情况下,传统的 ABAP 开发模式已经不能完全满足现代业务以及开发团队的需求。
Modern ABAP 包括以下几个核心方向:
0. 新语法
自 NetWeaver ABAP 7.40 以来,ABAP 语言发生了巨大的变化。增加了许多新的语言结构。当然,尤其是许多新的表达式。例如,变量的行内声明,连接运算符,字符串模板,构造表达式等等。有了它们,可以编写简洁的代码,并节省许多辅助变量和声明。使用新的语言元素可以使代码更健壮、更易读。这里有一个Modern ABAP Cheat Sheet,不熟悉新语法的同学可以参考。
* Classic ABAP
DATA ResultLine LIKE LINE OF ResultTab. LOOP AT ResultTab INTO ResultLine.
...
ENDLOOP.* Modern ABAP
LOOP AT ResultTab INTO DATA(ResultLine).
...
ENDLOOP.
1. 基于面向对象编程 (OOP) 的开发
传统 ABAP 编程中大量使用过程化的开发模式,而 Modern ABAP 更加强调面向对象编程,通过类、接口和继承等机制编写代码。
- 使用面向对象的方式组织代码可以提高可读性、复用性和可维护性。
- SAP 提供了更多现代化的类库(如 ABAP 组织的标准库)来支持这些编程实践。
2. 更好的与 SAP HANA 的集成
Modern ABAP 的开发需要利用 SAP HANA 数据库原生特性,优化性能和数据处理能力。
- 支持 Code-to-Data 的编程模型,通过将计算逻辑尽量下推到数据库层(即利用数据库的推算能力)。
- 使用 Open SQL 和 CDS (Core Data Services) 的现代化查询方式提高开发效率和性能。
- 开发者被鼓励采用基于 AMDP(ABAP Managed Database Procedures)的逻辑,避免不必要的数据上下文切换。
3. 基于 SAP BTP 的云原生开发
随着 SAP 强调 cloud-first 策略,Modern ABAP 涉及到开发与 SAP BTP(SAP Business Technology Platform,前称 SAP Cloud Platform)无缝接轨的应用。
- 支持 RESTful API 设计和开发,例如通过 OData 和 SAP Gateway 开发现代化的服务接口。
- 开发人员在现代开发环境中(例如 SAP Business Application Studio 或 SAP Eclipse ADT 插件)处理 ABAP 开发。
4. ABAP RESTful Application Programming Model (RAP)
RAP 是 Modern ABAP 的核心组件之一,负责构建企业级应用并支持云端和本地部署。
- 它建立在 CDS View 和 OData 服务之上,能够以更高效和标准化的方式开发基于服务的业务应用。
- RAP 提供了更加现代化的业务逻辑处理方式,包括事务管理和业务对象层开发模型。
5. 更严格的代码质量与性能优化
Modern ABAP 更注重代码质量和可维护性。
- 引入了更多的静态代码检查工具和单元测试框架(如 ABAP Unit)。
- 强调 Clean Code 原则,要求开发者编写简洁、模块化和容易理解的代码。
- 借助包括事务 ST05、SQL Trace 等工具来优化代码和数据库查询性能。
6. 与现代开发工具的集成
Modern ABAP 提倡使用新的开发工具和环境来提升开发效率,例如:
- Eclipse 中的 ABAP Development Tools (ADT),现在是主要的 ABAP 开发生态工具。
- Git 集成用于版本控制,以代替传统的 SAP Transport System (CTS)。
7. 支持多平台与扩展性
随着 SAP Fiori 的大规模推广,Modern ABAP 的开发更加趋于用户体验导向。
- 开发更轻量级、易于扩展的 Fiori 应用。
- 使用增强框架(例如 BAdIs 和 In-App Extensibility)支持客户化需求。
8. 离开过时技术和逐步淘汰老旧编程方式
在 Modern ABAP 中,SAP 鼓励开发者尽量避免使用一些陈旧技术和语法,例如:
- 弃用老旧的数据建模方式 (如 ALV grid 控件),转而优先采用现代 UI 技术如 SAP Fiori。
- 尽量减少对语句级别的 SQL 的高度依赖(如 Native SQL)。
- 将 Dynpro这样的传统屏幕编程方式转向更直观的 Fiori 元件。
总结来说,Modern ABAP 是 SAP 应对技术现代化趋势的一种转型和革新,结合了面向对象的编程方法、方便与 HANA 和云平台的集成、高效的 RESTful 架构模式,以及强大的工具链支持。这不仅要求开发者熟悉传统的 ABAP 开发理念,还需要掌握新工具以及对现代化开发方法的适应能力。