未调用带有commitChanges回调的批处理请求

2020-08-31 01:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我不是SAPUI5的专家...

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

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


你好

我不是SAPUI5的专家,但是我已经从SAP Webide生成的应用程序开始构建了Fiori Applications。 也许这就是我错过某些东西的原因,但是这次我使用的是FIORI模板的最新版本,它无法按预期工作。

模型在manifest.json中定义:

"模型":{
 " i18n":{
 " type":" sap.ui.model.resource.ResourceModel",
 "设置":{
 " bundleName":" customerexpiredprices.i18n.i18n"
 }
 },
 "":{
 " dataSource":" mainService",
 " preload":是的,
 "设置":{
 " defaultBindingMode":" TwoWay",
 " useBatch":是的,
 " defaultCountMode":"内联"
 }
 }
 },
 

我想删除一个实体的多行,但是我想在一个请求中删除它,这就是为什么我使用submitChanges调用批处理请求并处理submitChanges中成功或错误事件的原因:

 onDeletePress:function(oEvent){


 var self = this;


//获取模型
 var oModel = this.getView()。getModel();


//获取选中的行
 var oSelectedContextPaths = this.byId(" idMaterialList")。getSelectedContextPaths();


//每行调用delete
 如果(oSelectedContextPaths.length === 0){
 MessageBox.error(this.getResourceBundle()。getText(" noSelection"));;
 }其他{
 oSelectedContextPaths.forEach(function(sPath){
 this.remove(sPath);
 },oModel);
 }


 this.getModel(" detailView")。setProperty("/img/busy",true);
 oModel.submitChanges({
 成功:function(oData,sResponse){
 MessageToast.show(self.getResourceBundle()。getText(" deleteConditionSuccess"));;
 self.getView()。getModel()。refresh(true);
 self.getModel(" detailView")。setProperty("/img/busy",false);
 },
 错误:function(oError){
 self.getModel(" detailView")。setProperty("/img/busy",false);
 }
 });
 },
 

submitChanges方法中定义的成功函数和错误函数都不会被调用。 虽然如果我将成功函数附加到remove方法中,则它会被调用,但是每行都会出现。

我没有想到这种行为,而且我很确定我之前做过类似的事情,并且成功从commitChanges中调用。

请帮助...

3条回答
太Q了
2020-08-31 01:44 .采纳回答

我怀疑调用'submitChanges'时是否发生了任何事情。 验证是否在"网络"选项卡中。

调用this.remove()时,我怀疑本身已在其中调用了"删除"。

如果您想让" submitChanges"触发调用,则需要使用API​​" setDeferredGoups"。

一周热门 更多>