2016-11-19 133 views
-2

我正在爲我的UI5應用程序調用Odata服務。我正在使用下面提到的代碼來創建模型。無法在UI5中調用Odata服務

var oModel = new sap.ui.model.json.JSONModel("https://<>/sap/opu/odata/SIE/MED_TEST_OSIRIS_SRV/SalesOrderSet?$format=json"); 
//Getting the Data and putting in list model 
sap.ui.getCore().setModel(oModel,"table"); 

使用此代碼,我可以調用Odata並將結果顯示在表中。

但現在當我申請過濾器是這樣的:

的https:// <>/SAP/OPU /的OData/SIE/MED_TEST_OSIRIS_SRV/SalesOrderSet $過濾= Country_SP EQ 'DE'

我可以在瀏覽器的地址欄中的結果,但不是在這樣的代碼:

var sUrl = "https://<>/sap/opu/odata/SIE/MED_TEST_OSIRIS_SRV/SalesOrderSet?$filter=Country_SP eq 'DE'"; 

var oModel = new sap.ui.model.json.JSONModel(sUrl); 

什麼,我做錯了什麼?我可以用相同的網址:(

問候, Mayank

+0

你看到了什麼錯誤? –

回答

1

嘗試使用同步調用。

var oModelData = new sap.ui.model.json.JSONModel();

oModelData.loadData(sUrl,null,false);

0

的UI5 ODataModel僅支持OData服務的基地址過濾在瀏覽器中的結果。基於該模型將構建過濾和排序查詢你可以使用一個JSONModel你的情況。它是不可知的OData查詢參數,將只是調用給定的URL和存儲在這裏,你可以使用一個JSONModel。結果

+0

對不起,我不明白。你能糾正我的錯誤嗎? –

0

您需要對URI組件的過濾器進行編碼,然後附加到基本URL

var filter = "Country_SP eq 'DE'"; 
var baseUrl = "https://<>/sap/opu/odata/SIE/MED_TEST_OSIRIS_SRV/SalesOrderSet"; 
var sUrl = baseUrl+encodeURIComponent(filter); 
var oModel = new sap.ui.model.json.JSONModel(sUrl);