美文网首页js css html
通过一个实际例子,理解 SAP UI5 sap.ui.model

通过一个实际例子,理解 SAP UI5 sap.ui.model

作者: 华山令狐冲 | 来源:发表于2023-02-28 22:36 被阅读0次

本教程前三篇文章,我们详细介绍了 sap.ui.model.odata.v2.ODataModel 这个 API 提供的 read 方法的使用细节。

有朋友提出疑问,说对 SAP UI5 官网 里介绍的这个 read 方法的可选参数 mParameterscontext 字段有所疑问,想通过一个具体例子来学习其概念。

本文咱们就来学习这个 context 概念。

本文之前我们展示了 OData 协议支持的过滤操作 $filter 在 SAP UI5 OData API 中是如何调用的:

那么假设我想查询 id 为 10248 这个订单的详细数据。首先根据这个 url https://services.odata.org/V2/Northwind/Northwind.svc/$metadata 拿到 NorthWind OData 服务的元数据:

从中观察到 Order 模型的 key 为 OrderID. 那么我们如果想根据 key 字段来读取 OData 节点的数据,除了使用 $filter 操作符之外,有一种更加简便的访问方式,即直接将 key 字段值拼接在 Orders 这个 EntitySet 后面,完整 url 如下:

https://services.odata.org/V2/Northwind/Northwind.svc/Orders(10248)

我们仔细查看这个订单数据,发现了 Order_Details 这个节点,其数据默认没有在当前读取请求内被返回,仅仅返回了如果想读取该数据,需要使用的 url 为 https://services.odata.org/V2/Northwind/Northwind.svc/Orders(10248)/Order_Details

我们再访问 https://services.odata.org/V2/Northwind/Northwind.svc/Orders(10248)/Order_Details,就能看到三条 Order 明细数据:

每条明细数据包含行项目的产品 ID,即字段 ProductID,还有该产品购买的数量 Quantity 以及单价 UnitPrice.

在 metadata 里,Order 节点和 Order_Details 节点的导航关系,通过名叫 Order_DetailsNavigationProperty 进行关联。

也就是说,我们要读取一个订单的明细数据,前提是先获得该订单的抬头数据即获得 Order 节点的数据,然后再通过 Navigation Property,Order_Details 进行进一步读取。这里的 Order 抬头数据,相对于 Order_Details 数据而言就是后者的 上下文 即 Context.

我们下面就来学习如何使用 SAP UI5 OData API 进行编码来读取指定 ID 的 Order 以及 Order Details 数据。

相关文章

网友评论

    本文标题:通过一个实际例子,理解 SAP UI5 sap.ui.model

    本文链接:https://www.haomeiwen.com/subject/kbfrldtx.html