2016-08-05 63 views
0

我正在嘗試使輸入字段到後端的請求鏈接。我的實體集稱爲ActionsSet,實體集的屬性爲Applctn。我想通過Filter運算符EQ從輸入字段傳遞參數。我無法弄清楚正確的方法。這是我的代碼片段。

onPress: function() { 
var oParameter = this.getView().byId("inp").getValue(); 
if (oParameter == '') { 
    var msg = 'Fill it!'; 
    MessageToast.show(msg);} 
else{ 
    var oModel = new sap.ui.model.odata.v2.ODataModel("<SERVERURL>/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'");  
    } 

好吧,我讓它變得更簡單。但我有此錯誤400

錯誤請求

/ZACTIONS_SRV/ActionsSet/$元?$濾%20 =%20Applctn%20當量%20%27kjh%27

也許問題在於請求以這種格式 Screen

而且我想我需要是這種格式通濾波器,因此後端,因爲這個過濾器在其他應用程序的工作原理Screen

回答

0

你的serviceUrl將是:

serviceUrl: "http://consap2.consit.local:8060/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'" 

oParameter應該用單引號被指定爲serviceUrl是內" "

+0

謝謝你的答覆,這應該是正確的方式,但仍然出現錯誤。/$元數據?$濾波器%20 =%20Applctn%20當量。我不知道爲什麼,但我總是也獲得元數據到url。這可能是問題,不知道如何從請求URL中刪除。 –

+0

歡迎,你能否粘貼錯誤,會看看我是否可以進一步幫助你 – Dopedev

+0

我編輯了我的原始代碼段並添加了截圖以更好地訂閱我的問題。謝謝@Dopedev的幫助。 –

1

封閉我發現解決方案,這裏是正確的方式如何發佈查詢OData服務:

onPress: function() { 
var oParameter = this.getView().byId("inp").getValue(); 
if (oParameter == '') { 
    var msg = 'Fill it!'; 
    MessageToast.show(msg);} 
else{ 
    var oModel = new sap.ui.model.odata.ODataModel("<SERVERURL>/sap/opu/odata/sap/ZACTIONS_SRV/"); 
    var Filter = new sap.ui.model.Filter('Applctn', 'EQ', oParameter); 
    oModel.read("/ActionsSet", { 
      filters: [Filter] 
     }); 
    } 
相關問題