读取的Odata:无法读取未定义的"已加载"属性

2020-09-09 23:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在部署到SAP Clou...

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

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


嗨,

在部署到SAP Cloud Platform并注册到SAP Fiori启动板的sapui5应用程序中出现问题。

我在manifest.json中定义了两个数据文件:mainService(xsodata)和backendService(来自连接到ECC后端的OData Provisioning服务中的odata)。

在首次应用程序加载时,将显示来自两个服务的数据。 回到启动板,然后再次启动我的应用程序时,不会检索到来自backendService的数据。

代码:

 this.getModel(" backend")。read(
 "/img/*********('" + oResponseUser。***** +"')",{
 成功:成功,
 错误:fError
 }
 );
 

错误(仅在返回启动板并再次启动应用程序之后):

未捕获(已承诺)TypeError:无法读取未定义的属性"已加载"
     在builder.y._processRequest(ODataModel-dbg.js:4110)处
     在builder.y.read(ODataModel-dbg.js:4625)处
     在f._loadModelUser(App.controller.js?eval:1)==>我的.read()调用在哪里
     在builder.b._callListener(EventBus-dbg.js:232)
     在builder.b.publish(EventBus-dbg.js:219)
     在f._onBindingChange(Detail.controller.js?eval:1)
     在builder.b.fireEvent上(EventProvider-dbg.js:228)
     在构造函数中B._fireChange(Binding-dbg.js:277)
     在builder.O._fireChange(ODataContextBinding-dbg.js:343)
     在ODataContextBinding-dbg.js:101
 

在我的manifest.json中:

"数据源":{
 " mainService":{
 " uri":"/*******/***.xsodata/",
 " type":" OData",
 "设置":{
 " odataVersion":" 2.0",
 " localUri":" localService/metadata.xml"
 }
 },
 " backendService":{
 " uri":"/img/odata/*****/**** _ SRV; v = 1/",
 " type":" OData",
 "设置":{
 " odataVersion":" 2.0",
 " localUri":" localService/**** _ SRV/metadata.xml"
 }
 }
 }
 
"型号":{
 " i18n":{
 " type":" sap.ui.model.resource.ResourceModel",
 "设置":{
 " bundleName":" *******。i18n.i18n"
 }
 },
 "":{
 " dataSource":" mainService",
 " preload":是的,
 "设置":{
 " disableHeadRequestForToken":true
 }
 },
 "后端":{
 " dataSource":" **** _ SRV",
 " preload":是的,
 "设置":{
 " loadAnnotationsJoined":是的,
 " defaultOperationMode":"服务器",
 " defaultBindingMode":" TwoWay"
 }
 }
 }
 

你能帮我吗?

干杯

严重

2条回答
吹牛啤
2020-09-10 00:21 .采纳回答

我找到了解决方案。 我的方法getModel在我的BaseController中:

 getModel:函数(sName){
 返回this.getView()。getModel(sName);
 },
 

对于OData模型,我创建了一个新函数:

 getODataModel:函数(sName){
 返回this.getOwnerComponent()。getModel(sName);
 },
 

从现在开始,每个OData调用都使用getODataModel进行,并且由于我使用getOwnerComponent进行调用,因此模型不再被破坏。

希望它会有所帮助。

干杯

严重

一周热门 更多>