SAP WebIDE oData Объект JSON против строки - PullRequest
0 голосов
/ 05 июля 2018

У меня есть приложение, которое работает в целях тестирования с локальными макетами JSON. Объект oData содержит массивы со значениями, и приложение работает как нужно. Теперь мы переключаемся с локального файла Mockdata на потребление данных с помощью службы oData из серверной системы SAP. Здесь я получаю данные в объектах JSON, а не все функционализационные функции работают как нужно (пример функций фильтра).

Может кто-нибудь поделиться со мной некоторыми мыслями об объектах и ​​массивах JSON? И как я могу получить данные из серверной системы в виде массива вместо объекта?

В версии mockdata я делаю это, чтобы определить мою модель:

this._oModel = new JSONModel(jQuery.sap.getModulePath("myApplication", "/localService/mockdata/nodesSet.json"));

oData as array

В версии oData модель определена в manifest.json:

this._oModel = this.getOwnerComponent().getModel();

oData as Objects

Примечание. Мне известны различные имена сущностей (пример: узлы и узлы-наборы), и это не является частью проблемы.

Спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

Одним простым способом было бы не создавать модель в манифесте и выполнять явное чтение в контроллере как:

			var oModel = new sap.ui.model.odata.v2.ODataModel(url, true);	
					that=this;
					 oModel.read( "/Products", {
						urlParameters: { 
							"$skip": 0,
							"$top": 50
						},
						success: function( oData) {	
							//here oData shall have an array of objects "results"
          
**-------------Set the model here using this array -> results ------**
							
						},
						error: function(oError) {
							alert("error");
						}
					});

Однако я не горжусь этим решением и проверю, могу ли я прокомментировать лучше.

...