浏览 ABAP Cloud
学习目标
评估 ABAP Cloud 的不同功能。
从传统 ABAP 到 ABAP 云开发模型

在整个课程中,我们反复提到,公司需要灵活的应用程序,并且可以根据不断变化的客户需求轻松进行调整,这一点至关重要。SAP S/4HANA Cloud 是满足此需求的产品,clean core 可扩展性是实现这种灵活性的原则。在上一课中,我们发现云计算在成为应用程序开发和运营平台方面发挥了核心作用。在本课中,我们还了解了云计算如何导致应用程序开发和维护的不同方法的演变,即云原生。最后,在该课中,我们发现云原生 REST API 的一个特定方面是其成功的核心。
演变(非革命)
云计算、云原生和 REST 的出现以及 clean core 可扩展性原则需要开发人员多年来使用的 ABAP 语言和 ABAP 开发模型的演变。幸运的是,ABAP 能够根据不断变化的技术和需求进行发展。在 ABAP 作为第四代编程语言的最初几天(1980 年代),它主要用于在 SAP R/2 平台上执行报表。随着 SAP R/3 的出现(在 20 世纪 90 年代),该语言得到了增强,以便 SAP 和客户都可以使用它来创建程序和扩展。通过服务包到增强包进行版本升级,ABAP 语言不断发展以满足当前需求。虽然众所周知,向云计算的转变是一项根本性的变化,但 SAP 的 ABAP 战略以"演进而非革命"为中心,这意味着为了使其适应云计算,对 ABAP 进行的更改是精确的、可控的、精心思考的和渐进的。最重要的是,客户需求始终至关重要。
ABAP 的先前演变
此时,在查看云计算所需的 ABAP 变更之前,值得花点时间来了解 ABAP 必须基于范式转换而演变的先前情况。这就是 1990 年代达到主流使用的面向对象的概念的出现。在此之前,ABAP 语言本质上是程序性的。一旦 ABAP 支持面向对象的概念的需求变得明显,语言中增加了几个关键字,以允许开发人员实施这些概念。这些关键字经过精心构建,旨在改进 ABAP 语言,同时识别并尊重客户系统中的现有 ABAP 代码,以便最大限度地减少客户中断。因此,ABAP 开发人员可以编写过程和面向对象的代码,并灵活地在任何给定任务中决定两者之间的适当平衡。例如,如果公司设定了在特定日期以 90% 为导向 ABAP 自定义代码对象的目标,则可以按其选择速度完成,而不是以"自上而下"的方式对其进行强加。最后一点很重要。ABAP 的发展方式通常是"向后兼容"。这意味着更改通常只有前瞻性。无需调整现有代码以符合任何新的 ABAP 标准或功能。开发人员只需在项目开发中使用未来的新功能。
ABAP 云开发模型(ABAP 云)
云计算、云原生和 REST 的出现和广泛使用导致了 ABAP 的另一个发展需求。此需求在 ABAP Cloud 开发模型(ABAP Cloud)中表现出来。ABAP Cloud 的各个方面和构件块具有 ABAP 开发人员对云原生世界所需的一切内容。ABAP Cloud 的主要功能如下:
云原生语言:面向云开发的 ABAP - 针对云优化的 ABAP 语言版本
云原生编程模型:ABAP RESTful 应用程序编程模型和 ABAP 分析
平台即服务 (PaaS) 功能作为 ABAP 平台的一部分:重用服务、身份和访问管理以及连接
集成的 SAP S/4HANA Cloud 功能:业务 API、扩展点和事件
工具:面向 Eclipse 的 ABAP 开发工具作为集成开发环境
ABAP Cloud 开发模型的核心是其编程模型,它定义了所有扩展、服务和应用程序的设计时和运行时体系结构。在讨论编程模型时,我们通常考虑以下三种不同的用例或场景:
事务 (OLTP):通过 ABAP Cloud,您可以构建业务对象并将其公开为服务,以在 UI 和集成场景中使用它们。支持所有标准行为(创建、读取、更新、删除)。以众所周知的销售订单业务对象为例。这些功能通过使用 ABAP RESTful 应用程序编程模型来实现。
分析 (OLAP):ABAP Cloud 同样能够创建用于数据分析的服务和 UI、在多个维度下钻等。主要用例是在 SAP Analytics Cloud 中集成数据。此功能通过使用 ABAP 分析实现。
集成:前两个方面都辅以强大的数据和应用程序集成,以满足当今的服务导向型环境。
编程模型本身并存 - 它伴随着以下两个关键区别:
将服务和库与编号范围、应用程序作业、集成 ABAP 的 SAP Fiori 快速启动板和 UI 资源库等核心业务服务重复使用,以部署 SAPUI5 和 SAP Fiori 元素 UI。
内置的特质在编程模型中提供端到端可扩展性、可扩展性和升级稳定性等主要云质量。
到 ABAP Cloud 的演变

ABAP Cloud 是过去十年多次创新的结果。面向 Eclipse 的 ABAP 开发工具在 2012 年引入,为开发人员提供了构建、调试、测试和运行其 ABAP 代码的附加环境。此后不久,就引入了核心数据服务,为开发人员提供了创建数据模型的一种声明方法,用于构建针对 SAP HANA 优化的应用程序。REST 作为广泛使用的体系结构样式出现,正如我们在上一单元中所探索的,它导致 ABAP RESTful 应用程序编程模型的开发,使 ABAP 开发人员能够有效地创建基于 ABAP 的端到端 REST 服务,以开发事务性 SAP Fiori 应用和 Web API。
每个创新都值得多见。但正如经常说的那样, " 整体大于其部分的总和 " 。这里同样如此。ABAP Cloud 不仅将所有这些创新整合在一起,还添加了几个以整体方式结合所有创新的附加创新。因此,开发人员现在可以使用 ABAP 享受高效的端到端云原生开发。ABAP Cloud 可用于开发自定义应用程序和服务,以及构建 SAP S/4HANA Cloud 应用程序的扩展。
ABAP Cloud 的可用性

ABAP Cloud 在 SAP BTP ABAP 环境和 SAP S/4HANA Cloud Public Edition 中均可用作默认(且仅 )选项。对于 SAP S/4HANA Cloud Private Edition 和 SAP S/4HANA, ABAP Cloud 与 ABAP Classic 共存,客户可以选择何时使用哪种模型,具体内容将在第 5 单元"评估 SAP S/4HANA Cloud Private Edition 和 SAP S/4HANA 的特殊注意事项"中讨论。再次,进化不是革命。

之前在第 2 单元第 2 课"评估 SAP Build"中,我们在工具支持方面探讨了"平民开发人员"(即"构建器")与更传统的"开发人员"之间的差异。构建器需要主要属于"低代码"类别的工具,而开发人员需要一个"传统代码"导向的工具集。ABAP Cloud 面向开发人员角色。
云优化 ABAP 语言

由于其悠久而丰富的历史,存在各种各样的 ABAP 关键字、部件和技术,以提供专业企业应用程序开发所需的功能。但是,并非所有方法都与云原生方法的需求兼容,因此在 ABAP Cloud 中仅使用其中的子集。例如,禁止使用 TABLES 语句等过时关键字。同样禁止 Dynpro 和 Web Dynpro,而不是基于使用 ABAP RESTful 应用程序编程模型创建的 REST 服务的 SAP Fiori UI。禁止直接在 SAP 表上使用 SELECT 语句代替使用核心数据服务。
为了清楚说明这一点,开发人员现在必须在创建开发对象时将语言版本分配给开发对象。该语言可以是"标准 ABAP"("ABAP 经典")、"适用于云开发的 ABAP"(用于 ABAP 云开发)或"关键用户的 ABAP"(也适用于 ABAP Cloud 开发;将在下一单元中进行讨论)。通过进行显式分配,可以执行适当的检查以确保开发工作符合 ABAP Cloud。
面向 Eclipse 的 ABAP 开发工具

传统上,开发人员使用 ABAP 工作台创建应用程序所需的各种部件,以及对其进行语法检查和调试。如前所述,在 2012 年,Eclipse 平台与特殊插件一起引入面向 Eclipse 的 ABAP 开发工具作为 ABAP 开发的备选"传统代码"环境。ABAP Cloud 开发仅使用面向 Eclipse 的 ABAP 开发工具完成。面向 Eclipse 的 ABAP 开发工具通过 ABAP 编译器、ABAP 运行时和 ABAP 测试主控室检查的组合(视情况而定)验证 ABAP Cloud 兼容性。这些功能与面向 Eclipse 的现有和熟悉的 ABAP 开发工具功能相结合,例如代码完整化、语法检查和调试,使开发人员能够顺利轻松地过渡到 ABAP Cloud 开发。有关启用从 ABAP 工作台到面向 Eclipse 的 ABAP 开发工具的顺利迁移的详细信息,请参阅使用 ADT 的 SE80 专家的常见问题。