Technical Articles
SAP Fiori Launchpad – Control Visibility of Tiles by Separation of Tiles and Target Mapping
Update on August 2021
With SAP Fiori front-end server 2020 for SAP S/4HANA there is a new concept to structure the content on the SAP Fiori launchpad: Spaces and Pages. The layout and content structure defined via spaces and pages can be reused for different user roles, while the tiles/apps which are actually shown on the on a page depend on the catalog assignment to the user. For more information, please refer to SAP Help Portal Managing Launchpad Spaces and Pages , especially section Tile Catalogs.
———————————————————————————————————-
One key question of many customers is, how to setup and configure the SAP Fiori launchpad (FLP) to achive that every end user gets the appropriate tiles on the FLP home page corresponding to the user’s business role.
In the following I would like to describe a method that can help you to control the visibility of tiles for certain use cases – in addition to the best practices described in SAP Help Portal.
Update on February 2019: Please note, that this method is valid for smaller amounts of custom tiles. It’s not recommended to handle SAP S/4HANA FLP mass content because of the potentially high complexity of tile/TM mapping distributions. In addition, future concepts regarding a central Fiori launchpad on SAP Cloud Platform foresee to bring together tiles and target mappings back into one entity. See also section SAP’s Central Entry Point – Future Direction in document SAP Fiori Deployment Options and Recommendations.
Some Basics
Catalogs and Groups Assignment
Which tiles are available on the end user’s FLP home page depends on the Fiori tile catalogs and groups which are assigned to the end user via PFCG roles. Fiori catalogs and groups are configured within the Fiori launchpad designer.
The following graphics shows which the steps an administrator has to perform on the ABAP Front-End Server to make tiles available for the end user on the FLP home page.
The assignment of groups is an optional step. When it’s performed by the administrator, the tiles are directly visible on the end user’s home page within the assigned group. Otherwise the end user himself has to add the desired tiles to the home page from the tile catalogs via personalization. It depends on your end users’ needs or company policy if personalization features are wanted or even pushed, or if the end users should get just what they need via assignment by the administrator. To prevent personalization the administrator can set up a tile group without enabling personalization possibilities (see Creating or Removing Groups).
Tiles and Target Mapping
A Fiori tile catalog can include two components:
- Tiles which represent the visual part of a tile such as a title, subtitle, information, icon and the semantic object and action for an intent-based navigation.
- Target mapping which defines the target application (Fiori app, transaction, Web Dynpro application) which is launched for a given intent and device type.. The navigation intent (semantic object and action) can be triggered by clicking on a tile, clicking on a link etc.
Note: The connection between the tile and the target mapping is done via the intent. If there is no target mapping available which is matching the semantic object, the action and device type for a tile, then the tile is not displayed on the Fiori launchpad (neither in the catalog, nor in the group). Navigation to the target application is not possible for this intent.
Separation of Target Mapping and Tiles
Use Case
You want to offer the same tile group on the Fiori launchpad for different user types – but with different tiles visible in dependence of the user type.
For example
- The manager should have two approval apps within the Travel Services tile group on the home page.
- The employee should have only one app to create and display his own travel requests within the Travel Services tile group.
Proposed Catalog Setup
To distinguish via employee and manager separate tiles and target mapping into different catalogs:
- Catalog 1 Travel All containing all tiles (three travel apps),
- Catalog 2 Travel Manager containing only target mapping for the approval tiles which should be availble for the manager
- Catalog 3 Travel Employee containing only target mapping for the travel request tile which should be availble for the employee.
Then assign catalog 1 and catalog 2 to the manager and catalog1 and catalog 3 to the employee.
Step by Step
1. Create a catalog Travel All containing all travel app tiles (no target mapping):
2. Create a catalog Travel Manager containing only the target mappings for approval apps:
3. Create a catalog Travel Employee containing only the target mapping for the travel request tile:
4. Create a tile group Travel Services and add all tiles of catalog Travel All to this group:
5. Create two roles within transaction PFCG and assign it to the relevant users:
-
- Employee Role: this role should contain
- Catalog Travel Services (=Travel All)
- Catalog Travel Employee
- Tile group Travel Services
- Employee Role: this role should contain
-
- Manager Role: this role should contain
- Catalog Travel Services (=Travel All)
- Catalog Travel Manager
- Tile group Travel Services
- Manager Role: this role should contain
Summary
Both, manager and employee have the same group on the FLP home page, but according to their role different tiles/apps are available within this group. This has been achieved by the assignment of different target mapping catalogs in dependence of the user type. The tile catalog and tile group are the same for both user types. Like this you can reuse the same tile group for different user types and keep the number of different groups small – also if you have a lot of different user types.
Further Remarks
Bundling the target mappings for a certain user role in a PFCG role, it’s possible to set up a kind of automated and dynamic tile assignment via the PFCG role assignment mechanism. One PFCG role can contain one or multiple target mapping catalogs,
The granularity of roles and catalogs has to be optimized according to your special use case. Be aware that tile catalogs that are too large can lead to performance issues.
Further Information
SCN Blog:Simplification of Target Mapping Configuration without LPD_CUST
Hi Carola Steinmaier
Thanks for sharing this method. It is actually quite timely for me, I have been achieving the same result but without the full understanding of why/how it was working. What I have been doing is having a group as you describe and two different catalogs, one for employees and one for managers. In the PFCG roles both employees and managers get the group assigned but each gets their own Catalog assigned. What I observed was that employee only saw their tiles in the group and likewise for managers.
Your method makes this a bit more efficient I think. I hadn't realized that it was the Target Mappings that controlled the visibility, I thought it was just the catalog assignment (now I do!).
One drawback however is if you are using tiles that don't use semantic navigation (e.g. don't have related target mappings), for example you might just open a URL. In that case the method you describe won't work. Do you have any suggestion for those cases?
Thanks again,
Simon
Hi Simon,
also an URL can be launched using target mapping.
With Netweaver 7.50 or UIAddon2.0 you can define different application types as target within the launchpad designer. One of the app types is an URL.
You can also use URL target mapping via LPD_CUST.
Kind regards,
Carola
Hi Simon,
there only two possibilties:
Kind regards
Carola
Hi Carola,
I have two URL tiles, which are put into respective catalog,
I have another group which contains both tiles.
user assigned one catalog and group still see both tile in the flp.
our system is business suite on hana. nw 7.4 sp14
do you have any idea about this?
Best regards,
Jun
Hi
Did you manage to find out why? I have the same scenario and outcome. I am assuming is because of missing target mapping.
If the target mapping are missing then all tiles without target mapping in the group will be visible to the user
Fantastic solution Carola,
this is exactly what we were looking for. Nice job documenting the solution!
Hello Carola,
in the screenshots, the tile groups are displayed horizontally rather than vertically (as I'm familiar with). Is this a NW 7.50 feature or also available in NW 7.40?
Regards
Wolfgang
Hello Wolfgang,
there was no change related to the display of tile groups:
The groups are listed on the left hand side of the screen - in this case, you only can see one group 'Travel Services'. On the right hand side of the screen you can see the tiles which are part the this group.
Kind regards,
Carola
Hello Carola,
but the first screenshot of the launchpad shows two tiles, "Approve travel requests" and "Approve Travel expenses" which seem to be part of tile group "Travel service". Thus I expected that the horizontal navigation ("SAP Fiori ___ My Home ___ Travel Services ___ HCM Services ___ FLP Demo") represents tile groups.
Regards Wolfgang
Hello Wolfgang,
Now, I got your question. It relates to the new anchor navigation on the Fiori launchpad home page.
Yes, on the top of the page you have the possibilty to navigate per click to a certain tile group on the home page. This is a new feature available with NW7.50 Sp02.
Like this you can avoid scrolling and navigate directly to a certain tile group.
The screenshot shows only the upper part of the launchpad home screen after navigating the Travel Services group. Below the tile group (Travel Services) you would find the other tile groups ( HCM Services, FLP Demo).
Scrolling up you would see the tile groups SAP Fiori and My Home)
Kind regards
Carola
Hi Carola,
Do you know if we can control tile visibility (Intranet and internet) using parameters in target mapping? Please let me know your thoughts.
Best,
Vikas
Carola,
Thanks for sharing this information!
This is a great method, however creating sub catalogs for the tile visibility still sounds like a workaround to me, because customers who are planning to implement 100's of apps will have tough time maintaining these additional catalogs. Typically anyone from Portal or BI background would expect the tile/app visibility to be controlled by a role.
Today we can assign a Catalog/Group to a role, similarly it will be great to have an option to assign an app/tile to a role. Any thoughts?
-Anil
Hi Anil,
Currently tiles are always packaged in a catalog. Tiles itself cannot be added to a role standalone. But is it not like this, that a specific user role includes several apps ? E.g.: each HR Manager needs several approval apps. These apps could be bundled in one HR manager target mapping catalog. In addition the manager needs the catalog containing all related tiles, which could be one big HR catalog with all HR tiles.
So the granularity of target mapping catalogs is related to the granularity of different roles (HR manager, Employee, ...). How many different user roles do you have?
Kind regards.
Carola
Carola,
Thanks for the prompt response.
We are following your method, and it works great, however we realized that for every combination we are creating target mappings catalogs.
Lets take a same example:
HR Catalog: (All Apps)
App1: My Timesheet
App2: My Benefits
App3: Approve Timesheet
We have two types users HR Manager, and US Employee
Create target mapping catalog with 3 apps (1,2, &3) and assign it to HR Manager Role
Create target mapping catalog with 2 apps (1& 2) and assign it to US Employee Role
Now there is a requirement where CA employees should not have access to the App1, so now i create a new target mapping catalog with two apps (2 &3) and then assign it to a CA Employee Role.
That was just a simple scenario, now imagine you have 300 apps, and maintaining several target mapping catalogs for different combinations will be a nightmare.
I understand that it is currently not possible to map specific role to several apps, all i am trying to say is that i wish there was a simpler solution than to create a "target mapping catalogs".
-Anil
Hi Carola,
On the same topic.. I would really love to have a BAdI ( for ex: in the method '/iwbep/if_mgw_appl_srv_runtime~get_entityset' ), that lets me dynamically control the availability of tiles based on the User's ECC Role. This eliminates the need of having to create multiple catalogs & that many PFCG Roles and the associated transport requests. The approach suggested by you is great in that, a lot can be accomplished without a single line of code. But it does involve multiple components/dependencies. I would still want a BAdI just to have the flexibility in control and can be implemented as needed.
~Suresh
Hello Suresh,
this requirement we've heard multiple times. But unfortunately I cannot make some hope, that we will offer a BADI concept.
Our goal is to optimize performance when loading the FLP home page. If we open it for exits which lead to server round trips and uncontrollable backend logic, this is not the right direction to achieve this.
But we are working on further possibilties to control the visibility of tiles via additional parameters (besides the semantic object and action).
No details and timelines available so far. But when it's ready, I'll post it :.-)
Kind regards, Carola
Thanks for the clarification, Carola.
Dear Friends,
When i used FM Infotype 0185 FM HR_INFOTYPE_OPERATION to create 0185, A SYSTEM ERROR COME:A complex application error has occurred.when i uesed below codes and letGV_DIALOG_MODE = '2' ,the problem not come.what prolbem?
* COP 复制
*DEL 删除
*DIS 显示
*EDQ 加锁/解锁
*INS 创建
*LIS9 定界
*MOD 更改
*INSS 对活动的创建未转动更改
DATA LV_OPERATION TYPE PSPAR-ACTIO VALUE 'INS'.
DATA LV_NOCOMMIT TYPE BAPI_STAND-NO_COMMIT VALUE ABAP_TRUE.
DATA LV_LOCKINDICATOR TYPE P0001-SPRPS VALUE ABAP_FALSE.
DATA LV_KEY TYPE BAPIPAKEY.
DATA LV_SUBTYPE TYPE P0001-SUBTY.
DATA LW_P0185 TYPE P0185.
***************init
CHECK P_OUT-TYPE <> G_ERROR .
************
IF P_OUT-ICTYP IS NOT INITIAL.
LW_P0185-PERNR = P_OUT-PERNR.
LW_P0185-BEGDA = P_OUT-ONBDATE.
LW_P0185-ENDDA = '99991231'.
LV_SUBTYPE = P_OUT-ICTYP.
* LW_P0185-SUBTY = LV_SUBTYPE.
LW_P0185-ICTYP = P_OUT-ICTYP.
LW_P0185-ICNUM = P_OUT-ICNUM."证件号码
* LW_P0185-ISSPL = P_OUT-ISSPL."证件签发地 "复杂的应用程序错误
LW_P0185-USEFR = P_OUT-USEFR."证件有效开始日期
LW_P0185-USETO = P_OUT-USETO."证件有效截止日期
* LW_P0185-ASTAT = '2'.
BREAK 54478.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
INFTY = '0185'
NUMBER = LW_P0185-PERNR
SUBTYPE = LV_SUBTYPE
* OBJECTID =
LOCKINDICATOR = LV_LOCKINDICATOR
* VALIDITYEND =
* VALIDITYBEGIN =
* RECORDNUMBER =
RECORD = LW_P0185
OPERATION = LV_OPERATION
* TCLAS = 'A'
DIALOG_MODE = GV_DIALOG_MODE
NOCOMMIT = LV_NOCOMMIT
* VIEW_IDENTIFIER =
* SECONDARY_RECORD =
IMPORTING
RETURN = P_RETURN
KEY = LV_KEY.
IF P_RETURN-TYPE = 'E'.
P_OUT-TYPE = P_RETURN-TYPE .
P_OUT-MESSAGE = P_RETURN-MESSAGE .
PERFORM ADD_MESSAGE USING P_OUT.
EXIT.
ENDIF.
ENDIF.
Thanks
Ravi
Dear Ravi, in that case you have to open a ticket with the component CA-FE-FLP. Regards, Sandra
Hello Carola,
nice one! is it bulletproof that sap keeps this behavior during the different SAP_UI version? I'm a little bit afraid in using this and determine later that this was just kind of bug-using.
best regards
Johannes
Hello Johannes,
tiles using intent-based navigation (SemanticObject-action) are hidden (in FLP catalog/homepage) if there is no matching Target Mapping with same intent at runtime. This is design decision in the FLP which is going to stay. Another factor influencing the visibility of tiles is the form factor (Desktop/Tablet/Phone).
Best regards
Marek
Thank you for the clear solution, but I have a question:
By Assigning the "Catalog Travel Services (Travel All)" this means that the employee can access the catalog that contains the three tiles, then he can customize his home and add the manager's tiles also to his FLP.
How to prevent the employee seeing the catalog All.?
thanks
Hi,
the tiles for which the user has no target mapping assigned should not appear within the tile catalog (AppFinder). Therefore the user can not add the tiles to the FLP Home page.
Kind regards.
Carola
Hi Carola,
Very informative blog. I would like to discuss one scenario - In case we would want to restrict the tiles on Intranet VS Internet with same catalog. Is it possible?
e.g. In case user is accessing the FLP via internet, he should see less number of tiles (limited tiles), however when use is within Intranet, he should see complete list of tiles (full set of tiles).
Kindly let me know your views.
Best,
Vikas
Carola, thanks a lot for your blog, it is very useful!
At the moment I'm facing an issue when trying to restrict visibility for some analytic tiles, Overdue Receivables for example. Is it possible at all?
Hello,
For your information: this approach is not working for custom tiles especially for any Smart Business KPI Tile. Please refer to KBA note 2644149 for that. The functionality is simply not implemented and the Smart Business team confirmed that there are not plans to implement this functionality of targetmappings because of performance overhead issues in Fiori Launchpad.
Does anybody have a feedback for a live installation with a large number of users? We did plan to use target mappings for every business role we have to have a consistent Fiori tile group menu for each business process. So basically we planned that there is a tile group for a process and dependign on the role only tiles relevant for a business role get displayed. However now we have high considerations whether we should NOT use target mappings in the complete fiori design. (and we have Fiori in a lot of business processes).
Carola Steinmaier: Maybe you were already involved: can you confirm that as well?
Would you also recommend to implement target mappings for standard tiles / apps? Are there any other known restrictions e.g. for custom apps in general? (you can refer to our incident 167429 / 2018 if helpful)
In addition: "the tiles for which the user has no target mapping assigned should not appear within the tile catalog (AppFinder). Therefore the user can not add the tiles to the FLP Home page."
So far I believe Smart Business tiles are listed in the app finder although they are not in the target mapping.
Thanks a lot for your help and reply!
Best regards
Peter
Hi Carola Steinmaier
Thank you for the blog. It is very informative and useful. 3 years down the line and still relevant.
I am however wondering about the purpose of catalog 1 without target mapping.
Kind regards
Do you need help by the community? For the benefit of all SAP Community members having similar questions, please post your question here: https://answers.sap.com/questions/ask.html That way, your question is addressed with all related experts within SAP Community and your answered question can be helpful for others in future.
Have a look at our tutorial for asking and answering questions in SAP Community: https://developers.sap.com/tutorials/community-qa.html
Best regards
Mynyna (SAP Community moderator)