SAPUI5和ODataModel V2:找出哪些请求组具有待处理的请求

问题描述

我正在使用ODataModel V2,并且有3个延迟的请求组。如果有多个组的请求,我必须按特定顺序提交。 因此,我需要知道哪个组有待处理的请求。已经有一个聪明的方法了吗?

我的请求组的定义

  • 通过方法“ createEntry”创建的条目被收集到“创建”组中
  • 通过方法删除删除的条目被收集到“删除”组中
  • 所有其他东西都收集到“变更”组中

到目前为止我发现的结果

  • 删除”组很简单,如果有一个,则包含在“ oDataModel.mDeferredRequests”中。
  • 如果还存在对“ changes”组的请求,则“ create”组仅包含在“ mDeferredRequests”中。因此,如果它包含在“ mDeferredRequests”中,我知道同时存在“创建”和“更改”的请求。

但是,如果只有“创建”或“更改”请求,则只能通过方法“ getPendingChanges”找到方法。 新创建的实体具有包含在元数据中的groupId,如下所示:

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。 由于我对这种解决方案不满意,所以我想问您,是否有一种更聪明的方法来确定带有待处理请求的组。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)