调用多个odata并设置在一个表中

2020-08-16 15:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 我想从odata中读取...

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

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


专家,

我想从odata中读取数据并处理数据,然后设置为表以显示结果。

这是我的想象力。

*************************************************** ******************************************

OModel1.read(" EntitySet1",{成功:函数(odata1){

odata1循环⇒处理①

OModel2.read(" EnitySet2(odata1)",{成功:函数(odata2){

处理odata 2和odata 1的数据。 过程②

endloop}

});

Table.setProperty(odata2.value,odata1.value);}}); ⇒过程③

*************************************************** ******************************************

当我读取Omodel2时,结果数据无法输出并再次循环odata1。 循环后,执行过程③,然后进行②。

因此数据无法正确显示。

如何在表设置属性之前获取Process②的数据。

我将使用批处理值设置为true或false。 读取操作没有变化。

最好的问候

Phyo

4条回答
槿木_熙
2020-08-16 16:07

这是您可以利用Promise功能的地方。

对于读取请求都使用两个Promise,在两个Promise成功之后,执行数据操作。 例如。 如下:

 var oPromise1 =新Promise(function(resolve,reject){
 oModel.read(sPath1,{
 成功:解决,
 错误:function(oError){
 reject(oError);
 }
 });
 });

 var oPromise2 =新的Promise(function(resolve,reject){
 oModel.read(sPath2,{
 成功:解决,
 错误:function(oError){
 reject(oError);
 }
 });
 });

 Promise.all([oPromise1,oPromise2])。then(function(arrayOfResolves){
    //从arrayOfResolves中读取数据并在此处执行数据操作
 } .bind(this)); 

那里有很多博客,请查看它们:

https://blogs.sap.com/2019/01/28/call- 当一切都做完时我回来...如何承诺。所有使生活变得轻松/

https://www.nathanhand.co.uk/blog/post/better-odata-handling-in-ui5 -using-promises-part-1

-Mahesh

一周热门 更多>