OData create()导致应用挂起

2020-08-15 12:19发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) oModel.create()...

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

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


oModel.create()函数使整个应用程序挂起,直到完成为止。 我无法使用任何繁忙的指示器向用户显示正在发生的事情,因为挂起会停止执行任何其他操作。 无论是true还是false,create()函数调用中的async标志都不会对其造成影响。

有人知道这是否可以解决吗? 谢谢。

7条回答
SAP砖家
2020-08-15 13:13 .采纳回答

我找到了解决方案。 问题的确确实是async为false,即使在函数调用中将参数设置为true也不将其设置为true。

对于其他任何有此问题的人,我发现的解决方案是将呼叫添加到批处理操作中,尽管只是一个请求。 默认情况下,批处理调用是异步的。

var oBusy = new sap.m.BusyDialog();

oBusy.open();

var aBatch = [];

//向阵列添加批处理操作

aBatch.push(oModel.createBatchOperation(sPath," POST",oDataToBeSent));

oModel.addBatchChangeOperations(aBatch);

oModel.submitBatch(

function(evt){//成功

oBusy.close();

sap.m.MessageToast.show("已保存。");

},

function(oError){//失败

//使用状态码执行某些操作,以更好地处理错误

oBusy.close();

sap.m.MessageToast.show("保存失败。");

console.log(oError);

}

);

旧消息:

我的代码如下:

在将表单数据传递到对象中之后,在onSave()函数中。

oModel.create(sPath,oDataToBeSent,null,

function(){

//成功

},

function(err){

console.log(err);

},

true//bAsync

);

我注意到请求标头仍然显示" async:false"。 这可能是我问题的根源吗?

一周热门 更多>