Динамическое добавление плитки на SAP Fiori Launchpad
Как динамически добавить плитку на SAP Fiori Launchpad
Некоторое время назад я рассматривал вариант добавления плитки на 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