点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在研究sapui5应用程序。 这是我的情况。 我需要通过应用过滤器来读取EntitySet方法。
setupJsonModel:函数(oModel,aFilter){ var oJsonModel = new JSONModel(); //本地json模型初始化 oModel.read("/img/EntitySet",{ 过滤器:aTplnrFilter, 成功:函数(oEvent){ var aList = []; $ .each(oEvent.results,function(data,item){ aTPlaceList.push({ "密钥":item.Key, "名称":item.Name }); 。 }); var jsonModel = new JSONModel({ " ResultSet":aList//将aList数组推入JSON模型 }); var tData = jsonModel.getData(); oJsonModel.setData(tData); MessageToast.show("成功"); }, 错误:函数(oError){ jQuery.sap.log.info(" PlantSet出现错误失败" + oError); MessageToast.show(" Error"); } }); 返回oJsonModel; }, var oJsonModel = this.setupTplaceModel(oDataModel,aFilter);//返回空模型
我将EntitySet复制到JsonModel中,然后继续进行操作。
当我逐步调试时,它会在第一次时跳过成功和错误块。 它是从这个方法的方块出来的。
所以我的oJsonModel为空。 但是经过一段时间的延迟后,它进入了成功调用,并将值返回给oJsonModel。
我知道Odata V2默认为异步模式。 惠普避免这种情况吗?
谢谢
此致
JK。
您好 Jayakrishnan Chandramohan ,
像其他人一样,您最好与 标准。
您可以简单地在成功处理程序中编写代码(无论在read调用之后编写什么内容)。 在呼叫已读呼叫之前,在对话框或视图上放置一个忙碌指示器。 然后在成功和错误处理程序功能上,删除繁忙指示器。
BR,
Mahesh
很抱歉,这确实违反了准则和最佳实践。
难道您不可以成功地编写代码吗?
# p#实际上,这是针对某些自定义需求方案的,我需要将我的输入数据与OData模型进行比较。 我有价值帮助真实的多输入控件。 当用户单击值帮助时,它将打开"选择对话框"片段。 我用选择对话框(带有多选择标准列表)加载了我的OData EntitySet。 我想从EntitySet中获取数据列表以比较我的输入数据。 但我没有得到它。 因此,我试图在运行时将EntitySet值获取为JSON模型。
所以我的读取代码将是oModel.read("/img/Entityset",{success,error})。
在此read语句之后,它不会成功,在这里我得到结果。它在响应到来之后执行成功功能。 我在读取方法之后编写了以下代码。
我的aTplaces.length失败的地方,因为它是空的。 仅引发此错误后,将调用我的Odata读取成功方法。
希望你很清楚吗?
由于我在代码中修改了一些逻辑,因此我正在关闭此问题。 因此,我不会更改标准的OData调用。
是的,我在考虑其他选择,以避免将OData集合复制到JSON中。 但是在我的需求中,我需要这个。 请参考以下问题。
https://answers.sap.com/questions/12652335/how-to-de-select-the-select-dialog-values-from-mul.html
我正在考虑这一点,逻辑非常复杂,我需要正确处理。
一周热门 更多>