如何重置延迟的odata请求

2020-09-19 16:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用v2 odata模型推...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用v2 odata模型推迟删除请求:

 this._oModel.setDeferredGroups([" TechObjDelete"]);
 this._oModel.remove("/img/TechnicalObjectSet(EquipmentNo ='" + oItem.EquipmentNo +"',Job ='" + oItem.Job +"')",{
 groupId:" TechObjDelete",
 changeSetId:oItem.EquipmentNo,
 成功:function(oData){
 },
 错误:function(oError){
 }
 }); 

并希望在用户单击"保存"按钮时进行删除。 所以在保存时我打电话:

 this._oModel.submitChanges(); 

一切正常。 问题是当用户没有单击"保存"按钮而是移至另一个屏幕时。 然后,我想重置模型中的延迟更改。

我可以通过初始化以下属性来做到这一点,因为它存储了延迟的请求:

 this._oModel.mDeferredRequests = {}; 

但是,这正在访问模型的私有属性。 有更好的方法重置它吗?

3条回答
huskylover
2020-09-19 16:54

您好Radek,

我有相同的查询,UI5的同事帮助解决了它。 因此,有两种方法可以删除/删除延迟的呼叫。

1。 通过调用模型的destroy()方法。 销毁模型后,所有待处理的请求都将中止。

 this._oModel.destroy(); 

2。 通过调用在每个操作的返回对象中可用的abort()方法,例如创建读取删除更新 callFunction submitChanges

如果您检查上述每种方法的文档,就会发现它们返回一个对象,并且该对象的说明如下:"具有 abort 函数的对象可以中止当前请求 。"

 var oCreateRequest = this._oModel.create("/img/MyEntitySet",myObj);
 oCreateRequest.abort();
 

注意:Sascha提到的方法只有在使用#setProperty 方法。 在 resetChanges() API。

希望这会有所帮助!

最好的问候

Himanshu

一周热门 更多>