如何使用SAPUI5V2ODataModel模型API实现deepCreate场景和限制这在与POST请求相同的批处理请求中有效完成。可选的inactive参数确定是否创建一个非活动的瞬态上下文。这样的上下文只有在更新属性时才会成为活动的瞬态上下文。在那之前,它不是一个挂起的更改,即它不被hasPendingChangesAPI考虑并且不能被resetChanges删除;submitChangesAPI不会触发对非活动上下文的创建请求。deepCreate,即先创建一个实体,在这个新创建的实体的基础上,再次创建一个新的子实体。V2ODataModel在同一个API请求中不支持这种情况。可以链接两个API调用以创建具有两个顺序请求的父实体和子实体,如以下示例所示,该示例同时创建销售订单和销售订单项目:varoParentContext,oModel=this.getView()。得到模型();oParentContext=oModel.createEntry("/SalesOrderSet");oParentContext.created().then(function(){varoChildContext=oModel.createEntry("ToLineItems",{context:oParentContext});oModel.submitChanges();//触发创建项目的请求});oModel.submitChanges();//触发创建销售订单的请求ODataModel.createEntry的一个限制:ODataListBinding.create创建一个条目并将其插入到条目列表的开头或末尾。入口在绑定控件对应位置可见,无需保存到后台再刷新绑定;这是优于ODataModel#createEntryAPI的优势。如果您有一个显示条目集合的列表或表控件并且满足以下条件之一,请使用ODataListBinding.create方法而不是ODataModel.createEntry:创建的条目应该出现在该表中,甚至在它存储在后端之前,以便最终用户可以查看和修改他们的数据。创建的条目应该出现在表中的相同位置,即使它们已被持久化到后端;只是他们的数据是根据对创建POST请求的响应进行更新的。想提供一个内联创建行以快速创建新条目。
