我是SAPUI5的新手,目前正在构建SAPUI5应用程序,并使用后端的ODATA服务。当我创建应用程序并选择服务URL时。 服务网址如下附件。
但是,现在在我的应用程序中,我必须添加另一个具有完全url的数据源。在我的manifest.json中。我只可以更改以下相同网址的导航
"dataSources": {
"mainService": {
"uri": "/sap/opu/odata/sap/SEPMRA_SHOP/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "localService/metadata.xml"
}
},
"mainService2": {
"uri": "/odata/V2/OData/OData.svc/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "localService/metadata.xml"
}
}
},
如何为SAPUI5应用程序添加不同的数据源URL?
答案 0 :(得分:2)
您需要在SAP Cloud Platform主控室中创建目标。 根据您的屏幕截图,您已经在使用一个名为“ odata-odata”的文件。
以及下面的屏幕截图。
此外,如果要从云访问专用网络中的NW系统,则需要设置云连接器。检查documentation here
一旦配置了目标并且已经在其中配置了dataSource块(如屏幕截图所示),则需要创建2个OData模型。因此,在您的metadata.json文件中,移至底部,然后有一个名为“模型”的节点,您可能会有类似以下的内容:
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
...
}
},
"": {
"type": "sap.ui.model.odata.v2.ODataModel",
"settings": {
"defaultOperationMode": "Server",
"defaultBindingMode": "OneWay",
"defaultCountMode": "Request"
},
"dataSource": "mainService",
"preload": true
},
"dataModel2": {
"type": "sap.ui.model.odata.v2.ODataModel",
"settings": {
"defaultOperationMode": "Server",
"defaultBindingMode": "OneWay",
"defaultCountMode": "Request"
},
"dataSource": "mainService2",
"preload": true
}
}
您需要添加块"dataModel2":{ ... }
位置:
"dataSource": "mainService2"
使得此模型指向您的第二个数据源然后,您只需要按照第一个要点所述,使用所选的modelName定义此模型的所有绑定。例如:
<Text text="{dataModel2>/path/to/my/property"}"></Text>
但是请谨慎使用此体系结构,根据SAP最佳实践,您应该始终尝试仅使用一项OData服务。拥有多个可能是一个噩梦,特别是如果您订阅模型更改/ dataRequested / dataReceived事件或使用metadataFailed / metadataLoaded事件进行错误处理,则尤其如此,因为您将必须为两个模型管理它们并且它们是异步的...