SAP UI5. Про объявление модели, oData сервиса в manifest.json и XML View

SAP UI5. Про объявление модели, oData сервиса в manifest.json, и варианты работы с данными модели в XML View

В прошлых заметках по теме SAPUI5 я чаще всего использовал довольно-таки криповые методы объявления модели и oData сервисов в демонстрационных приложениях. В этой заметке я хотел бы рассмотреть иные, если можно так выразиться, более правильные приемы работы с упомянутыми сущностями.

Пример 1.

Объявление oData сервиса в manifest.json (1)

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

См. Descriptor (manifest.json)
См. Descriptor for Applications, Components, and Libraries

Например,

Объявление модели в manifest.json (2)

В дополнение к проинициализированному выше oData сервису, для вновь создаваемого SAP UI5 приложения понадобится модель данных. Объявить ее можно также в manifest.json

См. Models

Например,

N.B. Обратите внимание на тип объявленной модели (атрибут type)

См. class sap.ui.model.odata.v2.ODataModel

Итоговый вариант manifest.json в части внесенных исправлений будет выглядеть следующим образом:

Используем manifest.json для наполнения данными View приложения (3)

После того, как были объявлены oData сервис и сопутствующая ему модель данных, в SAPUI5 приложении нужно внести корректировки в View, где будут отражаться данные, возвращаемые oData сервисом.

Пожалуйста, обратите свое внимание на то, что в представлении (View) указана модель, и соответствующий entitySet, который позволяет получить данные для используемого контрола. Отличительной особенностью данного подхода является то, что вся модель биндится на контрол. В результате выполнения этого биндинга, фреймворк самостоятельно выполняет обращение к oData сервису и указанному entitySet'у для получения и размещения в нем данных.

Проверяю, что получилось

Пример 2

Объявление oData сервиса в в manifest.json (1)

Для того, чтобы попробовать альтернативный подход по заявленной теме, мне потребуется зарегистрировать новый источник данных, которым выступит локально созданный JSON файл.

Он же в структуре проекта:

Объявление модели в manifest.json (2)

Определяю модель данных в manifest.json

N.B. Обратите внимание на тип объявленной модели (атрибут type)

См. class sap.ui.model.json.JSONModel

Получение данных для размещения в View приложения (3)

В этом примере не получится обойтись только настройками из manifest.json. Придется немного поработать с контроллером. Например,

См. Controller
См. class sap.ui.model.json.JSONModel (setProperty)

Внесу корректировки в View приложения

Проверяю, что получилось

В противовес варианту, рассмотренному в примере #1, важно отметить, что при использовании этого подхода, у разработчика/консультанта появляется больше возможностей для манипуляции с данными в модели, которая впоследствии также будет забиндена на какой-то из контролов приложения.

См. class sap.ui.model.json.JSONModel (setProperty)

Немного скорректирую исходный код контроллера

А также добавляю вывод нового свойства в View приложения

Проверяю

P.S.

За помощь и консультацию по некоторым техническим моментам хочу выразить благодарность моему коллеге Михаилу.

Read more