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

2020-09-12 14:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我扩展了...

         点击此处--->   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条回答
天桥码农
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文件在扩展项目中不可用。

一周热门 更多>

相关问答