简单说一说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,不熟悉新语法的同学可以参考。

js 复制代码
* 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 开发理念,还需要掌握新工具以及对现代化开发方法的适应能力。

相关推荐
爱喝水的鱼丶6 天前
SAP-ABAP:在DEBUG过程中修改内表中的数据的方法详解
运维·开发语言·sap·异常处理·abap·修改内表
爱喝水的鱼丶12 天前
SAP-ABAP:ABAP异常处理与SAP现代技术融合—— 面向云原生、微服务与低代码场景的创新实践
开发语言·低代码·微服务·云原生·sap·abap
爱喝水的鱼丶13 天前
SAP-ABAP:SAP的BAPI_PO_CHANGE功能详解
开发语言·sap·abap·bapi·采购订单修改
IT小白农民工19 天前
SAP Business One(B1)打开自定义对象报错【Failed to initialize document numbering:】
经验分享·sap
清风雅雨21 天前
SAP 交货单行项目含税金额计算报cx_sy_zerodivide处理
sap
IT小白农民工1 个月前
如何用postman进行批量操作
测试工具·postman·sap
清风雅雨1 个月前
VPN访问SAP组服务器报登陆负载均衡错误88:无法连接到消息服务器(RC=9)
运维·sap
syounger1 个月前
Oracle在ERP市场击败SAP
oracle·sap
-样样-2 个月前
SAP系统交货已完成标识
sap