2016-10-21 3 views
0

Привет SAPUI5 разработчиков,Поиск по рабочему списку не работает в SAPUI5 Fiori Шаблон приложения

я сделал проект Firori Worklist внутри WebIDE. Я по умолчанию подключил его к серверу OData и выбранному SAPUI версии 1.38.

Он отображает рабочий список правильно, и я могу нажать на предметы и переместиться между видами и особенно посетить объект.

Итак, все работает нормально.

Единственное, что не работает, это окно поиска. Его событие запускается всякий раз, когда я набираю что-то внутри него и нажимаю Enter, но он ничего не фильтрует.

функции, которые называются, являются следующие:

onSearch: function(oEvent) { 

     if (oEvent.getParameters().refreshButtonPressed) { 
      // Search field's 'refresh' button has been pressed. 
      // This is visible if you select any master list item. 
      // In this case no new search is triggered, we only 
      // refresh the list binding. 
      this.onRefresh(); 
     } else { 
      var oTableSearchState = []; 
      var sQuery = oEvent.getParameter("query"); 

      if (sQuery && sQuery.length > 0) { 
       oTableSearchState = [new Filter("ZBrandName", FilterOperator.Contains, sQuery)]; 
      } 
      this._applySearch(oTableSearchState); 
     } 

    }, 
    /** 
    * Internal helper method to apply both filter and search state together on the list binding 
    * @param {object} oTableSearchState an array of filters for the search 
    * @private 
    */ 
    _applySearch: function(oTableSearchState) { 
     var oTable = this.byId("table"), 
      oViewModel = this.getModel("worklistView"); 
      console.log(oTable); 
     oTable.getBinding("items").filter(oTableSearchState, "Application"); 
     // changes the noDataText of the list in case there are no filter results 
     if (oTableSearchState.length !== 0) { 
      oViewModel.setProperty("/tableNoDataText", this.getResourceBundle().getText("worklistNoDataWithSearchText")); 
     } 
    }, 

Спасибо заранее.

+0

любые ошибки в консоли? sQuery имеет ценность? 'oTable.getBinding (« items »). Filter (oTableSearchState,« Приложение »);' может быть виновником –

+0

Внутри консоли отсутствуют ошибки. И я не внес никаких изменений в исходный код, созданный веб-средой. Да, sQuery имеет ценность и все остальные объекты. –

+0

имеет ли свойство odata свойство 'ZBrandName'. Можете ли вы разместить образец Odata здесь? –

ответ

0

Проблема, о которой я сообщал, может случиться и для других, поэтому я ответил на свой вопрос, потому что нашел ответ.

История заключается в том, что когда я использовал службу NorthWind OData, шаблон рабочего списка Fiori SAP WebIDE отлично работает, и я могу увидеть список элементов и выполнить поиск по ним (фильтр).

Но когда я использовал нашу внутреннюю службу SAP ERP OData Service, я мог видеть список элементов, но я не мог их фильтровать.

Таким образом, я думал, что проблема связана с SAP и она не может обновить представление.

Но на самом деле SAPUI5 отправляет новый запрос OData Server для каждой фильтрации, в то время как я думал, что фильтрация - это что-то, что делается внутри браузера.

Таким образом, проблема была связана с нашей реализацией OData Service, которая игнорировала параметры запроса. Хотя нам пришлось реализовать всю функциональность спецификаций OData в нашей службе OData.

Я надеюсь, что эта информация будет работать для тех, кто сталкивается с этой проблемой.

0
var oFilter = new sap.ui.model.Filter(oTableSearchState, true); 
oTable.getBinding("items").filter(oFilter, "Application"); 
+0

Не работает. Можете ли вы создать приложение Fiori с Northwind Odata? У меня тоже проблема с этим. –

+0

https://sapui5.hana.ondemand.com/explored.html#/sample/sap.ui.table.sample.Filtering/code/Controller.controller.js Здесь работают –

+0

Он работает с сервисами OData, такими как NorthWind, но мой сервис OData размещен на сервере Premise, и, похоже, у WebIDE есть проблемы, связанные с настройкой параметров для услуг Premise. –