How to Create a Tile Pointing to dynamic URL : S/4Hana
This is part 2 of my blog for URL Tile, aimed to further enhance the tile capability covering topics as suggested by Jocelyn Dart . The goal of this blog is to give detailed step by step instruction on how to create a tile pointing to dynamic URL.
Note the word dynamic here. This type of tile is generally used for our sap systems where in we have multiple environments and the URL protocol/host/port needs to be different for our DEV, QAS and PRD environments.
Part 1: https://blogs.sap.com/2019/02/28/how-to-create-a-tile-pointing-to-url-s4hana/
User id should be having Launchpad admin access “SAP_UI2_ADMIN_700” in Gateway for using Launchpad Designer for creation of Tile.
Creating Tile in Launchpad Designer:
Login to Launchpad designer by using below url or using T-Code “/UI2/FLPD_CUST” from Gateway system.
http://host name: port/sap/bc/ui5_ui5/sap/arsrvc_upb_admn/main.html?scope=CUST&sap-client=100&sap-language=EN#
1. Create Custom Catalog : You are now into Launchpad Designer Tool, used for creation of Catalogs & Tiles. Follow the below steps for Catalog Creation.
- Click on + Sign on left bottom of below screen.
- Fill the required details on the pop up “Create Catalog” & press save.
- Catalog is created.
- Now we need to create Tile inside this catalog.
2. Create Tile pointing to dynamic URL : You should be now inside catalog created in above steps.
2.1. Follow the below steps for Tile Creation which would be pointing to target mapping.
- Click on + sign on right screen to add Tile. It would open below screen.
- Select + of “App Launcher – Static” tile type to proceed. It should open a new page.
- Fill the required details in given fields as per below screen and choose save.
- Note that “Use semantic object navigation” is checked here and we need to provide Semantic Object and Action.
- That’s it tile is created.
- Now since we are using intent based navigation here (semantic object – action), we need to create target mapping as well as shown in 2.2.
2.2. Follow the below steps for Target mapping creation which would be pointing to URL.
- Now since we are using intent based navigation here (semantic object – action), we need to create target mapping as well.
- Next to Tiles tab we have a tab called “Target Mapping”, go to the tab and click on button “Create Target mapping” present in the footer section as show in below screen.
- Fill in the fields as shown in below screen. Make sure to have same semantic object – action combination as was used while creating tile.
- Note the field “System Alias” which is of importance here. Based on the system alias, the host:port part of the actual environment/server url would be picked. (I have picked LOCAL here as this is the system alias pointing to my gateway)
- In URL field you provide only the base url (suffix) which is common across all environment as show below.
- That’s it, the target mapping for url tile is created.
- Now get the catalog assigned to user role in gateway with help of security team,.
- The tile should be now visible under created catalog in FLP (Fiori Launchpad).
3. Access Tile in Fiori Launchpad : Access to GATEWAY in Dev. environment by opening a web browser and go to the following URL:
http://host name: port/sap/bc/ui2/flp or (/ui2/flp)
- Once FLP is loaded, go to “App Finder” under me area.
- Search for the created catalog.
- The new tile created should be available under this catalog with name provided in designer.
- Add the tile under your desired group.
- Go to FLP content area, select group under which tile is added, and you should see the Tile.
- Click on tile and it should launch the corresponding url pointing to current environment (Dev) host address.
Once the changes (Catalog/Role) are transported to other environments( i.e. QAS/PROD), no changes are needed in tile/target mapping if the same system alias is being used, and the url tile would work as expected (i.e. pointing to correct host).
Note: Don’t forget to create a Customizing Transport request in Dev. gateway system and assign in Launchpad Designer. Once the changes are assigned in TR we can transport the same to other environments (QAS/PROD).
Fiori Fun at work!
Thanks Rakesh! It's a particularly useful technique for those wanting to create tiles or links to SaaS cloud-based applications such as SAP Concur, SAP Ariba, SAP SuccessFactors, etc.
And it works just as well for 3rd party & partner apps offering different environments for test versus production.
Thanks so much for blogging!
We are trying to set up our RFC destinations to external type G system (dev SuccessFactors vs. prod SuccessFactors) but it is not working. Can you provide more details about how to setup those connections and system aliases through the /iwfnd/routing tcode?
Ok so generally how these work is you need your destination set up in SM59 - I assume you have done that.
And you need your source system alias that you use in the Launchpad Designer or FLP content manager pointing to the target system alias (what you should be seeing in /IWFND/ROUTING) in configuration maintenance view /UI2/V_ALIASMAP . You use transaction SM30 to maintain that.
So you use the same source system alias different target system aliases for DEV vs PROD.
Once you have done that you should be able to just maintain your target mappings as normal - using the system alias to provide the protocol/host/port details, and the relative URL.
I'm guessing it's the /UI2/V_ALIASMAP you are missing.
Don't forget to check your web dispatcher parameters - they may need to be adjusted to avoid cross scripting errors.
You also need to sort out the SSO config as per usual.
In my SF target mapping example, the hostname/port varies per environment (which can be handled via the system alias approach outlined above) - no problem.
However, the "company" URL parameter also varies. How can I handle a dynamic URL parameter in a target mapping? i.e. a URL parameter value which varies in each environment?
Hello Tom Parle,
Did you find a solution for this problem?
We received a similar question regarding the company url parameter of successfactors in our on premise launchpad.
cc: Jocelyn Dart
Unfortunately we did not find any elegant solution for this. I was hoping that Jocelyn Dart might have been able to provide some insight here 🙂
For our specific SF scenario we had to push transports through the landscape with the relevant company ID parameter for the phase we were working on and then finally an overwriting transport to push the company ID for production through when we went live. This is not ideal at all (and a continual pain when we go through testing for patching or changes) but at least ensured that we do not open up the system to change a TM parameter in each environment.
The only alterative we could think of was to ensure that the environments in the SF landscape each have distinct hostnames (i.e. perhaps by the use of two different production hosts for the UAT and PROD environments). That way it would be possible to have the same company ID across the landscape, meaning the use of dynamic URL parameters on the TM would no longer be required.
I would still like to know how it would be possible to use dynamic URL parameters for more general usage. Perhaps it will be a future option in later releases of FLP.
We are also looking for same solution where we need to navigate to URL maintain in custom table. Need to navigate to URL when click on tile created in Fiori application.
Please let us know the solution if any.
Hi Jocelyn, I have a similar question to Tom below.
We use the alias approach quite successfully for links to S4, Enterprise Portal, and now area applying it to SAP Analytics Cloud content. We have the alias setup and that works. The issue is that URLs for SAC content contains a "tenant" parameter in the path, for example:
Is there a way to dynamically replace the <tenant_id> at runtime?
As a workaround we're using URLs of the following form in our target mappings, but are concerned that these won't be stable with future SAC releases:
How to add parameters in target mapping for 3rd party web url, so that it is possible to navigate to sepcific content?
For example, add this tile pointing to an workflow system to display an workflow application. Then from another app, where there is a field for this workflow applicaiton no, directly navigate to specific workflow application. Is it possible to achieve this like other SAP Fiori apps?
This is just like bookmarking. If you have bookmarked url with parameters and it’s pointing to any specific application, you can pick the relative path of that url with parameters and place in the url field of target mapping ,it would point to respective object / workflow application in your case.
It seems similar with SAP apps/object. I will try.
Thank you~, Rakesh.
When i click on the tile it doesnt navigate to the GUI application but stays there ,i can see the url it is trying to call is correct but the screen doesnt change,any recommendation how to correct this.
Please check that the system alias you are using is working. You can find correct system alias name via tcode “/n/iwfnd/routing”.
Also make sure semantic object – action are correctly mapped.
how do you send dynamic values to your target mapping parameters to build your URL which launches the Tile?
In the latest release, I do not see System Alias.
I also dont see it mentioned in help. Has the System alias field been ddopped from the setings of a tile ?
HI Prashanth, You are actually looking at a very old documentation link.
Better to go to the main product page for the SAP Fiori launchpad help documentation then select your Fiori launchpad version and search there for what you want.
The latest equivalent for SAP S/4HANA 2020 is here: Maintaining Launchpad App Descriptor Items - you will find a table showing what is relevant to different app types and you can see that System Alias is most definitely still supported for URL tiles/target mappings
Great seeing a blog on dynamic URL! This handles the portion of the URL for the host and port being different in DEV/QA/PROD. My question is for example the Query Browser app allows you to create a query with the layout and filters and save. Once Saved, you can get the full URL and part of that is a state value which I would assume is the value that was generated when I created the query and saved. See sample below. Now you want this tile created in a catalog to be made available to other. So how would you then make the state match what will be in say Production
Hi Shirley, You don't need to provide the sap-iapp-state at all - that's a kind of session id. The system generates that at runtime.
how you so the transaction from tlies?
I creaete my tiles but i want to have a transaction.
Is this possible in SAP S/4 Hana Cloud !