Skip to Content
Technical Articles
Author's profile photo Jorge Baltazar

SAP Fiori for SAP S/4HANA – Developing a Custom Fiori Launchpad Plugin

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.

Thanks,

SAP S/4HANA RIG

 

Assigned tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Gregor Wolf
      Gregor Wolf

      Dear Jorge,

      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.

      Best regards
      Gregor

      Author's profile photo Jorge Baltazar
      Jorge Baltazar
      Blog Post Author

      Hi Gregor,

      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.

      Author's profile photo Hong Wei Ma
      Hong Wei Ma

      Hi

      I alse have this issue now.

      "Failed to run the application with extenders” error

      Can you share how you soluted?

      thanks

      Author's profile photo Boghyon Hoffmann
      Boghyon Hoffmann

      Are plugins also supported in the latest Fiori 3 launchpad? What are the options to develop new FLP plugins without SAP Web IDE nowadays?

      Author's profile photo Jorge Baltazar
      Jorge Baltazar
      Blog Post Author

      Hi Boghyon,

      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

      Author's profile photo Radhika Naikankatte
      Radhika Naikankatte

      Links for Overview Deck and activation & config steps are broken. Could you provide working links?

      Author's profile photo Jorge Baltazar
      Jorge Baltazar
      Blog Post Author

      Hi Radhika,

      Links are back online, sorry for the inconvenience.

      Author's profile photo Mahendran Balasubramani
      Mahendran Balasubramani

      Hi,

      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.

      Regards,

      Mahendran B.

      Author's profile photo Jorge Baltazar
      Jorge Baltazar
      Blog Post Author

      Hi Mahendran,

      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.

      Regards,

      JB

      Author's profile photo Vimal Mohan Jain
      Vimal Mohan Jain

      Hi Jorge,

      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?

      Best regards,

      Vimal