点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我开发了一个ui5应用程序,在循环中,我正在使用JavaScript调用销售订单API 在S4HANA云中更新多个销售订单。
示例代码:
var a = new sap.m.BusyDialog();
a.open();
for循环{
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = false; xhr.addEventListener(" readystatechange",function(){if(this.readyState === this.DONE){console.log(this.responseText);}});
//设置请求方法
//API沙箱的API端点
xhr.open(" PATCH"," https://XXXX.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('{SalesOrder }')"); //可用的API端点//https://{host}:{port}/sap/opu/odata/sap/API_SALES_ORDER_SRV//添加请求标头xhr.setRequestHeader(" Content-Type"," application/json",false );
xhr.setRequestHeader(" Accept"," application/json");
//API沙箱的API密钥xhr.setRequestHeader(" APIKey","
//适用于生产性API端点的可用安全方案
//基本身份验证
//基本身份验证:在授权标头中以Base64提供用户名:密码
//xhr.setRequestHeader(" Authorization"," Basic
//发送请求xhr.send(data);
}
a.close();
但是BusyDialog不起作用。 需要您的帮助。
谢谢
拉克什曼·巴拉那古(Lakshman Balanagu)。
您好拉奎尔·马丁·巴里和那不勒斯马丹,
谢谢你们。
现在,我将更新逻辑从javascript(xhr.send)更改为Odata api(OdataModel.update),一切正常。 最初,我没有在manifest.json中正确初始化odata模型。
现在,更新正在异步模式下进行。 甚至sap.m.BusyDialog也可以按预期运行。
对于Etag,我要传递" *"。
谢谢
拉克什曼·巴拉那古(Lakshman Balanagu)。
嗨,拉克什曼,
当您说BusyDialog不起作用时,它在完成循环后不会停止吗?
最好的问候
苏尼尔·辛塔拉帕蒂
亲爱的拉什曼·巴拉那古
为什么要尝试使用同步内容。 您可以通过帮助的异步方式进行引用。 您可以非常轻松地在调用响应中调用对话框的关闭,并检查是否最后输入然后关闭对话框。 同步XHR现在处于弃用状态
"
XMLHttpRequest
支持 同步和异步通信都可以,但是总的来说,出于性能方面的考虑,异步请求应优先于同步请求。同步请求阻止执行代码,从而导致屏幕上的"冻结"和无响应的用户体验。"
谢谢
nabheet
嗨苏尼尔,
感谢您的回复。 BusyDialog不会在屏幕上弹出。 如果我使用chrome inspect进行调试,则它会出现在屏幕上。
感谢,
Lakshman Balanagu。
好奇心:为什么不使用UI5中的API?
https://blogs.sap.com/2017/03/13/how-to -consume-an-odata-service-with-openui5-sapui5/
https://sapui5.hana.ondemand.com/#/topic/44062441f3bd4c67a4f665ae362d1109
https://sapui5.hana.ondemand.com/1.32.9/docs/guide/6c47b2b39db9404582994070ec3d57a2.html
Lakshman Balanagu 的一个小要求不要将其发布为答案,因为我们仍然在讨论评论方面要好得多。 更新是此修补程序请求的正确方法。 您可以将该代码与一些调试器屏幕截图一起粘贴吗? 我希望异步内容很清楚
您好 Lakshman Balanagu
如果您查看拉奎尔·马丁·巴里发布的有用的博客链接, 可以直接使用Odata服务方法。 在一个循环中。 一旦成功完成回调,就可以隐藏忙碌的对话框。
谢谢
nabheet
一周热门 更多>