【问题标题】:SAPUI5, Datasource from 2 different URLSAPUI5,来自 2 个不同 URL 的数据源
【发布时间】:2018-07-23 01:25:15
【问题描述】:

我是 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?

【问题讨论】:

    标签: odata sapui5 datasource


    【解决方案1】:

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

    你有documentation here

    还有下面的截图。

    此外,如果您想从云端访问私有网络中的 NW 系统,则需要设置云连接器。检查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”,如果它是可读写的,则将其设置为“TwoWay”。

    然后,您只需使用您选择的模型名称定义与此模型的所有绑定,如第一个项目符号中所述。例如:

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

    但是要小心这种架构,根据 SAP 最佳实践,您应该始终尝试只使用一个 OData 服务。维护多个可能是一场噩梦,特别是如果您订阅模型更改/dataRequested/dataReceived 事件或使用 metadataFailed/metadataLoaded 事件进行错误处理,因为您必须为两个模型管理它们并且它们是异步的......

    【讨论】:

    • 感谢您的评论。但我需要做的是我需要在一个 SAPUI5 应用程序中访问 odata 数据源和新数据源
    • 好的,我猜你已经正确配置了目的地。然后,您需要添加使用第二个数据源的第二个 OData 模型。我已经用更多细节编辑了我的答案
    • 注明。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 2021-08-07
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多