浅谈 SAP UI5 OData 模型构造函数的输入参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈 SAP UI5 OData 模型构造函数的输入参数相关的知识,希望对你有一定的参考价值。

我们可以在 SAP UI5 应用里使用如下的代码来创建一个 OData 模型实例:

this.oVocabularyModel = new ODataModel("/sap/opu/odata/SAP/vocabulary_srv/");

这里传入一个 OData 服务的 url 作为 ​​ODataModel​​ 构造函数的输入参数。

ODataModel 的依赖,通过如下代码引入:​​sap/ui/model/odata/v2/ODataModel​

浅谈

这个构造函数的参数如下:

new sap.ui.model.odata.v2.ODataModel(vServiceUrl, mParameters?)
  • vServiceUrl:用于请求数据的服务的基本 URI; 此处附加的其他 URL 参数将附加到每个请求中。 如果传递一个对象,它将被解释为参数对象(第二个参数)。 那么 mParameters.serviceUrl 就变成了强制参数。
  • mParameters:可选参数,是一个键值对。可以包含下列属性:

(1) annotation:应从中加载注释元数据的 URL(或 URL 数组)

(2) bindableResponseHeaders:设置此数组以通过实体的 ​​__metadata/headers​​ 属性使自定义响应标头可绑定

(3) canonicalRequests:

模型是否尝试计算规范 URL 以请求数据。

例如: 应用程序以具有绝对绑定路径 ​​/SalesOrderSet("1")​​ 的表单显示销售订单的详细信息。该表单为具有相对绑定路径 ToLineItems 的销售订单行项目嵌入了一个表。如果用户选择了一个销售订单行项目(例如项目“10”),则该销售订单行项目的详细信息以另一种形式显示,该表单还包含一个销售订单行项目计划表,其中包含相对绑定路径 ToSchedules。

如果 canonicalRequests 参数的默认值为 false,则 OData 模型将通过以下请求请求销售订单行项目的详细信息表单的数据:

  • ​GET /<serviceUrl>/SalesOrderSet("1")/ToLineItems(SalesOrderID="1",ItemPosition="10")​
  • ​GET /<serviceUrl>/SalesOrderSet("1")/ToLineItems(SalesOrderID="1",ItemPosition="10")/ToSchedules​

一些后端实现不支持资源 URL 中的多个导航属性。在这种情况下,请将 canonicalRequests 参数设置为 true。然后,OData 模型将长资源 URL 转换为规范 URL,并使用以下请求请求销售订单行项目的详细信息表单的数据:

  • ​GET /<serviceUrl>/SalesOrderLineItemsSet(SalesOrderID="1",ItemPosition="10")​
  • ​GET /<serviceUrl>/SalesOrderLineItemsSet(SalesOrderID="1",ItemPosition="10")/ToSchedules​

以上是关于浅谈 SAP UI5 OData 模型构造函数的输入参数的主要内容,如果未能解决你的问题,请参考以下文章

SAP UI5 Page 控件的构造函数参数讲解

使用 SAP Fiori Tools 自带的代理服务器解决本地运行的 SAP UI5 应用访问远端服务遇到的跨域问题试读版

如何自行给指定的SAP OData服务添加自定义日志记录功能

如何修改 SAP ABAP OData 模型,使其支持 $expand 操作试读版

揭开SAP Fiori编程模型规范里注解的神秘面纱 - @OData.publish

SAP Abap三种方法进行SAP ODATA数据服务发布(DDICRFCCDS)