Fiori扩展:可以覆盖实用程序/帮助程序文件吗?

2020-09-12 14:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我扩展了Fiori Standard应用程序。 到目前为止,我成功地用其他列扩展了应用程序表,更改了服务,向应用程序添加了本地UI模型,并添加了其他自定义操作(按钮等)。

问题:

但是,除此之外,我还想修改一个保存在帮助文件/实用工具中的函数(在Utility.js中调用)。 基本上,该功能处理启动时显示的一些默认值。 棘手的是,utility.js及其函数在应用程序启动时被调用。 此外,该实用程序不是"正式"扩展概念的一部分,并且在启动扩展向导时未作为视图或控制器列出。

目前已应用的方法:

试图解决该问题,我在清单属性中添加了要手动替换的实用程序文件。 我还复制了原始的utility.js文件并修改了该功能。 没运气。

我也试图在加载component.js文件时直接调用实用程序文件,以覆盖原始文件。 不!

最后但并非最不重要的一点是,我尝试使用控制器挂钩(onDataReceived)调用修改后的函数(在修改后的Utility.js中),希望在加载所有业务数据后更改标准行为。 类似于在源代码中覆盖格式化程序时的工作方式( https://blogs.sap.com/2015/07/27/overriding-source-files-in-the-util-folder-when-extendingcustomising- fiori-apps /)。 没有成功!

问题:

到目前为止,没有一种方法可行。 现在,我想知道是否有可能覆盖在应用程序启动时加载的实用程序中的功能

欢迎任何提示。 谢谢!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我扩展了Fiori Standard应用程序。 到目前为止,我成功地用其他列扩展了应用程序表,更改了服务,向应用程序添加了本地UI模型,并添加了其他自定义操作(按钮等)。

问题:

但是,除此之外,我还想修改一个保存在帮助文件/实用工具中的函数(在Utility.js中调用)。 基本上,该功能处理启动时显示的一些默认值。 棘手的是,utility.js及其函数在应用程序启动时被调用。 此外,该实用程序不是"正式"扩展概念的一部分,并且在启动扩展向导时未作为视图或控制器列出。

目前已应用的方法:

试图解决该问题,我在清单属性中添加了要手动替换的实用程序文件。 我还复制了原始的utility.js文件并修改了该功能。 没运气。

我也试图在加载component.js文件时直接调用实用程序文件,以覆盖原始文件。 不!

最后但并非最不重要的一点是,我尝试使用控制器挂钩(onDataReceived)调用修改后的函数(在修改后的Utility.js中),希望在加载所有业务数据后更改标准行为。 类似于在源代码中覆盖格式化程序时的工作方式( https://blogs.sap.com/2015/07/27/overriding-source-files-in-the-util-folder-when-extendingcustomising- fiori-apps /)。 没有成功!

问题:

到目前为止,没有一种方法可行。 现在,我想知道是否有可能覆盖在应用程序启动时加载的实用程序中的功能

欢迎任何提示。 谢谢!

付费偷看设置
发送
6条回答
Tong__Ming
1楼-- · 2020-09-12 15:02

我还尝试在component.js时直接调用实用程序文件
 正在加载文件,以覆盖原始文件。 不!

您怎么称呼?

天桥码农
2楼-- · 2020-09-12 15:20

嗨,

原始实用程序未被覆盖。 这就是问题。 我确实在应用启动时检查了网络标签,并且可以看到两个文件都已加载。 因此,基本上是原始文件(" sap_utility.js"和修改后的文件" utility.js"已加载)。

我在component.js中添加了以下语句:

 jQuery.sap.require(" namespace.util.utility"); 

问题是我要修改的功能被作为UI元素的一部分调用,该UI元素是在原始实用程序中构造的。 因此,sap_utility.js的开头基本上是:

 sap.ui.core.Element.extend()

其中包含方法,事件,属性以及所调用的函数,我喜欢 modify.As 据我所知,该实用程序是使用以下方法在应用程序的Configuration.js文件中构建的:

新的namespace.util.sap_utility();  

因此,目前尚不清楚我在应用程序启动时如何(以及是否)可以调用Utility.js而不是sap_utility.js。 Configuration.js文件在扩展项目中不可用。

d56caomao
3楼-- · 2020-09-12 15:11
 jQuery.sap.require(" namespace.util.utility"); 您应该加载sap的实用程序,而不是您的实用程序,然后开始进行操作。
shere_lin
4楼-- · 2020-09-12 15:26

嗨,Jun

好的,谢谢-可以理解。 但是,您可以详细说明一下吗?

如果此时正在加载sap实用程序。 如何访问和修改它?

悠然的二货
5楼-- · 2020-09-12 15:24

如果它是对象,utility。**** =想要的东西

如果它是类(功能),utility.prototype。***** =您想要的东西

灬番茄
6楼-- · 2020-09-12 15:15

嘿,君

我尝试在应用程序上加载sap_utility,开始将以下语句添加到component.js

 jQuery.sap.require(" namespace.util.sap_utility"); 

但是该应用程序正在崩溃,已经显示了一些东西:

无法从/sap/bc/ui5_ui5/ui2/ushell/resources/~20171109155700~/part1/part2/part3/util/sap_utility.js:404加载'part1/part2/part3/util/sap_utility.js' -未找到sap.ushell.renderers.fiori2.Shell.controller

没有机会达到可以修改实用程序的地步。 但是,对于其他功能,它运行良好(例如,覆盖了格式化程序中的函数)。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答