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

SAPUI5, Datasource from 2 different URL

我是 SAPUI5 的新手,目前我正在构建一个 SAPUI5 应用程序并从后端使用 ODATA 服务。当我创建应用程序和 select 服务时 URL。 服务 URL 如下附件。

但是,现在在我的应用程序中,我必须添加另一个数据源,总计 url。在我的manifest.json。我只是可以更改相同 url 的不同导航,如下所示

"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 数据源?

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

你有 documentation here

下面是截图。

此外,如果您想从云端访问您私有网络中的NW系统,您需要设置一个Cloud connector。检查 documentation here

SAP 云平台配置

一旦你配置了你的目的地并且你的数据源块已经在那里(如你在屏幕截图中所见),你需要创建 2 个 OData 模型。所以在你的 metadata.json 文件中,转到底部,有一个名为 'models' 的节点,你可能有这样的东西:

    "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”,如果是 read/write-able.
  • ,则设置为“TwoWay”

然后您只需按照第一个要点中所述,使用您选择的模型名称来定义与该模型的所有绑定。例如:

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

但请注意此架构,根据 SAP 最佳实践,您应该始终尝试仅使用一种 OData 服务。拥有多个可能是维护起来的噩梦,特别是如果您订阅模型 change/dataRequested/dataReceived 事件或使用 metadataFailed/metadataLoaded 事件进行错误处理,因为您必须为两个模型管理它们并且它们是异步的。 ..