Odata模型已更改并提交更改

2020-08-25 09:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 实际上,我每次尝试以...

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

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


大家好,

实际上,我每次尝试以UI5形式每隔2秒钟进行一次odata更改时都会实现一种保存功能,如下所示

 _saveDraft:函数(oEvent){
 setInterval(function(){
 如果(this.getView()。getModel()。hasPendingChanges()){
 this.getView()。getModel()。submitChanges({
 成功:函数(oData){
 sap.m.MessageToast.show("草稿已保存");
 console.log(this.getView()。getModel()。getPendingChanges());
 this.getView()。getModel()。refresh();
 } .bind(this),
 错误:函数(oError){}
 });
 }
 } .bind(this),2000);
 },

但是这里的问题是函数commitChanges每2秒执行一次。 我该如何操纵about代码每2秒执行一次,仅在表单发生变化的情况下。

hasPendingChanges方法始终返回true,getPendingChanges方法也返回地图对象,即使更改已提交到后端。 理想情况下,在oData Model上成功执行提交更改后,getPendingChanges应该为空。

致谢

草皮

1条回答
95年老男孩
2020-08-25 09:55

您好,

首先,也许您可​​以做ar esetChanges ,但是通常情况下,调用成功方法时,submitChange重置会更改。

第二,也许在该行添加注释:

 this。  getView()。getModel()。refresh(); 

这是没有用的,例如 submitChanges 已经完成了这项工作。 待处理的更改非常敏感,请执行 getPendingChanges 来分析已更改的内容,也许在您的代码中有您不知道的修改。

约瑟夫

一周热门 更多>