点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我想设置或更改默认模型中的" serviceUrlParams",该默认模型是根据" manifest.json"中的信息自动生成的。
以下链接引用了显示解决方案的旧帖子,但该解决方案在我的情况下不起作用: https://archive.sap.com/discussions/thread/3903730
我在" Component.js"中的函数" init"中添加了以下代码(如文章中所述),但这没有任何效果,因为默认模型"已经存在":
var oManifestUi5 = this.getMetadata()。getManifestEntry(" sap.ui5"); oManifestUi5.models [""]。settings.serviceUrlParams [" sap-client"] = _sapClient;
默认模型必须在函数" init"之前创建,因此它已经存在,我可以调用
this.getModel();
要获取对模型的引用并进行更改,问题是" serviceUrlParams"是私有成员,无法在运行时进行更改。
有人可以解决吗?
最诚挚的问候,奥利弗
嗨,奥利弗,
我找到了解决方法。
在Component.js中,您应该覆盖函数" initComponentModels"。
在我的情况下,我需要一个Metadata Hash参数来知道是否需要从缓存或服务器中检索元数据。
这是我的代码。
但是,如果您只需要更改参数" sap-client",则这不是正确的方法。 (在我以前的文章中,我没有经验,也不知道事情如何运作)。 您可以将参数" sap-client"更改为网址参数。
因此,如果您的网站 http://my.website.com 写下" http://my.website.com ?sap-client = 100" >
我希望这会有所帮助。
最好的问候
艾德里安
太好了! 谢谢。
嗨,艾德里安,
您的解决方案有效,但是我不知道这是否是重写函数" initComponentModels"的最佳方法,因为当函数在较新的SAPUI5-Version中更改时,这可能是个问题。
我找到了另一个对我有用的解决方案:您可以在运行时在组件的"初始化"功能中的模型上设置自定义标头:
在ABAP网关系统中,我可以读取以下自定义标头:
如果有人有更好的解决方案,请告诉我。
橄榄
一周热门 更多>