Understanding launchpad object relationship with screenshots
After you create a custom app or extend a standard Fiori app, tile is required for launching the app.
Here are screenshots explain the launchpad objects relationship.
- User -> Role (Transaction: SU01)
- Role -> Catalog/Group (Transaction: PFCG)
- Catalog/Group -> Tile (launchpad designer)
- Tile -> Intent ( launchpad designer, Tile)
- Semantic Object (Transaction: /UI2/SEMOBJ and /UI2/SEMOBJ_SAP)
- Intent -> Application Alias (launchpad designer, Target Mapping)
- Application Alias -> App URL (in LPD_CUST)
Application Alias -> Component ID (in LPD_CUST)
- App -> Component ID in Configuration.js (Transaction: SE80)
Example app is Approve Purchase Order.
1. User -> Role (Transaction: SU01)
The user has roles SAP_MM_BCR_BUYER_X1 (Group) and SAP_MM_TCR_T_X1 (Catalog).
Role names are documented in App catalog of help.sap.com.
Business Role = Group.
Technical Role = Catalog.
2. Role -> Catalog/Group (Transaction: PFCG)
The role SAP_MM_BCR_BUYER_X1 has Menu object Group:SAP_MM_BCG_BUYER_X1.
3. Catalog/Group -> Tile (launchpad designer)
The catalog has the tile Approve Purchase Order. When the tile is selected in the launchpad, the app should be launched.
4. Tile -> Intent ( launchpad designer, Tile)
The tile Approve Purchase Order has intent PurchaseOrder-approve. Intent = Semantic Object + Action.
5. Semantic Object (Transaction: /UI2/SEMOBJ and /UI2/SEMOBJ_SAP)
Semantic Objects are defined in the transaction /UI2/SEMOBJ(for customer) and /UI2/SEMOBJ_SAP(for SAP)
6. Intent -> Application Alias (launchpad designer, Target Mapping)
The intent has Application Alias.
7. Application Alias -> App URL (in LPD_CUST)
Application Alias -> Component ID (in LPD_CUST)
The Application Alias is defined in the transaction LPD_CUST. LPD_CUST role is documented in the step 1.
Application Alias has App URL. URL = /sap/bc/ui5_ui5/sap/mm_po_apv.
Additional information has Component ID. SAPUI5.Component=ui.s2p.mm.purchorder.approve
8. App -> Component ID in Component.js (Transaction: SE80)
The app mm_po_apv has several Java Script and component ID is defined.
This is a great write up and easy to follow, but I've got one quick question/observation on this.
Coming from an NWBC/Portal background, but bringing it into the Launchpad concept, there is typically the need to have a single group (from a user perspective and not from a configuration perspective), let's call it Employee Launchpad.
And typically, depending on the user's specific business roles, the content of the Employee Launchpad is different.
e.g. All employees get Create Leave Request, but if you had shopping rights, you would also get to create shopping cart.
With the above model; would you need 2 groups to do this; and does the Launchpad know to combine "group text names" into a single group shown in the launchpad; or is this something you can do through LPD_CUST or PFCG somehow?
Create Leave Request
Create Leave Request
Create Shopping Cart
I don't know about Employee launchpad. It all depends on Employee launchpad.
Logically, if "a single role" is must requirement, you should create 2 roles and assign 1 role to users.
+ Role HR employee = Group HR employee (Leave Request)
+ Role HR and Proc employee = Group HR employee (Leave Request) + Group Proc employee (Shopping Cart)
If "Employee launchpad" can have multiple roles, you can create 2 groups(2 roles) and assign to users.
+ Role HR employee - Group HR employee (Leave Request)
+ Role Proc employee = Group Proc employee (Shopping Cart)
User X has Role HR employee and Role Proc employee
Thanks for the quick reply - I may have confused you with the Employee Launchpad as all I meant was the grouping name you see when you login to the Launchpad. Regardless, it sounds like it's an all or nothing type of configuration in the launchpad when compared to NWBC/Portal. e.g. There is no aggregation of content based on roles within the groups a user sees. e.g. If you only want 1 "group" name to appear in the Fiori Launchpad, your user should ensure they only get Role HR Employee or Role HR and Proc employee but not both.
Hopefully one of us misunderstood each other as that will make Identity Management more complex than necessary (e.g. assign this role unless they also need this role) ,or imagine if you had to add 1 more transaction to both of those roles (maintenance would be ugly).
I misunderstood. Question was about some auto aggregation function in the NWBC/Portal.
Could you share some background for aggregation function? What were use cases for end users and benefits?
A picture may help...Imagine 90% of Employees have the following in their Employee Launchpad area of the Fiori Launchpad:
Now if the other 10% also have an additional tile requirement within the Employee Launchpad Group because their business role requires this; the question would be: Does Fiori Launchpad support tiles being added to the one grouping like Employee Launchpad above, via the authorisation that a user has without needing to duplicate tiles.
e.g. In NWBC, I could have a PFCG role which is Z_EMPLOYEE_ALL which is assigned to veryone and gives all employees standard transacitons, but I could then add Z_EMPLOYEE_CONTRACTOR (as an example) to all employees also classified as contractors to give them additional transactions within the same menu area.
The specific example I currently have is a team administrator is not a manager but has additional capabilities that other employees that would be good to display in this one grouping.
That's a little use-case I can think of but I'm sure this requirement will become much greater as the number of apps increase and we try to organise this all without thousands of groups appearing in the Fiori Launchpad (and importantly I'm referring to the Groups that appear to an end user and not Security Groups created in the Fiori Admin).
Fiori launchpad has following functions. Those functions help end users to have more flexibility and it is close to app management in their smart phone .
1. Users can create personalized groups
2. Users can add apps from catalog
3. Users have own personalized Home group which comes at top of screen.
4. Users can search tiles (apps)
Thanks - And understand all those benefits, but it does need to default to something usable without having to force an end user to design/personalise their launchpad experience; but I guess the point is something like this is not supported currently so you would need to roles with duplicated content to support the above requirement. No dramas, but good to know.
Matt, we are currently in stage of setting up FES in a Hub scenario and having the same question. Does the system behave like you said or did you overcome this limitation?
Thanks and kind regards
What I can say is that FLP has been undergoing lots of changes recently, so it would be worth testing what has been added since this discussion. e.g. Even 6 months ago, they made it easier to visualise the tiles in the group view when previously it was impossible with similar named tiles.
I know this is an old one, I just stumbled upon this. I think what you want to achieve could (also at that time probably) be done with intent-based navigation and specific target mappings for different user groups, see here for some great write-up.
Yes it does - and that post was what taught me that many months ago but thanks for following it up. Heavily using that at my current customer.
Great news, if only we had this information by the time we setting up our own environment. Went down the path to put every app in it’s own catalog in order to granularly assign specific apps to different users
Anyways, will revert to the intent-based nav technique as soon as I find some spare minutes.
BTW: This is also an excellent blog of Jocelyn touching the same topic https://blogs.sap.com/2017/03/12/leading-s4hana-ux-launchpad-driven-authorizations-part-1-configuring-the-launchpad-role/
I have a custom Fiori application embedded into Fiori launchpad. Now I don't see a std. feature of adding a tile to My Home group ("Save Tile"). And also this feature doesnt seem to be built into applications. So could you please help here ?
Do we have any recomendation for the action to be chosen?
I am referring to Step 6 where we provide action - Approve.
We have a custom application which is non-Approval but has updates to backend
Hence want to know any guidance to provide the values for 'Action'
Also, is it dependent on the component.js file?
We are new to Fiori and we don’t know how to trouble shoot the fiori Launchpad. We had done the configuration for Purchase order approval. After all configuration we are getting the following error in SAP fiori Launchpad. Any valuable information to solve this issue is highly appreciated.
SAP Fiori - SAP Fiori launchpad troubleshooting may help.
Thank you masayuki,
We cleared the metadata cache and it’s worked. But in the Launchpad its show the purchase order count as zero and we are trying to fix this issue
If i don't have a Component.js, does that mean i don't need to fill out the "Additional Information" field?
Please take a look at How to get your SAP UI 5 apps to work like SAP Fiori Apps in SAP Fiori Launchpad.
Hello Masayuki Sekihara,
I was gone through your blog and tried to access PO Approval application in fiori launchpad. But finally i end up with the error while loading the tile. And also no catalog or group added as you mentioned in step 3.
Please create a new Discussion.
Yes Masayuki Sekihara,
I have created new discussion.
Fiori Launchpad PO Approval
Again a fantastic post masa. 🙂 😎
Is there a way to pass parameters between apps using intent based navigation and semantic objects?
I am using Webide and can see routing and navigation tabs in mainfest.jason files, but did not find any good documentation or how to document on how to navigate + pass parameters for app to app navigation.
Here you go. Handling Startup Parameters. You can utilize a search engine by searching "cross app navigation".
hi Masayuki, great post first of all!.
I have installed FES 4.0 on my system and i can launch my app as a separate standalone app without problem but if i try to write my componentID and a dummy Semantic Name (since it is not suggested to use lpd_cust semantics anymore) and an action on my tile mapping, tile doesn't give any reaction. it is there but it doesn't do anything. Where can be problem ? When i inspect element, a href link is empty. If i manually change url to #SEMANTIC-ACTION, it gives error.
When i check the /UI2/FLIA tcode, i can see my semantic name there but PFCG profile section is empty. I already gave access to that group from the pfcg role and my username is there. Where can be the problem ? Is there a specific place to map semantic objects to roles ?
somehow i can't edit my post, here is the update;
ok i found out that i didin't add CATALOG to PFCG i only added group.Now problem is; i can see my component.js there but when i enter url /sap/bc/ui5_ui5/sap/zfioritest/component.js it says cannot find :/
I am comparing my application with a working application and it doesn't have "page with flow logic" folder. I deployed using eclipse.
alright i found the problem. i moved all my files under webcontent and it is working fine.
there are 302468523 number of tutorials and i am going to prepare a clean step by step "how to make your hello world application work like a sap fiori app for fes 4.0" tutorial. I have 432341 number of chrome tabs open right now just to find a simple problem ah :/ anyway
Thank you Masayuki.
This is awesome documentation
Hi Masayuki, ,
Thanks for this fantastic blog.
After reading it, I was trying to implement the same.
I've a doubt regarding the semantic object and action. Can 2 apps have same semantic object and action assigned to them? If yes, how the system will identify which app to open?