描述 ABAP 平台

学习目标

  • 解释面向 ABAP 平台的 SAP Fiori 系统架构。

  • 解释基于 SAP Gateway 项目的应用。

面向 ABAP 平台的 SAP Fiori 系统架构

SAP Fiori 系统架构可视化 – 任意数据库:顶部为 SAP Fiori launchpad,中间为可选的 SAP Web Dispatcher,下方为使用任意数据库的 SAP 前端服务器,底部为使用任意数据库的 SAP 后端服务器。

SAP Fiori 的系统架构主要由前端服务器(Front-End Server,FES)和后端服务器(Back-End Server,BES)组成。在此架构中,它们是 Application Server (AS) ABAP 或 ABAP Platform 的系统角色。后端服务器是 SAP Business Suite 或 SAP S/4HANA,其中包含基于 AS ABAP 7.40 或更高版本的任意领域的应用和数据。前端服务器是未安装任何业务产品的基础 AS ABAP 7.40 或更高版本。两个系统都可以运行在任意数据库上。

注意

自版本 7.53 起,Application Server ABAP 更名为 ABAP Platform。原因是 SAP Business Technology Platform (BTP) 上 ABAP environment 的推出。

尽管在任意客户端中运行的 SAP Fiori launchpad (FLP) 能够直接与 FES 通信,但在面向外部的场景以及内部场景中,建议在 FLP 与 FES 之间使用 SAP Web Dispatcher 或其他反向代理。原因是 FLP 的某些功能必须访问多个系统,而基于充分的理由,这在 Web 通信中是被禁止的。反向代理提供单一的通信接入点,其中包含路由规则,可将请求转发到正确的目标系统。

示意图比较 SAP Fiori 部署选项:左侧为嵌入式部署,BES 中包含(Product UI、Central UI、SAP Gateway 和 ABAP)。右侧为中心枢纽部署,FES 中包含(Product UI、Central UI、SAP Gateway),BES 中包含(SAP Gateway、ABAP)。

在某些场景中,并不需要运行分离的前端服务器和后端服务器。这样做甚至可能适得其反。因此,您可以在一个系统中部署 SAP Fiori 的所有组件,即嵌入式部署。

嵌入式部署

中心枢纽部署

提供 SAP Fiori 的 FES 任务嵌入在 BES 中。只有一个系统。

FES 和 BES 是两个分离的系统,分担提供 SAP Fiori 的任务。

SAP Gateway 是 FES 和 BES 中唯一的组件,也是唯一需要仔细检查各项设置位于哪个系统的部分。一旦有多个系统要提供 SAP Fiori 应用,FES 在组织管理和安全方面就有诸多优势。

注意

对于 SAP Business Suite,推荐的部署选项是中心枢纽场景。SAP FES 2023 是受支持的最后一个前端服务器版本,因此其维护结束时间与 SAP Business Suite 保持一致。

SAP Fiori 系统架构可视化 – 任意数据库上的 ABAP Platform,展示从 FLP 经 SAP Web Dispatcher 到 FES 和 BES 层的流程,显示 HTTPS 和 OData 等各种协议,以及与 AnyDB 的数据库连接。

面向任意数据库上的 BES 的 SAP Fiori 系统架构支持基于 SAPUI5 的事务型应用,以及基于 Web Dynpro 和 ABAP 事务的经典应用。FES 的必备组件包括用于 OData 通信的 SAP Gateway、用于常规 SAP Fiori 功能的 central UI,以及用于应用的产品 UI。应用业务逻辑的 SAP Gateway 和 ABAP 代码位于 BES 中。

SAP Fiori 系统架构可视化 – SAP Fiori launchpad,展示从 FLP 经 SAP Web Dispatcher 到 FES 中 SAP Gateway 和 Central UI 的流程。

要使用任何 SAP Fiori 应用,都需要一个运行中的 FLP。FLP 是 central UI 的一部分,包含用于内容个性化、定制和配置的所有视图、功能和工具。就个性化而言,它由用户在运行中的 FLP 里执行。因此,FLP 必须使用 OData 从 FES 读取数据并向 FES 写入数据,这不仅用于个性化,也用于其他方面。

FLP 不与 BES 通信。SAP Fiori 的所有常规设置都保存在 FES 中,以便独立于 BES。尽管图中未显示,但许多客户通常拥有多个后端。SAP Fiori 设置只有一个存放位置(系统),这是一个巨大的优势。

SAP Fiori 系统架构可视化 – 事务型应用,展示从事务型应用经 SAP Web Dispatcher 到 FES 中 SAP Gateway 和 Product UI,并继续到 BES 中带 ABAP 的 SAP Gateway 的流程。

除了需要运行中的 FLP 之外,事务型应用由 SAPUI5 应用和 SAP Gateway 服务组成。SAPUI5 应用作为 BSP 保存在 ABAP 仓库中,并通过产品特定的 UI 附加组件交付。这些组件安装在 FES 上。SAP Gateway 服务作为 BES 解决方案更新的一部分交付,并使用 ABAP 编写。

Gateway 服务的注册由客户在 FES 上执行。因此,当事务型应用需要数据时,会通过 SAP Web Dispatcher 向 FES 上的 Gateway 服务注册发起 OData 请求。SAP Gateway 框架会从那里向 BES 上的 SAP Gateway 服务实现发起 RFC 请求。在该实现中,使用 ABAP 代码访问数据库中的数据。

SAP Fiori 系统架构可视化 – 经典应用,展示从经典应用经 Web Dispatcher 到 BES 中 ABAP 的流程。

经典应用是 BES 解决方案的一部分,除 FLP 本身外不与 FES 交互。UI 和数据直接来自 BES 上的 ABAP 代码。FES 的唯一任务是在 FLP 中发起导航请求(例如点击磁贴)时提供到 BES 的连接信息。该连接信息必须由管理员在 FES 中设置。

在 SAP Fiori Launchpad 中调试 ABAP 事务

业务示例

您希望在 SAP Fiori launchpad 中调试一个 ABAP 事务。

注意

本练习需要 SAP Learning 系统。登录信息由您的系统设置指南提供。

任务 1:在 GUI for HTML 中进入功能调试

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

步骤

  1. 在 Web 浏览器中,在您的 SAP Fiori launchpad 中打开 Data BrowserSE16)。在 SAP GUI for HTML 设置中激活 OK 代码字段。尝试在从数据库表 SCARR 中选择数据时于运行时切换到调试。

  2. 在您 S4H 的 SAP Fiori launchpad 中,打开 Data BrowserSE16)。

注意

如果您没有磁贴或链接,可以通过 User Menu 在 App Finder 中找到它。

  1. 选择 MenuSettings...

  2. 在左侧的菜单中,选择 Interaction DesignVisualization

  3. 激活 Show OK Code field 开关。

  4. 选择 Save

  5. Table Name 字段中,输入 SCARR

  6. 选择 Table Contents

  7. 在左上角的 OK code 字段中,输入 /h,然后选择 Enter

提示

您也可以选择 More→System→Utilities→Debug Dynpro。

结果

在页脚中会出现错误消息 Action not possible in SAP GUI for HTML. Use external debugging. 。 9. 在页脚中的错误消息里,选择 View Details。 10. 查看错误详细信息。

任务 2:在 GUI for Windows 中进入功能调试

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

步骤

  1. SAP Business Client 中启用 SAP GUI OK code

  2. 打开 SAP Business Client

  3. 在左上角,选择 Customize and Control SAP Business Client (three lines)SettingsSAP GUI Interoperability

  4. 选择 Enable SAP GUI OK code

  5. 选择 OK

  6. SAP GUI OK Code Info 中,选择 OK

  7. 关闭 SAP Business Client

  8. SAP Business Client 中,在您的 SAP Fiori launchpad 里打开 Data BrowserSE16)。在从数据库表 SCARR 中选择数据时于运行时切换到调试。

  9. 打开 SAP Business Client

  10. SAP Business Client 中,双击您的 SAP S/4HANA (S4H) 系统的 SAP Fiori launchpad 条目。

  11. 打开 Data BrowserSE16)。

注意

如果您没有磁贴或链接,可以通过 User Menu 在 App Finder 中找到它。

  1. Table Name 字段中,输入 SCARR

  2. 选择 Table Contents

  3. 在左上角的 OK code 字段中,输入 /h,然后选择 Enter

提示

您也可以选择 Menu→System→Utilities→Debug Dynpro。

结果

在页脚中会出现成功消息 Debugging switched on 。 7. 选择 Execute。 8. 在 ABAP Debugger 中,查看 ABAP 代码。 9. 选择 Continue

结果

将显示一个航空公司列表。

SAP Fiori 应用的安装

FES 和 BES 中软件组件与产品的可视化。FES:SAP Gateway、Central UI、Products UI。BES:SAP Gateway、Products。每个类别下都列出了各种组件。

进一步仔细查看软件组件和产品:SAP Gateway 主要由 FES 和 BES 中的软件组件 SAP_GWFND 组成。自 7.40 起,它是每个 AS ABAP 的一部分。到 7.50 为止,根据应用的不同,可能还需要更多 SAP Gateway 功能。在 SAP Fiori 1.0 中使用 SAP Workflow 时,FES 中需要附加组件 IW_PGW。使用 Generic Interaction Layer (GENIL) 的数据模型时,BES 中需要附加组件 IW_GIL。使用 Service Provider Infrastructure (SPI) 时,需要 IW_SPI,依此类推。自 7.51 和 SAP Fiori 2.0 起,所有这些 SAP Gateway 附加组件都已弃用,可以卸载。这些功能要么已集成到 SAP_GWFND 中(例如 SAP Workflow),要么在 SAP S/4HANA 1610 中已不再需要。

central UI 由软件组件 SAP_UI 组成,自 7.40 起它是每个 AS ABAP 的一部分,包含系统中的所有 UI 技术,而不仅是 SAP Fiori。

产品特定的 UI 附加组件包含的不是一个,而是某个解决方案领域的所有 SAPUI5 应用。其类型和版本应与 BES 中实施的解决方案相匹配。

SAP Fiori apps reference library 中 Manage Chart of Accounts 的安装详情截图。

在这个 SAP Fiori apps reference library 示例中,您可以看到必须在 FES 上安装产品特定的 UI 附加组件,并且需要在 BES 上进行产品解决方案的更新。产品特定的 UI 附加组件是 SAP Fiori FES 2023 for S/4HANA 的附加组件,它不仅包含此应用,还包含 SAP S/4HANA 2023 的所有应用。BES 的更新是 SAP S/4HANA 2023 的 Feature Package Stack (FPS) 02。所有 SAP Fiori 应用都以这种方式安装。

基于 SAP Gateway 项目的应用

一个 SAP Gateway 服务由 BES 中的 ABAP 类和定制元素,以及 FES 中的一个服务目录条目组成。

观看此视频,了解 SAP Gateway 服务的架构。

视频:本节含 SAP 官方视频(视频 ID 1_wwldu195),需在 learning.sap.com 在线观看。

展示 SAP Gateway ABAP 事务的示意图:FES 中的 SAP Gateway Service Maintenance 指向 SAP Gateway Client;BES 中的 SAP Gateway Service Builder 指向 ABAP Workbench。

所有 SAP Gateway 事务都通过导航相互连接。以下是 SAP Gateway 最重要的事务:

SAP Gateway Service Maintenance (/IWFND/MAINT_SERVICE)

FES 中的中央 SAP Gateway 服务管理

SAP Gateway Client (/IWFND/GW_CLIENT)

FES 中的 SAP Gateway 服务测试环境

SAP Gateway Service Builder (SEGW)

BES 中的中央 SAP Gateway 开发环境

ABAP Workbench (SE80)

BES 中的中央 ABAP 开发环境

让我们详细看看事务 SAP Gateway Service Builder (SEGW)。

SAP Gateway Service Builder 中某个项目的截图,显示数据模型、运行时工件、SAP Gateway 别名,以及产品 ID、名称和价格等实体类型属性及其对应的 ABAP 字段名。

事务 SAP Gateway Service BuilderSEGW)使用项目将服务的所有工件集中捆绑在一个地方,这有助于组织服务开发和建模过程。由于项目整合了所有相关数据,开发人员可以轻松地并行处理多个项目,并在生成和激活实际服务之前在各项目之间重用数据。

注意

有关此主题的更多信息,请参见:

Building OData Services with SAP Gateway (Online Course) https://learning.sap.com/courses/building-odata-services-with-sap-gateway

调试基于 SAP Gateway 项目的应用

业务示例

您希望检查某个 SAP Fiori 应用的 SAP Gateway 项目,并调试一个 GET_ENTITYSET 方法。

注意

本练习需要 SAP Learning 系统。登录信息由您的系统设置指南提供。

任务 1:检查 SAP Gateway 项目

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

步骤

  1. 使用 SAP GUI 登录到您的 SAP S/4HANA (S4H) 系统。

  2. SAP Business ClientSAP Logon 中,选择您 S4H 的 SAP GUI SNC 系统条目。

  3. 选择 Log On

  4. 检查您 S4H 上的 SAP Gateway Service BuilderSEGW)中的 EPM_REF_APPS_SHOP 项目。

  5. SAP Easy Access 屏幕中,搜索 SAP Gateway Service Builder 或启动事务 SEGW

  6. 选择 Open Project

  7. Project 字段中,输入 EPM_REF*

  8. 打开值帮助(F4)。

  9. 双击 Project**EPM_REF_APPS_SHOP**。

  10. 选择 ExecuteF8)。

  11. 检查 EPM_REF_APPS_SHOP 项目。

任务 2:在 SAP Fiori Launchpad 中调试 SAPUI5 应用的 ABAP 代码

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

步骤

  1. 在方法 PRODUCTS_GET_ENTITYSET 中设置外部断点,该方法属于您 S4H 上的类 EPM_REF_APPS_SHOP

  2. SAP Gateway Service Builder 中,双击 EPM_REF_APPS_SHOP 项目的 Runtime Artifacts

  3. 右键单击 CL_EPM_REF_APPS_SHOP_DPC,然后选择 Go to ABAP Workbench

  4. 双击 PRODUCTS_GET_ENTITYSET 方法。

  5. 在菜单中,选择 Set/Delete External Breakpoint

  6. 在您的 SAP Fiori launchpad 中启动 SAP Fiori 参考应用 Shop,并在 ABAP Debugger 中查看代码。

  7. SAP Fiori launchpad 中,选择 Reference Apps 页面中的 Shop 磁贴。

  8. ABAP Debugger 中,选择 Single Step

  9. 查看 ABAP 代码。

  10. 在菜单中,选择 BreakpointsDelete all BPs

  11. 选择 Continue