Рассмотрим задачу создания плитки с динамически изменяемым контентом. Имеется ввиду плитка подобного типа.
Для реализации подобного решения необходимо создать oData сервис с полями согласно стандарта определенного сапом.
В результате получим такую Entity (Обратите внимание на регистр полей)
Далее как и в случае с обычным сервисом переопределяем метод *GET_ENTITY в классе *DPC_EXT.
Для примера зададим заголовок, число и иконку. Также можно передавать и другие данные при необходимости.
1 2 3 4 5 |
METHOD entitydyntileset_get_entity. er_entity-title = 'Dyn Tile'. er_entity-number = '30'. er_entity-icon = 'sap-icon://travel-expense'. ENDMETHOD. |
Сервис должен возвращать ответ следующего вида:
Далее все по аналогии с обычной плиткой заходим в настройки Fiori Launchpad. Производим все необходимые действия до момента создания новой плитки.
Тут выбираем App Launcher - Dynamic
Заполняем строку Service URL тем же запросом который мы тестировали в Gateway Client, а также заполняем поле Refresh interval in Seconds требуемым периодом обновления данных:
Также как и в случае обычной плитки заполняется Semantic Object и Action. Остальные поля можно оставить пустые, т.к. их значение можно получать из сервиса.
Переходим в Target Mappings и как обычно прописываем вызов транзакции se38, например.
Плитка готова. Отображается в каталоге она следующим образом.
Далее добавляем ее как и обычную плитку в группу и проверяем результат.