如何使用 SAP UI5 V2 ODataModel 模型 API 实现 deepCreate 的场景以及局限性

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 如何使用 SAP UI5 V2 ODataModel 模型 API 实现 deepCreate 的场景以及局限性

如果开发人员期望在持久化时请求已创建条目的导航属性(navigation property),请使用可选的 expand 参数在与实体创建的 POST 请求相同的批处理请求中有效地执行此操作。


可选的 inactive 参数确定是否创建非活动 transient 上下文。 这样的上下文只会在属性更新时成为活动的 transient上下文。 在此之前,它不是挂起的更改,即它不被 hasPendingChanges API 考虑,也不能被 resetChanges 删除; submitChanges API 不会触发非活动上下文的创建请求。


deepCreate,即首先创建一个实体,并基于这个新创建的实体,再次新创建一个子实体。


V2 ODataModel 不支持在同一个 API 请求里完成这个场景。


可以链接两个 API 调用来创建具有两个顺序请求的父实体和子实体,如以下示例所示,该示例同时创建了一个销售订单和一个销售订单项目:


var oParentContext,
    oModel = this.getView().getModel();
oParentContext = oModel.createEntry("/SalesOrderSet");
oParentContext.created().then(function () {
  var oChildContext = oModel.createEntry("ToLineItems", {
    context : oParentContext
  });
  oModel.submitChanges(); // triggers request for creation of item
});
oModel.submitChanges(); // triggers request for creation of sales order


ODataModel.createEntry 的一个局限性:


ODataListBinding.create 创建一个条目并将其插入到条目列表的开头或结尾。 该条目在绑定控件的对应位置可见,无需先保存到后端再刷新绑定; 与 ODataModel#createEntry API 相比,这是一个优势。


如果有一个显示条目集合的列表或表格控件并且以下条件之一适用,请使用方法 ODataListBinding.create,而不是 ODataModel.createEntry:


  • 创建的条目甚至在存储到后端之前就应该出现在此表中,以便最终用户可以查看和修改他们的数据。

  • 即使已经持久化到后端,创建的条目也应该显示在表格中的相同位置; 只是他们的数据会根据创建 POST 请求的响应进行更新。

  • 希望提供内联创建行以快速创建新条目。


image.png

相关文章
|
JSON 测试技术 API
评测最火的 11 款 REST API GUI
尽管 RESTful Web 服务具有可扩展性且易于维护,但是手动进行 API 测试操作复杂,因此我们需要选择一些好用的客户端来帮助我们测试 REST API。这里,码匠为大家罗列了 11 款最火的用于 REST API 测试的客户端工具。
4047 1
评测最火的 11 款 REST API  GUI
|
1月前
|
缓存 Linux API
核心API文档 【ChatGPT】
核心API文档 【ChatGPT】
|
2月前
|
存储 监控 测试技术
构建高效后端API的五个关键步骤
【8月更文挑战第26天】在数字化时代,后端API的设计和实现对整个应用的性能和用户体验起着至关重要的作用。本文将介绍如何通过五个关键步骤来构建一个高效的后端API,包括需求分析、设计原则、数据模型设计、API测试以及监控与优化。我们将通过实际代码示例来展示每个步骤的关键要点,帮助开发者理解并实践构建高效API的过程。
|
5月前
|
安全 前端开发 API
深入理解与实践GraphQL:构建高效、灵活的API
在本文中,我们将探索GraphQL这一强大的API查询语言及其运行原理。不同于传统的RESTful API设计,GraphQL提供了一种更加高效、灵活的方式来交互数据。通过实例和比较,本文旨在揭示GraphQL如何使前端和后端开发更加紧密协作,同时减少数据传输的冗余。我们将从GraphQL的基本概念入手,深入到查询(Queries)、变更(Mutations)和订阅(Subscriptions)的实现,最后探讨如何在实际项目中部署和优化GraphQL服务。此外,本文还将简要介绍如何利用现有的GraphQL工具和库来加速开发过程。
|
5月前
|
人工智能 API
开源大模型与大模型api的使用优缺点
【5月更文挑战第26天】开源大模型与大模型api的使用优缺点
287 1
|
5月前
|
XML JSON API
浅谈6种流行的API架构风格
浅谈6种流行的API架构风格
116 0
|
5月前
|
数据建模 API 定位技术
详解 API 设计最佳实践
应用程序接口(API)是一种接口,它让应用程序可以轻松地使用另一个应用程序的数据和资源,API 对于一个产品或公司的成功至关重要。 如果没有 API,你大部分喜欢的软件今天就不会存在。例如,Google Maps API 可以让你在 app 或 Web 应用中使用 Google Maps。如果没有它,你将不得不设计和开发自己的地图数据库。这样的话,在地图上显示一个位置需要花费多少时间?
|
存储 API
如何使用 SAP UI5 V2 ODataModel 模型 API 实现 deepCreate 的场景以及局限性
如何使用 SAP UI5 V2 ODataModel 模型 API 实现 deepCreate 的场景以及局限性
|
JavaScript 前端开发 API
通过一个实际例子,理解 SAP UI5 sap.ui.model.odata.v2.ODataModel API 中 BindingContext 绑定上下文的概念和用法试读版
通过一个实际例子,理解 SAP UI5 sap.ui.model.odata.v2.ODataModel API 中 BindingContext 绑定上下文的概念和用法试读版
|
存储 前端开发 Java
一文概览设计Web API 中的细节
一文概览设计Web API 中的细节
181 0
下一篇
无影云桌面