了解已发布 API

学习目标

  • 浏览不同类型的已发布 API。

SAP S/4HANA Cloud 业务 API、扩展点和事件

已发布 API:本地 ABAP 平台 API

本地 ABAP 平台 API 在 SAP S/4HANA Cloud 和 SAP BTP ABAP 环境之间同步。

如第 1 单元第 2 课"介绍 Clean Core 方法"中所述,clean core 概念最重要的部分之一是在 SAP S/4HANA Cloud 中使用升级稳定的接口。这有助于促进软件更新,并在应用后在不中断业务的情况下顺利且轻松。

为了充分利用这一优势,SAP 与客户携手合作。在 SAP 方面,SAP 提供由多种类型组成的公共发布接口。此外,SAP 还将保证这些接口从发布到发布的稳定性,以便客户可以放心地使用这些接口。在客户方面,客户同意仅在其新开发(客户创建的部件)和扩展开发(扩展实施)中使用公共发布的接口。实际上,这是通过语法检查和 ABAP 测试主控室检查(作为 ABAP Cloud 开发模型的一部分)在面向 Eclipse 的 ABAP 开发工具中强制执行的,具体细节将在下一单元中进行讨论。

这些发布的接口源自多个来源。第一个是 SAP BTP ABAP 环境中可用的 ABAP 平台云,以及 SAP S/4HANA Cloud ABAP 环境。它们通常称为本地 ABAP 平台 API。由于两个产品使用相同的 ABAP 平台云代码行,因此两个位置均提供已发布的 SAP 对象(例如,数据元素)。这样,开发人员可以将代码放在自己应该归属的位置,甚至在两个位置(如果这是首选方法)放置。

认识到在云原生环境中,某些 SAP 对象可能不合适,SAP 系统性地将其替换为更云设计的等效对象。

SAP S/4HANA Cloud 业务 API

远程 API、本地 API 和本地扩展点是 SAP S/4HANA Cloud 中提供的不同类型的公共发布接口。

远程使用

SAP S/4HANA Cloud 中有多种类型的公共发布接口可供使用,了解这些接口的好方法是有目的的。

第一个目的是供远程(非 SAP S/4HANA Cloud)源(例如在 SAP BTP 上运行的自定义应用程序)使用的接口。这些接口(通常称为远程 API)可以是使用 ABAP RESTful 应用程序编程模型创建的 OData 服务以及 SOAP 服务。我们已了解 SAP Fiori 和 SAP Build Apps 如何在应用程序开发中使用 OData 服务。这两个场景都是直接从应用程序发起的直接调用场景(同步)。但是,许多应用程序设计为异步(间接调用场景)。在异步场景中,发送方和接收方使用中间件代理交换信息作为消息,而不是直接通信。Cloud Integration 是 SAP Integration Suite 中的功能,是在 SAP BTP 上运行的服务,专门设计用于这些类型的场景。提供 OData 和 SOAP 适配器,以便开发人员可以分别使用 OData 和 SOAP 服务。

事件

作为 SAP BTP 的一部分提供的另一个服务是 SAP Event Mesh,允许应用程序通过异步事件相互通信。这种类型的通信允许设计事件驱动的业务流程。使用事件驱动的体系结构,您拥有引发事件的事件提供者,以及收到事件通知并相应响应的事件使用者。SAP Event Mesh 充当提供者和使用者之间的"粘合剂"。ABAP RESTful 应用程序编程模型支持开箱即用的事件驱动设计,ABAP RESTful 应用程序编程模型可以充当提供者或使用者,具体取决于设计场景。

本地使用

第二个目的是在本地使用接口(即基于 SAP S/4HANA Cloud)。这些接口的使用可以采用使用 ABAP RESTful 应用程序编程模型构建的自定义应用程序的形式,也可能是业务加载项实施。在设计这些使用时,开发人员可以利用类和 CDS 视图来简化对 SAP S/4HANA Cloud 功能的访问。这些本地接口通常称为本地 API。要采用简单的本地 API 示例,通常,如果开发人员需要访问国家/地区表,他们将直接从表 T005 中选择数据。但是,存在提供此数据的访问权限的本地 CDS 视图 "I_countory"(且已发布)。

本地扩展点

最后,存在用于扩展目的的接口(本地扩展点)。与本地 API 类似,SAP S/4HANA Cloud 中存在这些扩展点,开发人员在此创建其扩展实施。SAP R/3 4.6(c) 首次引入的业务加载项在 SAP S/4HANA Cloud 中可用,ABAP RESTful 应用程序编程模型是 ABAP Cloud 使用的先显性编程模型。还为其设计了可扩展性模型,可供开发人员使用。

面向 Eclipse 的 ABAP 开发工具中可用的“已发布对象树”显示所有可供使用的已发布对象。

本地和远程公共 API 以及 SAP S/4HANA Cloud 的本地扩展点都使用 SAP Business Accelerator Hub 可见,并且可以继续用于发现目的。但是,作为附加选项,面向 Eclipse 的 ABAP 开发工具具有已发布对象视图,该视图显示开发人员专门发布的用于 ABAP Cloud 开发。SAP Business Accelerator Hub 显示远程 API、事件、CDS 视图、ABAP RESTful 应用程序编程模型业务对象接口和业务加载项,而已发布对象视图显示为开发发布的附加对象,例如数据元素、权限对象和 CDS 视图。

面向 Eclipse 的 ABAP 开发工具中的不同但密切相关的功能是它能够检测未发布的 API 的使用情况,并且如果有合适的替换,则可以发出建议替换使用的语法错误消息。例如,表 T005(国家/地区)未发布。但是,替换 CDS 视图 I_COUNTRY 可用。对表 T005 的任何访问都会导致语法错误,并显示以下消息:

不允许使用表 T005。改用 CDS 实体 I_COUNTRY。

利用 SAP Business Accelerator Hub

练习开始练习(SAP 官方交互式练习)

在面向 Eclipse 的 ABAP 开发工具中使用 SAP 发布的 API 视图

练习开始练习(SAP 官方交互式练习)