Sapui5: как я могу динамически получать oData с помощью manifest.json

Я настроил manifest.json и neo-app.json

    "dataSources": {
        ,"news": {
            "uri": "/destinations/int_news/sap/opu/odata/sap/XKDNK/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0"
            }
        }
    },
    "models": {
          "news": {
            "dataSource": "news"
          }
    }

Получение oData в моем контроллере:

var oModel =  this.getModel("news");
   oModel.read("/planSet", {
    success: function(data){
        debugger;
    }
}); 

Но для получения всех данных более 1000 строк мне нужно добавить фильтр к запросу.

Мне удалось добавить фильтр только по прямому URL:

$filter=SystemId eq \"SKYPE\"

Но как я могу добавить в JavaScript фильтр динамически, не извлекая все данные? Например:

var oModel =  this.getModel("news");

oModel.read("/planSet?$filter" + <MY_CUSTOM_DATA_FILTER>, {
    success: function(data){
       debugger;
    }
}); 

person Eli    schedule 08.10.2017    source источник


Ответы (1)


Попробуйте создать объект фильтра, в котором вы передаете параметры фильтра и используете этот объект фильтра в качестве параметра в вызове чтения. как ниже

var oModel =  this.getModel("news"),
    sfilterVal = "SKYPE",
    aFilters = [];


        if (sfilterVal) {
            aFilters.push(new sap.ui.model.Filter("SystemId", sap.ui.model.FilterOperator.EQ, sfilterVal));
        }

        oModel.read("/planSet", {
            filters: aFilters,
            success: function(data){
                debugger;
            }
        });
person Vivek Kumar    schedule 08.10.2017