2017-10-08 48 views
0

我已經配置manifest.json &Sapui5:我怎樣才能檢索到的OData動態使用的manifest.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; 
    } 
}); 

回答

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; 
      } 
     });