SAP Fiori for SAP S/4HANA – Developing a Custom Fiori Launchpad Plugin
UPDATE 03/Jan/23 – New blog version including step-by-step document and instructions to use SAP Business Application Studio and Embedded Steampunk is available here:
SAP Fiori for SAP S/4HANA – Developing a Custom Fiori Launchpad Plugin with SAP Business Application Studio and Embedded Steampunk in SAP S/4HANA
This blog will remain as is and will no longer be updated.
Relevant for S/4HANA 1909, 1809, 1709
Giving your end-users the best user experience will ensure better adoption of Fiori applications in your projects and while you make sure you offer the best UX you will find simple requirements that regardless of their simplicity could jeopardize the projects results.
In this blog you will find one of these cases and a possible solution, but before we jump into the solution let’s talk about the requirement and its implications.
Surely, all of you have been requested by your customers to add a label or an identification in the Fiori Launchpad for the end user to clearly distinguish in which client they have logged in. You can currently solve this issue by setting specific target mappings and assigning a custom role to all your end users as we’ve described in the Fiori 2.0 Implementation Guidelines – Fiori 2.0 Basics scenario.
However, setting up target mappings can be time consuming and if your customers plan to deploy multiple clients in their S/4HANA landscape you will need to manually modify the target mapping for each client. Additionally, by following the target mapping procedure, whatever text you define as the parameter value will be static meaning that you don’t have any options to load dynamic content from the Fiori Launchpad context which may sometimes be desirable, for example, you may wish to display the name of the user along with the client where they are logged in for which the target mapping approach will be insufficient – unless you want to manually create one custom target mapping and role per user in your system landscape times the number of clients in your systems.
For situations like these, SAP grants the possibility of creating Custom Fiori Launchpad plugins, which help modifying the Launchpad behavior or content at runtime as plugins possess some special features like:
- Plugins help extending the functionality of the launchpad
- Plugins are automatically loaded and initialized when the launchpad is started.
- Plugins are implemented as SAPUI5 components.
- Plugins shall always be implemented in a platform-independent way, meaning they are not tied to any backend version or functionality.
These features of the Fiori Launchpad Plugins allow you to build a “simplified” Fiori Application that will modify the launchpad at runtime to obtain, as described in this scenario, the current users full name and logged in client number dynamically and display these values in the Fiori Launchpad header as shown in the image.
Looks pretty simple right? And as simple as it is, this may sometimes prevent users from moving to the Fiori Launchpad.
Keep in mind that as plugins are custom objects, developing them involves the following steps:
Implementing the plug-in:
- For which you can use the Plugin WebIDE Template available in SAP WebIDE Full Stack
- Activating this template requires the activation of WebIDE Extension for Plugins
Activating and configuring the plug-in:
- Using ABAP FLP configuration to make the plugin available system-wide (for S/4HANA 1809 or higher) or creating a custom target mapping and PFCG role (for S/4HANA 1709 or lower).
You can find an overview of these steps in the Fiori Launchpad Plugins – Overview deck.
If you wish to try this approach on your own, you can find the source code for the Fiori Launchpad Header Text Plugin in Github or you can try running the Step-By-Step Procedure Document.
Please note that this custom plugin is not intended for production use, it is provided only as a demo to understand the Fiori Launchpad Plugin features.
To learn more about Fiori Launchpad Plugins and Fiori Launchpad Extensibility check out the following documents:
We hope this plugin demo helps you in your implementations!
Becoming a SAP Fiori for SAP S/4HANA guru
You’ll find much more on our SAP Fiori for SAP S/4HANA wiki
Do you have any questions? Let us know in the comments section.
SAP S/4HANA RIG
I've followed the Step-by-step instructions to create a Custom Fiori Launchpad Plugin, but again I run into the issue I've described here: Web IDE Multicloud: Run FLP plugin results in "Failed to run the application with extenders" error. I'm using the Web IDE Fullstack in my Trial account.
Hope you can help.
This plugin was built and tested using Web IDE Full Stack on Neo trial account.
Can you confirm you have setup your run configurations as described in slide 7 of the Fiori Launchpad Plugins – Overview deck and that you have turned on the SAP Fiori Launchpad Extensibility extension in your workspace preferences?
Typically, this is all that is needed to create and run FLP plugins, otherwise I would suggest creating an incident in component CA-WDE-RUN (Running applications) or CA-WDE-PI (Plugins)
To avoid confusion from other readers, Web IDE Multicloud is the former name of Web IDE Full Stack.
I alse have this issue now.
"Failed to run the application with extenders” error
Can you share how you soluted?
Are plugins also supported in the latest Fiori 3 launchpad? What are the options to develop new FLP plugins without SAP Web IDE nowadays?
Creating an FLP plugin is still supported in Fiori 3. You can do this using BAS and here's an example on how to build the plugin using this tool:
Developing a shell plugin for sap fiori launchpad on sap cloud platform cloud foundry environment with sap business application studio
Links for Overview Deck and activation & config steps are broken. Could you provide working links?
Links are back online, sorry for the inconvenience.
I have created a FIORI plugin and activated it. However it becomes available for all the users. Is there a way that I can control the plugin as role based? I dont want the plugin to be loaded for all the users. only specific users who has the catalog with target mapping has to be loaded.
If you used transaction /UI2/FLP_SYS_CONF or /UI2/FLP_CUS_CONF to activate and configure your plugin then this becomes client dependent or client independent, meaning, you can't control individual assignments.
If you wish to control plugin assignments at user level you must then create a target mapping with semantic object + action: "Shell + plugin", the technical details of your plugin (icf node + component ID) and any of the parameters you defined in your plugin development.
Thanks for the inforrmative blog. I am facing a peculiar issue. My plug-in gets loaded when I am opening the Fiori launchpad home page. But in case I execute browser refresh while an application is still open, the plugin does not get loaded (or loads a little late). Is there anything we can do for this?
Jorge Baltazar, how can I get the user role from FLP?
Hello Jorge Baltazar ,
Thank You for the blog !
I am not able to get system id can you help how to get system id ?
Example - System - Dev Client -300