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”的软件。
下面是截图。
此外,如果您想从云端访问您私有网络中的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 事件进行错误处理,因为您必须为两个模型管理它们并且它们是异步的。 ..
我是 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”的软件。
下面是截图。
此外,如果您想从云端访问您私有网络中的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 事件进行错误处理,因为您必须为两个模型管理它们并且它们是异步的。 ..