Skip to Content

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.

 

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.

FLPConfiguration Steps.png

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.

Manager_home2.png

  • The employee should have only one app to create and display his own travel requests within the Travel Services tile group.

Employee_home1.png

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):/wp-content/uploads/2016/02/tiles_894235.png

2. Create a catalog Travel Manager containing only the target mappings for approval apps: /wp-content/uploads/2016/02/target_manager_894234.png

3. Create a catalog Travel Employee containing only the target mapping for the travel request tile: /wp-content/uploads/2016/02/target_employee_894236.png

4. Create a tile group Travel Services and add all tiles of catalog Travel All to this group:/wp-content/uploads/2016/02/travel_group_894162.png

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.png

    • Manager Role: this role should contain
      • Catalog Travel Services (=Travel All)
      • Catalog Travel Manager
      • Tile group Travel Services

Manager_role.png

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

To report this post you need to login first.

20 Comments

You must be Logged on to comment or reply to a post.

  1. Simon Kemp

    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

    (0) 
    1. Carola Steinmaier Post author

      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

      (0) 
    2. Carola Steinmaier Post author

      Hi Simon,

      there only two possibilties:

      • Use target mapping also for URL tiles
      • use separate catalogs for URL tiles and control visibilty by assignment of catalogs as you did

      Kind regards

      Carola

      (0) 
  2. Kenneth Hartman

    Fantastic solution Carola,

    this is exactly what we were looking for. Nice job documenting the solution!

    (0) 
  3. Wolfgang Mayer

    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

    (0) 
    1. Carola Steinmaier Post author

      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

      (0) 
      1. Wolfgang Mayer

        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

        (0) 
        1. Carola Steinmaier Post author

          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

          (0) 
  4. Anil Bavaraju

    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

    (0) 
    1. Carola Steinmaier Post author

      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

      (0) 
      1. Anil Bavaraju

        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

        (0) 
      2. Suresh Datti

        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

        (0) 
        1. Carola Steinmaier Post author

          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

          (1) 
            1. yitan xue

              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 PSPARACTIO VALUE ‘INS’.

                 DATA LV_NOCOMMIT TYPE BAPI_STANDNO_COMMIT VALUE ABAP_TRUE.

                 DATA LV_LOCKINDICATOR TYPE P0001SPRPS VALUE ABAP_FALSE.

                 DATA LV_KEY TYPE BAPIPAKEY.

                 DATA LV_SUBTYPE TYPE P0001SUBTY.

                 DATA LW_P0185 TYPE P0185.

              ***************init

                 CHECK P_OUTTYPE <> G_ERROR .

              ************

                 IF P_OUTICTYP  IS NOT INITIAL.

                   LW_P0185PERNR = P_OUTPERNR.

                   LW_P0185BEGDA = P_OUTONBDATE.

                   LW_P0185ENDDA = ‘99991231’.

                   LV_SUBTYPE     = P_OUTICTYP.

              *    LW_P0185-SUBTY = LV_SUBTYPE.

                   LW_P0185ICTYP = P_OUTICTYP.

                   LW_P0185ICNUM = P_OUTICNUM.“证件号码

              *    LW_P0185-ISSPL = P_OUT-ISSPL.”证件签发地  “复杂的应用程序错误

                   LW_P0185USEFR = P_OUTUSEFR.“证件有效开始日期

                   LW_P0185USETO = P_OUTUSETO.“证件有效截止日期

              *    LW_P0185-ASTAT = ‘2’.

                   BREAK 54478.

                   CALL FUNCTION ‘HR_INFOTYPE_OPERATION’

                     EXPORTING

                       INFTY            = ‘0185’

                       NUMBER           = LW_P0185PERNR

                       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_RETURNTYPE  = ‘E’.

                     P_OUTTYPE =   P_RETURNTYPE .

                     P_OUTMESSAGE  = P_RETURNMESSAGE .

                     PERFORM ADD_MESSAGE  USING P_OUT.

                     EXIT.

                   ENDIF.

                 ENDIF.

              Thanks

              Ravi

              (0) 
  5. Johannes Goerlich

    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

    (0) 
    1. Marek Barwicki

      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

      (0) 
  6. Tareq Assaf

    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

    (0) 
    1. Carola Steinmaier Post author

      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

      (1) 

Leave a Reply