本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?

简介: 这是 Jerry 2021 年的第 29 篇文章,也是汪子熙公众号总共第 300 篇原创文章。之前 Jerry 的两篇文章,分别介绍了如何在本地使用 Visual Studio Code 创建一个 SAP Fiori Elements 应用,以及使用 Fiori Elements Controller Extension 理念,对该 Fiori Elements 应用进行二次开发的具体步骤。

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


之前 Jerry 的两篇文章,分别介绍了如何在本地使用 Visual Studio Code 创建一个 SAP Fiori Elements 应用,以及使用 Fiori Elements Controller Extension 理念,对该 Fiori Elements 应用进行二次开发的具体步骤。


在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用


答网友提问:使用 SAP Fiori Tools 创建的 Fiori Elements 应用,如何进行二次开发?


本地开发完成之后,新的问题顺理成章就来了:如何将该本地应用,部署到远程的 ABAP 服务器上?


image.png


如果是在以前的 SAP Cloud Platform (现在改名叫 SAP Business Technology Platform) Neo 环境提供的 Full Stack WebIDE 里开发 SAP Fiori Elements 应用,那么直接使用 SAP WebIDE 里的右键菜单,选择 “Deploy to SAPUI5 ABAP Repository” 即可完成部署。


image.png


而通过 Visual Studio Code 进行 SAP Fiori Elements 应用的本地开发,右键菜单里并没有部署相关的选项:


image.png


不过,我们仔细观察项目工程文件夹里的 package.json,还是发现了一些关于部署的线索。在该文件的 scripts 标签里,包含 deploy 和 deploy-config 两个指令。


image.png


先执行 npm run deploy 命令,这条命令的内容是 fiori verify,即进行部署前的校验工作。校验的结果,在本地检测不到部署配置信息,这样 Visual Studio Code 里安装的 SAP Fiori tools, 根本不知道开发人员期望将该应用,部署到哪个 ABAP 服务器上。


image.png


因此按照上图橙色的提示信息,运行下列命令行,生成部署配置信息。


npm run deploy-config


如果遇到下列错误消息:


Yeoman is not installed or available in your executable path. Please check your configuration or use npm/yarn to install it globally.


说明 Yeoman 没有安装,使用 npm install --global yo 进行安装即可。


image.png


之后重新运行命令行:


npm run deploy-config


首先选择部署目标类型为 ABAP 服务器。


image.png


接下来,需要指定待部署到的 ABAP 服务器的 url,client ID,部署到服务器上生成的 BSP 应用名称,存放该应用的 ABAP 开发包名称等信息。


image.png


我们在这个命令行向导里输入的内容,会维护到一个名为 ui5-deploy.yaml 的配置文件里。因此,此处我们可以一路回车,待结束向导后,在 Visual Studio Code 里继续编辑 ui5-deploy.yaml 即可。


npm run deploy-config 命令执行完毕后,生成了对应包含部署明细信息的 ui5-deploy.yaml 文件,同时 package.json 文件里,deploy 命令的内容,也从之前的 fiori verify,自动替换成了如下内容:


image.png


下图是我修改过的 ui5-deploy.yaml 文件。整个文件由 SAP Fiori tools 自动生成,我们只需要修改图中 1~3 区域的内容。


image.png


部署 ABAP 服务器的主机名和端口号,以及 client ID. 我部署的 ABAP 服务器为 ER9/001,采用 basic Authentication 方式认证。


credentials 区域,维护我登录 ER9/001 的用户名和密码。因为该 yaml 文件需要上传到 Github 上进行版本管理,故不应直接维护用户名和密码等敏感信息,而是将这些信息维护到一个叫做 .env 的文件里,然后在 ui5-deploy.yaml 里引用该 .env 文件。


image.png


部署到 ABAP 服务器上生成 BSP 应用的名称,以及用来存储该 BSP 应用的 ABAP 开发包名称。

一切就绪之后,执行命令行:


npm run deploy


我第一次试图部署时,遇到了下图的错误消息:


Invalid URL: /sap/opu/odata/UI5/ABAP_REPOSITORY_SRV


image.png


把该错误消息粘贴到 Google 里,很快找到了错误原因。


SAP 开发了一个标准的 OData 服务 /UI5/ABAP_REPOSITORY_SRV, 能够将本地 SAP UI5 应用打成的 zip 压缩包上传到 ABAP 服务器,并生成对应的 BSP 应用。


image.png


关于该 OData 服务的更多说明,请参阅 SAP 帮助文档:


https://sapui5.hana.ondemand.com/#/topic/a883327a82ef4cc792f3c1e7b7a48de8.html


SAP note 2999557 提供了激活该 OData 服务的步骤:


image.png


执行事务码 /IWFND/MAINT_SERVICE, 将 /UI5/ABAP_REPOSITORY_SRV 添加到服务列表中。


image.png


注意,该 OData 服务仅在 SAP_UI 753 及其以上的版本才可用。


对于 SAP_UI 753 以下的版本,可以尝试使用报表 /UI5/UI5_REPOSITORY_LOAD 手动上传。

image.png


npm run deploy 命令执行成功后,命令行会打印出部署到 ABAP 服务器上的 SAP Fiori Elements 应用可供访问的 url:


image.png


粘贴到浏览器后即可访问这个运行在 ABAP 服务器上的 SAP Fiori Elements 应用了:


image.png


在 ABAP 服务器 ER9/001 上生成的 BSP 应用如下图所示:


image.png


至于如何将该 Fiori Elements 应用配置成 ABAP 服务器上 Fiori Launchpad 的一个 tile,这是另外一个话题了。我们后续继续分享。


感谢阅读。


更多阅读


SAP Fiori应用索引大全


Fiori Fundamentals和SAP UI5 Web Components


为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动并运行在浏览器里


一步步把SAP GUI的事务码配置到SAP Fiori Launchpad里


SAP UI5应用开发人员了解UI5框架代码的意义


SAP UI5 module懒加载机制


SAP UI5 控件渲染机制


HTML原生事件 VS SAP UI5 Semantic事件


SAP UI5控件元数据的元数据实现


SAP UI5控件的实例数据修改和读取逻辑


SAP UI5控件数据绑定的实现原理


SAP UI5控件数据绑定的三种模式:One Way, Two Way和OneTime实现原理比较


SAP UI5 OData谣言粉碎机:极短时间内发送两个Odata request,前一个会自动被cancel掉吗


SAP UI5和Angular的函数防抖(Debounce)和函数节流(Throttle)实现原理介绍


SAP UI渲染模式:客户端渲染 VS 服务器端渲染


SAP UI的加载动画效果和幽灵设计(Ghost Design)


介绍一个能开发简单SAP UI5应用的在线IDE:StackBlitz


SAP CRM Fiori 应用和 SAP Commerce Cloud (电商云) UI 如何通过调整CSS来改变UI显示风格


SAP 产品一脉相承的 UI 增强思路,在 SAP Commerce Cloud(电商云) UI 增强实现中的体现


如何分辨 SAP Fiori Launchpad 里的真假 Fiori 应用


在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用


SAP Fiori 应用里图标(Icon)的渲染原理和使用技巧


答网友提问:使用 SAP Fiori Tools 创建的 Fiori Elements 应用,如何进行二次开发?


相关文章
|
21天前
|
安全 Linux 文件存储
如何在本地服务器部署TeslaMate并远程查看特斯拉汽车数据无需公网ip
如何在本地服务器部署TeslaMate并远程查看特斯拉汽车数据无需公网ip
|
1天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
10 1
|
3天前
|
Devops jenkins 网络安全
【DevOps】(四)jekins服务器ssh部署
【DevOps】(四)jekins服务器ssh部署
11 1
|
4天前
|
存储 安全 网络协议
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
13 0
|
4天前
|
安全 Linux 网络安全
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
|
5天前
|
弹性计算 运维 数据安全/隐私保护
【雾锁王国开服】阿里云一键部署雾锁王国联机服务器详细教程
阿里云提供雾锁王国服务器搭建教程,借助计算巢服务,用户可在3分钟内创建Enshrouded游戏服务器。8核32G服务器1个月109元,3个月327元;4核16G10M带宽1个月30元,3个月90元。需先注册并实名认证阿里云账号,然后通过傻瓜式一键部署入口进行购买和设置,包括地域、购买时长、服务器参数等。部署完成后,分享服务器信息给游戏伙伴,即可开始游戏。详细教程和更多配置信息可在阿里云ECS产品页查看。
23 0
|
9天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
45 0
|
11天前
本地部署Jellyfin影音服务器并实现远程访问影音库-2
本地部署Jellyfin影音服务器并实现远程访问影音库
|
11天前
|
Linux 网络安全 文件存储
本地部署Jellyfin影音服务器并实现远程访问影音库-1
本地部署Jellyfin影音服务器并实现远程访问影音库
|
17天前
|
域名解析 网络协议 安全
服务器部署访问出错的原因和解决办法
部署到服务器后无法访问可能是由于配置错误、权限问题或网络设置不当。解决办法包括检查服务器配置文件、确保文件路径正确、调整权限设置以及检查防火墙和端口设置。
33 4