乐趣区

关于sap:SAP-S4HANA-Cloud-SDK-入门介绍

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

Jerry 之前的文章 SAP Fiori 利用索引大全 已经介绍过一个网站,可能失去 SAP 所有 Fiori 利用列表。

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


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

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

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

SAP S/4HANA 规范的 OData 服务,在 SAP API Business Hub 上可能查问和浏览其明细。


这些 OData 服务,除了用于 SAP S/4HANA 规范 Fiori 利用外,也能够被 SAP Partners 在第三方利用中调用,不便地同 SAP S/4HANA 集成。例如,Partners 能够用本人相熟的编程语言进行二次开发,而后将利用部署到 SAP BTP 上,即所谓的 Side-by-Side 扩大形式。


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

为了防止以上这些毛病,进步 Partners 同 SAP S/4HANA OData 服务集成时的开发效率,SAP 公布了 SAP S/4HANA Cloud SDK. 所谓 SDK(Software Development Kit),即一系列开发工具库的汇合,蕴含开箱即用的模型和 API.

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

目前 S/4HANA Cloud SDK 反对 Java 和 JavaScript 两种编程语言。在 SAP API Business Hub 上,咱们能够下载 Java 版本的 SDK:

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

运行以下命令装置 SDK:

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

之后应用命令行新建一个我的项目:

sap-cloud-sdk init my-sdk-project

主动生成的我的项目文件构造如下图所示:

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

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 包:

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

执行上面的命令行,将其装置到本地:

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

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

上面是应用 Cloud SDK 查问 API Hub Sandbox 零碎上前两条 Business Partner 数据的残缺代码,其中外围代码也就十行左右:

  • 第 2 行代码,从下载的 Business Partner VDM 包里,导入名为 BusinessPartner 的虚构数据模型
  • 第 15 行代码,调用 BusinessPartner 模型的 requestBuilder 办法,结构一个 OData 数据申请。再应用链式调用 getAll 和 top(2), 为结构的 OData 数据申请指定具体的指标:返回前两条数据。

不难看出,这里的代码没有任何间接操作 HTTP 的局部在内,而是更靠近自然语言的格调。一个没有开发背景的业务参谋,通过浏览也能大抵猜到这段代码的作用。

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

npm run start:dev

在浏览器里测试,可能胜利取回两条 Business Partner 数据:

OData 协定反对的操作,在 Cloud SDK VDM 里均有对应的办法。

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

执行成果:

OData 协定的 filter 指令,对应 SDK 的同名 filter 办法。

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

心愿本文能让大家对 SAP S/4HANA Cloud SDK 有一个最根本的意识。如果须要应用 SAP Cloud SDK 同 SAP S/4HANA Cloud 集成,倡议大家从 SAP 官网开始,循序渐进地学习。

感激浏览。

https://sap.github.io/cloud-s…

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

退出移动版