Некоторое время назад я рассматривал вариант добавления плитки на SAP Fiori Launchpad

См. заметку Как добавить плитку в SAP Fiori Launchpad?

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

Что мне для этого понадобится?

Плагин для ланчпада

См. Создание плагина для SAP Fiori Launchpad

OData сервис, посредством которого я буду определять необходимость добавления плитки на ланчпад

См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (6)

Класс sap.ushell.services.Bookmark

См. class sap.ushell.services.Bookmark

Задача

Добавить для пользователя плитку на SAP Fiori Launchpad при условии, что ему присвоена определенная роль в backend системе. Новая плитка может быть добавлена на ланчпад без привязки к определенному каталогу плиток, который наличествует у пользователя.

OData сервис для получения информации о наличии роли пользователя

OData сервис, который я планирую использовать для получения информации о наличии роли у пользователя, имеет EntitySet со следующими свойствами

См. Create Entity Sets

Заполнение требуемого EntitySet'а выполняется в *DPC_EXT классе OData-сервиса.

См. Extending an OData Service Using Service Builder

Например,

Наполнение плагина для SAP Fiori Launchpad

Привожу пример реализации функции onInit()

См. SAP Fiori Launchpad Extensibility

Настройка Target Mapping для добавляемой плитки

Чтобы приложение можно было запустить по клику на добавленную плитку, требуется настроить Target Mapping (Присвоение цели) в одном из каталогов, присутствующих у пользователя.

См. Configuring Navigation

См. Configuring Target Mappings

Тестирование

Спасибо за ваше время. Зима будет долгой, но все по-прежнему обойдется. Обнимаю. ignatov