这是 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-sdk/docs/js/overview-cloud-sdk-for-javascript

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

SAP S/4HANA Cloud SDK 入门介绍相关推荐

  1. SAP S/4HANA OData Mock Service 介绍

    官网 OData Mock Service 此存储库还包含一个简单的基于 Node.js 的服务器,它代表分支模拟服务器中的 OData 模拟服务器. 该服务器可以在不访问 SAP S/4HANA 系 ...

  2. SAP S/4HANA Cloud 上 in-app 和 side-by-side 两种扩展方式的介绍

    我们可以使用 SAP 提供的一个工具: SAP Extensibility Explorer for SAP S/4HANA Cloud 可扩展性涵盖了广泛的主题,使客户和合作伙伴能够使标准业务软件适 ...

  3. SAP S/4HANA Cloud 系统集成的一些场景介绍

    如下图所示:SAP S/4HANA 集成有下列这些类型: 用户移动设备同 SAP 云的集成 SAP 云系统之间的集成 SAP 云系统同物联网解决方案的集成 SAP On-Premises 解决方案同 ...

  4. SAP License:SAP S/4HANA Cloud介绍

    SAP作为世界顶尖的独立软件供应商继R2.R3.ECC后推出了第四代ERP---S/4HANA,与众不同的是新一代的SAP使用了由韩国团队研发的HANA内存运算数据库,作为S/4核心的HANA数据库大 ...

  5. SAP S/4HANA Cloud云培训及云认证 | 易拓独家

    什么是SAP S/4HANA Cloud云 SAP S/4HANA Cloud 是一款基于人工智能和分析技术的模块化 ERP 云软件,功能齐全,满足各种业务需求. 借助 SAP S/4HANA Clo ...

  6. SAP S/4HANA Cloud PA考试指南

    S4HC PA考试指南 前言: 该指南的目的是为了帮助对S4HC PA考试有兴趣的读者,让他们能系统且有效率的学习相关模块的PA考试的知识,同时告诉他们哪些是需要重点关注的内容以及相关的考试注意事项, ...

  7. (四)SAP S/4HANA Cloud基本系统操作

    前言: 本文的目的是阐述关于SAP S/4HANA Cloud如何进行基本的系统操作,包括从最开始的登录账号再到页面的基本功能介绍到最后的如何自定义系统页面.本文会以图文的方式进行详细说明,来帮助用户 ...

  8. SAP License:SAP S/4HANA Cloud [ERP 云]

    产品文档 SAP Help Portal 提供了有关产品上手.实施.可扩展性等方面的信息. 用户管理 只需要网络连接.URL 和访问权限,用户就可以在任意设备上通过 Web 浏览器访问 SAP S/4 ...

  9. SAP S/4HANA Cloud (PCE)私有云版本有哪些优势?

    SAP S/4HANA Cloud私有云版本(PCE)于2021年上半年在华落地,为企业提供创新和新的业务价值.它的推出,满足当前SAP现有客户从ECC版本迁移到云中的实施需求,并为具备复杂业务流程的 ...

最新文章

  1. 20170728上课笔记
  2. 四.Android adb命令(持续更新...)
  3. Python基础教程:list深拷贝和浅拷贝
  4. 利用计算机提高数学课堂教学,计算机技术在数学课堂教学中的应用微探
  5. Python基础--列表
  6. NIPS 2017论文解读 | 基于对比学习的Image Captioning
  7. 移动硬盘上划分linux分区,Linux下磁盘分区和移动硬盘的挂载方法有哪些?
  8. 教程干货——零基础创建简单的在线审批流程
  9. WEB前端学习五 js什么是引用类型
  10. IIS 6.0 访问aspx页面出现404错误
  11. 【渝粤教育】国家开放大学2018年秋季 0242-21T机械制图 参考试题
  12. cvThreshold() 阈值化
  13. EXCEL图表数据源自动更新方法
  14. 安卓UI相关开源项目库汇总
  15. 联想G480安装CentOS电缆驱动器
  16. 软件工程复习提纲——第六章
  17. hdu1197(十进制十六进制十二进制位数和)
  18. jass Timer详解
  19. kali2020.4安装中国版Firefox
  20. 印度要被宰 俄售印的航母和苏-30战斗机涨价!zt

热门文章

  1. MS15-035 EMF文件处理漏洞分析与POC构造
  2. 404错误,500错误页面的代表意思
  3. 脚本监控网络状态,输出日志并归档(V2)
  4. 机器人学 —— 机器人视觉(极几何)
  5. Java的Scanner类的next与nextLine用法区别
  6. 关于Oracle数据库中行迁移/行链接的问题(一)
  7. JDK、JRE、JVM到底是什么
  8. MySQL8.0.16主从同步
  9. 微信支付教程系列之扫码支付
  10. Mac中MacPorts安装和使用 MacPorts简介