SAPUI5&;ODataModelV2:找出哪些请求组有挂起的请求
我正在使用并且有3个延迟请求组。如果有超过一组的请求,我必须按特定顺序提交。 因此,我需要知道哪个组有挂起的请求。现在已经有了一个智能的方法来解决这个问题了吗 我的请求组的定义SAPUI5&;ODataModelV2:找出哪些请求组有挂起的请求,odata,sapui5,Odata,Sapui5,我正在使用并且有3个延迟请求组。如果有超过一组的请求,我必须按特定顺序提交。 因此,我需要知道哪个组有挂起的请求。现在已经有了一个智能的方法来解决这个问题了吗 我的请求组的定义 通过方法“createEntry”创建的条目被收集到组“create”中 通过“删除”方法删除的条目被收集到“删除”组中 其他所有内容都收集到“更改”组中 到目前为止我发现了什么 “delete”组很简单,如果有,它包含在“oDataModel.mDeferredRequests”中 仅当存在对“更改”组的请求时,
- 通过方法“createEntry”创建的条目被收集到组“create”中
- 通过“删除”方法删除的条目被收集到“删除”组中
- 其他所有内容都收集到“更改”组中
- “delete”组很简单,如果有,它包含在“oDataModel.mDeferredRequests”中
- 仅当存在对“更改”组的请求时,“创建”组才包含在“mDeferredRequests”中。因此,如果它包含在“mDeferredRequests”中,我知道有对“create”和“changes”的请求
NewObject('id-123456-00'):
Attribute: "123"
__metadata:
created:
changeSetId: "chgSet"
eTag: undefined
error: undefined
groupId: "create"
...
type: "..."
uri: "/sap/opu/odata/sap/..."
更改的实体没有groupId,它们看起来是这样的:
UpdatedObject(Key='123'):
Attribute: "abc"
__metadata:
id: ".../sap/opu/odata/sap/..."
type: "..."
uri: ".../sap/opu/odata/sap/..."
因此,我目前唯一的想法是循环“getPendingChanges”中的条目,并检查是否有groupId。
由于我对这个解决方案不满意,我想问您是否有更聪明的方法来确定有未决请求的组。我不确定答案,但我想知道这是否重要。如果您提交了更改,但没有更改,则不会发生任何事情。为什么不总是按正确的顺序提交所有待定的更改?@Jorg感谢您的评论。我在上一次成功回调内/之后提交以下组更改。正如您提到的,如果没有更改,则不会发生任何事情,因此,如果第一组中没有更改,则不会提交第二组和第三组。