如何在Sync中使OData v2读取方法调用?

2020-09-10 08:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在研究sapui...

         点击此处--->   EasySAP.com群内免费提供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。

7条回答
Nan4612
2020-09-10 08:51

很抱歉,这确实违反了准则和最佳实践。

  1. 永远不要尝试通过XHR同步发送请求。 相反,尝试使用事件处理程序和Promise。
  2. 通常,没有充分的理由将整个EntitySet复制到JSONModel中。 JSONModel是一种客户端模型,旨在提供仅与客户端相关的信息(例如设备信息)。 客户端必须进一步处理OData集合,这表明数据模型的设计选择不佳。

一周热门 更多>