云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_东平网站建设_新注册优惠

小七 141 0

对于那些在部署和使用ABAP存储库中的自定义SAPUI5库方面遇到困难的人来说,这个博客可能会很有趣。我只是想和大家分享我的发现,因为我找不到有关这方面的官方文件。相反,我读了很多关于自定义库主题的博客文章,但它们都提出了不同的方法来实现它,其中一些是我想要避免的硬编码解决方案。在创建自定义库并在应用程序中重用它们的过程中,我苦苦挣扎了几天,终于找到了一些有趣的东西和引用它们的通用方法。最后我注意到,我总是对事情的发展有一个错误的假设。尤其是WebIDE、ABAP存储库、HCP和Fiori Launchpad之间的差异让我很困惑,因为它们的工作方式不同。

主要目标是实现以下场景:

创建一个库(组件id:我的自定义库)并将其部署到ABAP存储库创建应用程序(组件id:我的.custom.app)并将其部署到ABAP存储库消耗图书馆我的自定义库在应用程序中我的.custom.app应该从部署库的ABAP存储库中的位置自动加载库,因此不必使用任何硬编码的路径映射它应该作为一个独立的应用程序(没有Fiori启动板)工作,也可以在Fiori启动板内工作(我首先集中精力让它在没有Fiori启动板的情况下工作,但事实证明,我应该从后者开始)

当通过部署HCP的所有内容来测试这个场景时,它通过配置neo来工作-应用程序.json正确地。未检测到问题。我主要与ABAP库斗争,这个博客主要解决我在那里发现的问题。如果您对HCP部署感兴趣,我建议您查看Sergei的博客:https://blogs.sap.com/2016/12/15/sapui5自定义控件库web ide开发部署到hcp和本地abap存储库。-第1部分/

我曾经使用过以下工具和版本(可能也适用于旧版本,但在这里我没有太多经验):

SAP WebIDESAPUI5 1.52型SAP 7.50

在继续之前,您应该阅读Nabi的以下博文,因为有必要了解应用程序索引必须在SAP系统中正常工作才能正常工作:

https://blogs.sap.com/2017/11/18/the-ui5-app-index-a-demo-using-sap-web-ide-full-stack-to-clone-a-github-repo-build-via-grunt/

应用程序索引,SAP知道……

部署了哪些组件和库,他们有哪些依赖关系在哪里可以找到系统中的每个组件和库(ICF服务的路径)

首先,我在WebIDE中创建了两个项目,一个用于应用程序,一个用于库。这些项目基于SAP提供的模板,我建议使用它们。应用程序基于模板"SAPUI5 application",库基于模板"sapfiori library"。它们都带有Grunt构建,确保部署的应用程序和库具有正确的文件和结构。下面的截图显示了我在WebIDE中使用的模板。

下一步我们要做的是在我们的应用程序中引用库。因此,在清单.json"申请文件。不必在中输入任何硬编码的"resourceroots"路径或其他内容索引.html.

之后,您可以使用WebIDE将库和应用程序部署到ABAP存储库。应用程序和库都部署为BSP应用程序。无论库的名称如何以及它在ABAP存储库中的位置如何,到它的真正路径应该稍后通过组件id(在我们的例子中)来确定我的自定义库"). 通过右键单击项目并选择"Deploy>deploytosapui5abap Repository",可以在WebIDE中完成部署。按照向导对话框中的步骤操作。

在我的例子中,应用程序是作为"zmycustomapp"部署到的https://abap.mycompany.com/sap/bc/ui5\u ui5/sap/zmycustomapp,库作为"zmycustomlib"部署到https://abap.mycompany.com/sap/bc/ui5\u ui5/sap/zmycustomlib

部署成功后,您应该按照Nabi的建议,使用"ui5\u App\u info"服务查看图书馆的应用程序索引和应用程序(详情请参阅上述Nabis帖子):

https://abap.mycompany.com/sap/bc/ui2/app\u index/ui5\u app\u info?身份证=我的自定义库https://abap.mycompany.com/sap/bc/ui2/app\u index/ui5\u app\u info?身份证=我的.custom.app

请确认应用程序的结果应提及库作为其依赖项之一!属性"url"应该提到库的路径,在我的例子中是"sap/bc/ui5\ui5/sap/zmycustomlib"。如果一切顺利,我们可以开始测试应用程序。

我做的第一件事是检查它是否在没有Fiori启动板的情况下工作。我只是打电话给ICF服务,请求索引.html:

https://abap.mycompany.com/sap/bc/ui5\u ui5/sap/zmycustomapp/index.html

您应该注意到库没有加载,但是所有的SAP库如"SAP.m"等都加载成功。在调试器中,您应该看到一个请求,该请求试图加载库"我的自定义库":

https://abap.mycompany.com/sap/bc/ui5\u ui5/sap/zmycustomapp/resources/my/custom/lib/library.js

在控制台你会看到加载失败:

这是我很困惑的地方,因为所有的SAP库都已成功加载,这意味着可以以某种方式解析它们的"../resource/SAP/m"/图书馆.js"请求。我认为它也应该解决来自我的自定义库的请求,但事实并非如此。但我的应用程序索引是正确的,正如Nabi解释的那样(https://blogs.sap.com/2016/12/20/sapui5自定义控件库web ide开发部署到hcp和本地abap存储库。-第2部分/)我们知道SAP将它们的库存储在MIME存储库中,这与我们自己的自定义库不同作为BSP应用程序。我的假设是,解析库必须存在于后端,确实如此,但不幸的是,只有MIME存储库中的SAP库才存在。ICF服务节点"/sap/bc/ui5\u ui5"定义了http处理程序,其中一个(我认为是/ui5/CL\u ui5\u http\u HANDLER2)包含解析库路径的逻辑,如"../resource/sap/m"/图书馆.js"通过查找MIME存储库的内容(在与我的同事进行调试期间),我们看到有一个表,云服务器网站,其中包含所有SAP库列出,但不是我们自己的)。