Разрабатываем Fiori приложение – часть 1

Открываем гугл, гуглим, разрабатываем, закрываем гугл. Примерно такой цикл разработки приложения по Agile для Fiori. Прошло буквально два года с момента, когда я сам писал первое приложение для себя, поиграться. Тогда это был старый и добрый Eclipse. Сейчас даже гугл уже не помнит примеры разработки Fiori приложений для Eclipse. Вендор активно стирает все в нашей памяти и тычет: вот облако, вот Web IDE, ходи туда.

Поэтому сегодня мы пишем простое приложение на WebIDE, а потом будем учиться его автоматизированно тестировать вдоль и поперек. Я обещал такую заметку, поэтому она будет.

Задача приложения – отображать системные журналы через веб. Системные журналы, это то, что разные программы пишут в базу, а мы можем посмотреть через транзакцию SLG1. Для разработки приложения нам нужны две вещи: OData сервис, который будет доставать данные из журнала, само приложение, которое будет визуализировать эти данные.

Очень упрощенная модель приложения, без проверок безопасности, авторизации, overflow, да и вообще уровня школьника, выглядит примерно так.

Сначала создаем структуру, которую будет возвращать сервис. У нас это будет табличка, которая вернет данные по нужным нам фильтрам.

Теперь в транзакции SEGW создаем сам сервис. У меня он выглядит примерно так.

И немного кода в методе LOGENTRYSET_GET_ENTITYSET.

Что мы тут натворили? Мы на входе смотрим на параметры из адресной строчки. Если указаны фильтры для объектов OBJECT или SUBOBJECT, то мы возвращаем лог только по указанным объектам.

В транзакции /IWFND/MAINT_SERVICE нажимаем кнопочку Add Service, выбираем Alias LOCAL, и добавляем наш сервис в каталог.

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

В строке запроса пишем вот такой код: /sap/opu/odata/sap/ZLOGGER_SRV/LogEntrySet?$filter=OBJECT eq ‘/IWFND/’
Мы хотим получить все записи журнала по объекту /IWFND/.

В следующей заметке мы попробуем создать Unit-тесты для этого OData сервиса.