2016-11-19 3 views
-2

Я звоню в службу Odata для своего приложения UI5. Я использую приведенный ниже код для создания модели.Не удалось позвонить в службу Odata в UI5

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

С помощью этого кода я могу вызвать Одату и отобразить результаты в таблице.

Но теперь, когда я подаю фильтр так:

HTTPS: // <>/сок/ОП/OData/SIE/MED_TEST_OSIRIS_SRV/SalesOrderSet $ ​​фильтра = Country_SP э '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); 

, что я делаю не так? Я могу фильтровать результаты в браузере с тем же URL :(

С уважением, Mayank

+0

какой ошибки вы видите? –

ответ

1

Try с синхронным вызовом.

var oModelData = новый sap.ui.model.json.JSONModel();

oModelData.loadData (sUrl, null, false);

0

UI5 ODataModel поддерживает только базовый адрес службы OData. Модель будет конструкт фильтрации и сортировки запросов на основе этого базовый адрес, он будет делать это, например, при поставке фильтров или сортировщиков в привязку к агрегации.

В вашем случае вы можете использовать JSONModel. Он не зависит от параметров запроса OData и будет просто вызывать данный URL-адрес и хранить Результаты

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

 Смежные вопросы

  • Нет связанных вопросов^_^