SAPUI5,来自2个不同URL的数据源

时间:2018-07-23 01:25:16

标签: odata sapui5 datasource

我是SAPUI5的新手,目前正在构建SAPUI5应用程序,并使用后端的ODATA服务。当我创建应用程序并选择服务URL时。 服务网址如下附件。

enter image description here

但是,现在在我的应用程序中,我必须添加另一个具有完全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?

1 个答案:

答案 0 :(得分:2)

您需要在SAP Cloud Platform主控室中创建目标。 根据您的屏幕截图,您已经在使用一个名为“ odata-odata”的文件。

您有documentation here

以及下面的屏幕截图。

此外,如果要从云访问专用网络中的NW系统,则需要设置云连接器。检查documentation here

SAP Cloud Platform配置

enter image description 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":{ ... }

位置:

  • “ dataModel2”是第二个模型的名称(选择一个您喜欢的模型,它不必是dataModel2)。
  • 确保"dataSource": "mainService2"使得此模型指向您的第二个数据源
  • 在设置中,您可以根据需要设置模型。可能最重要的是“ defaultBindingMode”。如果只能读取,请将其设置为“ OneWay”,如果可以读取/写入,则将其设置为“ TwoWay”。

然后,您只需要按照第一个要点所述,使用所选的modelName定义此模型的所有绑定。例如:

<Text text="{dataModel2>/path/to/my/property"}"></Text>

但是请谨慎使用此体系结构,根据SAP最佳实践,您应该始终尝试仅使用一项OData服务。拥有多个可能是一个噩梦,特别是如果您订阅模型更改/ dataRequested / dataReceived事件或使用metadataFailed / metadataLoaded事件进行错误处理,则尤其如此,因为您将必须为两个模型管理它们并且它们是异步的...