SAP S/4HANA Cloud SDK 入门介绍

简介: SAP S/4HANA Cloud SDK 入门介绍

这是 Jerry 2021 年的第 48 篇文章,也是汪子熙公众号总共第 325 篇原创文章。


Jerry 之前的文章 SAP Fiori 应用索引大全 曾经介绍过一个网站,能够得到 SAP 所有 Fiori 应用列表。


到2021年7月18日为止,SAP 总共发布了 13268 个 Fiori 应用:

image.png


其中属于 SAP S/4HANA 且 UI 基于 Fiori Elements 开发的 Fiori 应用数字为:878.


image.png


这 878 个 Fiori 应用,Jerry 之前的很多文章都曾经提到过,其架构为前台界面采用 Fiori Elements 提供的 List Report, Object Type 等模板,后台由 OData 服务提供业务数据。


SAP Fiori Elements 公开课第一单元的视频


SAP S/4HANA 标准的 OData 服务,在 SAP API Business Hub 上能够查询和浏览其明细。


image.png

这些 OData 服务,除了用于 SAP S/4HANA 标准 Fiori 应用外,也可以被 SAP Partners 在第三方应用中调用,方便地同 SAP S/4HANA 集成。例如,Partners 可以用自己熟悉的编程语言进行二次开发,然后将应用部署到 SAP BTP 上,即所谓的 Side-by-Side 扩展方式。

image.png


OData 协议基于 HTTP,在使用 OData 服务执行业务数据的创建或者修改时,需要编程人员在 HTTP 层面操作 POST 请求的 body 内容,步骤繁琐且容易出错。比如下图是 Jerry 2019 年一个项目中用 Java 调用 SAP C4C OData 服务创建销售订单的测试代码片段,其中第88行变量 body,包含的就是手动拼接 HTTP Post 请求的负载内容,可读性很差且不易维护。


image.png


为了避免以上这些缺点,提高 Partners 同 SAP S/4HANA OData 服务集成时的开发效率,SAP 发布了 SAP S/4HANA Cloud SDK. 所谓 SDK( Software Development Kit),即一系列开发工具库的集合,包含开箱即用的模型和 API.


image.png


借助 SAP S/4HANA Cloud SDK,开发人员无需了解 S/4HANA OData 服务的设计明细,可以用类似自然语言的代码风格,调用 S/4HANA OData 服务,实现数据增删改查的需求。


目前 S/4HANA Cloud SDK 支持 Java 和 JavaScript 两种编程语言。在 SAP API Business Hub 上,我们可以下载 Java 版本的 SDK:


image.png


本文介绍 JavaScript 版本的 S/4HANA Cloud SDK.


image.png


运行以下命令安装 SDK:


npm install -g @sap-cloud-sdk/cli


image.png


之后使用命令行新建一个项目:


sap-cloud-sdk init my-sdk-project


自动生成的项目文件结构如下图所示:

image.png



生成的项目里,package.json 定义的依赖如下:


image.png


package.json 文件定义的依赖,除了 sap-cloud-sdk 本身外,还包括 nestjs, 这是一个用于构建高效且可扩展的 Node.js 服务器端应用的开发框架。


本文我们的目的是使用 SAP S/4HANA Cloud SDK 消费 API Business Hub Sandbox 系统中 Business Partner OData 服务。如果真实的需求是消费某个 SAP S/4HANA Cloud 系统的 OData 服务,只需要将代码里指向 API Hub 的 url,改成指向 S/4HANA Cloud tenant 即可。


前文提到,使用 Cloud SDK,开发人员无需了解 S/4HANA OData 设计细节,因为这些细节,被 Cloud SDK 里所谓的虚拟数据模型:Virtual Data Model,简称 VDM 所封装了。每一个 SAP S/4HANA OData 服务用到的数据模型,在 Cloud SDK 里都有对应的 npm 包进行封装,开发人员可以按需导入。


为了消费 Business Partner OData 服务,我们在 SAP 官网上搜索其 SDK npm 包:


image.png


根据关键字 partner 搜索,找到这个安装包,将其 id :@sap/cloud-sdk-vdm-business-partner-service 抄下来。


image.png


执行下面的命令行,将其安装到本地:


npm install @sap/cloud-sdk-vdm-business-partner-service


现在 package.json 里多了一个指向该包的依赖:

image.png


下面是使用 Cloud SDK 查询 API Hub Sandbox 系统上前两条 Business Partner 数据的完整代码,其中核心代码也就十行左右:


第2行代码,从下载的 Business Partner VDM 包里,导入名为 BusinessPartner 的虚拟数据模型


第15行代码,调用 BusinessPartner 模型的 requestBuilder 方法,构造一个 OData 数据请求。再使用链式调用 getAll 和 top(2), 为构造的 OData 数据请求指定具体的目标:返回前两条数据。


不难看出,这里的代码没有任何直接操作 HTTP 的部分在内,而是更接近自然语言的风格。一个没有开发背景的业务顾问,通过阅读也能大致猜到这段代码的作用。

image.png

本地命令行启动这个应用:

image.png


在浏览器里测试,能够成功取回两条 Business Partner 数据:

image.pngimage.png


OData 协议支持的操作,在 Cloud SDK VDM 里均有对应的方法。


比如OData 协议的 select 指令,只返回指定的字段,在 SDK 里对应了同名的 select 方法:


image.png


执行效果:


image.png

OData 协议的 filter 指令,对应 SDK 的同名 filter 方法。


下图代码的含义,代表只返回 BusinessPartnerCategory 字段值为 2 的前20条 BusinessPartner 数据:


image.pngimage.pngimage.png


希望本文能让大家对 SAP S/4HANA Cloud SDK 有一个最基本的认识。如果需要使用 SAP Cloud SDK 同 SAP S/4HANA Cloud 集成,建议大家从 SAP 官网开始,按部就班地学习。


感谢阅读。


https://sap.github.io/cloud-sdk/docs/js/overview-cloud-sdk-for-javascript

image.png

相关文章
|
29天前
|
开发者 数据处理 数据管理
SAP HANA 的不同类型
SAP HANA 的不同类型
38 9
SAP HANA 的不同类型
|
29天前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
20 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
2月前
|
Linux 开发工具 开发者
关于 SAP HANA 开发那些事
关于 SAP HANA 开发那些事
24 0
|
4月前
|
SQL 存储 数据可视化
SAP HANA 内存数据库不同类型的视图的应用场景介绍
SAP HANA 内存数据库不同类型的视图的应用场景介绍
56 0
|
29天前
|
数据库 存储 监控
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
17 0
什么是 SAP HANA 内存数据库 的 Delta Storage
|
25天前
|
安全 UED 开发者
SAP Commerce Cloud 配置项 refreshWithLock=false 的作用介绍
SAP Commerce Cloud 配置项 refreshWithLock=false 的作用介绍
20 0
|
25天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
18 0
|
29天前
|
Linux 数据库连接 数据库
如何在 Linux 系统下使用 PHP 和 ODBC 连接 SAP HANA
如何在 Linux 系统下使用 PHP 和 ODBC 连接 SAP HANA
17 0
|
29天前
|
数据库
SAP S/4HANA 系统的底层基石 - 通过实际的例子,介绍 CDS View 入门级的概念试读版
SAP S/4HANA 系统的底层基石 - 通过实际的例子,介绍 CDS View 入门级的概念试读版
8 0
SAP S/4HANA 系统的底层基石 - 通过实际的例子,介绍 CDS View 入门级的概念试读版
|
29天前
|
数据库 SQL 应用服务中间件
SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析
SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析
22 0
SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析