-
本文档有哪些内容?
本博客的重点是概述引入 HANA 数据库后 ABAP 中的新编程技术。重点是就 ABAP 开发人员为何以及如何开始将代码转换为使用新编码技术提供指导。 -
谁应该阅读这本书?
这里的目标受众是希望对 HANA 上的 ABAP 编程有基本了解并理解为什么要选择这些新功能的 ABAP 开发人员。 -
本博客涵盖的领域:
代码到数据范例、OpenSQL、CDS 视图、AMDP。
让我们开始吧!
前言
SAP ABAP 多年来一直在快速发展。随着 S/4HANA 的推出,ABAP 逐渐成为一门更令人印象深刻、更富有成效的语言。如果你问我 ABAP 是如何改进的,答案就是 “代码到数据 ”范式。
什么是 “代码到数据 ”范式?
传统的方法包括将数据从数据库引入到我们的演示服务器,进行数据密集型计算和过滤,然后将过滤后的数据呈现给用户。
新的 HANA 方法是将我们的代码推送到所有数据所在的数据库层,在数据库层进行计算,然后只将相关记录带到演示服务器。
由于采用了 C2D 模式,将大量数据传输到表现层时因延迟而造成的延迟被大大消除,因此即使是非常大的数据集也能获得很高的性能。
为了更好地理解这一点,让我用一个任何 ABAP 开发人员都很容易理解的基本场景来说明:
示例场景: 一份 ALV 报表可返回 “所有 ”供应商的主数据及其地址,包括处于活动状态的供应商、未标记为集中删除的供应商、未标记为 “所有 ”公司代码下删除的供应商、未标记为 “所有 ”采购组织下删除的供应商。
在这种情况下,由于要获取所有供应商、所有公司代码和所有采购组织的数据,性能会受到影响。由此产生的报表将需要后台运行,在这种情况下,传统的 ABAP 报告流程将按如下方式获取数据:
在这里,如果不在选择语句下使用连接,呈现层将与表交互几次。此外,由于系统中存在大量供应商数据,使用连接从这些表中获取数据的速度也会非常慢。那么,该如何提高性能呢?
答:- 使用以下方法编写 PushDown 代码
- OpenSQL Programming(尽管目前还很有限)
- CDS 视图
- ABAP 管理数据库程序
让我们逐一访问上述功能,看看它们如何与 HANA DB 配合使用。
- OpenSQL Programming
使用 OpenSQL 编程,您可以在 ABAP 代码中编写 OpenSQL 语法。
在使用 OpenSQL 编写代码时,选择语句中的字段用逗号分隔,所有主变量都使用“@
”符号转义,可以在单