2017-10-08 2 views
0

Ich habe manifest.json konfiguriert &Sapui5: Wie kann ich abrufen OData dynamisch manifest.json mit

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

Holen der OData in meinem Controller:

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

Aber seine Abrufen aller Daten mehr dann 1000 Zeilen, Ich muss der Abfrage einen Filter hinzufügen.

Ich habe es geschafft Filter hinzufügen nur auf die direkte URL:

$filter=SystemId eq \"SKYPE\" 

Aber wie kann ich in JavaScript hinzufügen die Filter dynamisch, ohne alle Daten zu holen? Zum Beispiel:

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

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

Antwort

1

Versuchen Sie, ein Filter-Objekt erstellen, wo Sie Ihre Filterparameter und verwenden Sie dieses Filterobjekt als Parameter in Leseaufruf übergeben. wie unter

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