2016-11-19 45 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);