2016-09-15 1 views
0

У меня есть модель OData мне нужно сделать пакетный запрос на чтение модель ctreated нижеUI5 OData Service с партией GET с фильтрами

this.oModel = new sap.ui.model.odata.ODataModel(sURI,{ 
       json  : true, 
       user  : "<username>", 
       password : "<password>", 
       useBatch : true 
     }); 

Фильтр и пакетные запросы создаются как ниже

var allfilters = [new sap.ui.model.Filter({ 
       path:'filter1', 
       operator : sap.ui.model.FilterOperator.EQ, 
       value1 : this.filter1value 
      }), 
      new sap.ui.model.Filter({ 
       path:'DateField', 
       operator : sap.ui.model.FilterOperator.EQ, 
       value1 : 'SCHED' 
      }), 
      new sap.ui.model.Filter({ 
       path:'StartDate', 
       operator : sap.ui.model.FilterOperator.EQ, 
       value1 : oDateFormat.format(this.startDate.toDate()) 
      }), 
      new sap.ui.model.Filter({ 
       path:'EndDate', 
       operator : sap.ui.model.FilterOperator.EQ, 
       value1 : oDateFormat.format(this.endDate.toDate()) 
      })]; 

     var batchrequest = this.oModel.createBatchOperation('/ReadEntitySet','GET',{ 
      filters : allfilters 
     }); 
     this.oModel.addBatchReadOperations([batchrequest]); 
     this.oModel.submitBatch(this._gotData.bind(this),function(err){ 
      console.log(err); 
     }); 

Когда мы отлаживаем код ABAP, мы не получаем фильтры.

Фильтры

ответ

2

недействительны для параметра oData createBatchOperation. Вы можете достичь этого либо путем добавления фильтра $ непосредственно к вашему пути, либо вы можете использовать v2 ODataModel, пример следующим образом:

this.oModel = new sap.ui.model.odata.v2.ODataModel(sURI,{ 
      json  : true, 
      user  : "<username>", 
      password : "<password>", 
      useBatch : true 
}); 

this.oModel.setDeferredGroups(["myDeferredGroup"]); 

this.oModel.read("/ReadEntitySet",{ 
    groupId: "myDeferredGroup", 
    filters: allFilters, 
    success: this._gotData.bind(this), 
    error : function(err){ 
     console.log(err); 
    } 
}); 

this.oModel.submitChanges({ 
    groupId: "myDeferredGroup", 
    success: function(oData){ 

    }, 
    error : function(err){ 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^