SAP Fiori for SAP S/4HANA – Adjusting insight to action app to app navigation
While you can use out of the box SAP Business Roles with the many app to app navigation links provided, you might want to adjust the app to app navigation to fit your own organization’s business roles more precisely. In this blog, you will learn how generic app to app navigation links are configured and how to adjust that configuration to suit your needs.
Even if your initial SAP Fiori scope in SAP S/4HANA is small, it makes sense to keep the user in the SAP Fiori launchpad. Few things are more annoying or unnecessary than swapping between different application windows unnecessarily, such as swapping between a web browser and a SAP GUI Logon window. You can avoid this by adjusting your app to app navigation.
A recent New Zealand customer, who is now live on SAP S/4HANA 1809, wanted to start with a small and clearly targeted SAP Fiori scope to ease their existing user base into SAP Fiori. These users needed access to only a few apps and transactions and were already familiar with SAP GUI. So the approach taken was to:
- Bring new business value by augmenting their current set of GUI transactions with some new SAP Fiori apps providing some simple embedded analytics and dashboards, and
- Take a step towards using SAP Fiori apps to set a future direction towards increasing mobile device usage for the day to day tasks of users who travelled from site to site
- Demonstrate how moving to the SAP Fiori launchpad as a single entry point would improve their user experience and smooth the transition from SAP GUI to SAP Fiori
You can achieve this goal by adjusting the launchpad catalog content configuration using generic app to app navigation. Generic app to app navigation controls navigation options within many apps, for example via hyperlinks to List of Links dialogs or via Related Apps buttons or app links in the Fiori Search results. The aim is to provide the business user with a simple navigation flow:
- Starting from a tile on your home page, launch a SAP Fiori app
- From within the SAP Fiori app navigate to a choice of other SAP Fiori apps or classic UIs (such as a ABAP Web Dynpro app or SAP GUI transaction) via generic app navigation, such as a List of Links dialog or Related apps button.
Note: Many SAP Fiori apps act as dashboards that can either give insights and support actions directly or navigate to other apps and UIs to provide further insights and/or actions. You can see this demonstrated in Understanding insight to action app to app navigation.
In this example, you want your business users to navigate:
- From the SAP Fiori launchpad to SAP Fiori app F2217 Display GL Line Items
- Then within the SAP Fiori app, select a particular G/L Line item and navigate to either:
- ABAP Web Dynpro app FAC_GL_ACCOUNT Manage G/L Account Master Data, passing the G/L Account number, or
- SAP GUI transaction FB03 Display Journal Document, passing the G/L Document number
- Later you want to extend the links to include another SAP GUI transaction FB02 Change Journal Document
For example, you want to navigate from a hyperlink on a Journal Entry number in SAP Fiori app F2217 Display GL Line Items
To a List of Links dialog where you can select from a choice of navigation targets. Each target is a separate hyperlink on a meaningful text, e.g. Display Journal Entries for FB03, Change Journal Entries for FB02.
And when you click on a link such as Display Journal Entries launch the matching SAP GUI transaction such as transaction FB03 Display Document in SAP GUI for HTML.
To adjust the out of the box app to app navigation, you will need to:
- Scope your custom business role
- Identify the components needed to support your app to app navigation chain
- Gather the components into a custom business catalog
- Assign the custom business catalog to your business users via their security role
Once you know how to adjust the app to app navigation there are many places you can use the same skills. Across many of the projects we have seen as part of the SAP S/4HANA RIG team, there are several common use cases for adjusting the app to app navigation that are common across SAP S/4HANA customers:
- Fit to process
- Your custom Business Role and the related process steps your users follow differs from SAP’s out of the box business role. You want to adjust the app to app navigation to support your specific process flow
- Scope control
- Manage the pace of organizational change by introducing SAP Fiori apps slowly, providing links to familiar related classic UIs (SAP GUI transactions or ABAP WebDynpro appplications) for next level detail
- Extend the solution with custom apps
- You want to add your own custom apps into the app to app navigation to supplement or replace standard SAP Fiori apps
The minimum tool needed to adjust the configuration is the Launchpad Designer. This is a web accessible tool that is provided with every SAP Fiori for SAP S/4HANA installation. It is part of your SAP Fiori for SAP S/4HANA foundation.
You can launch the Launchpad Designer tool in client-dependent “CUST” mode using the following link from your SAP Fiori Frontend Server (embedded or hub):
Or just use SAP GUI transaction FLPD_CUST from your SAP Login screen and it will launch the URL for you.
Tip: You can alternatively use the client-independent “CONF” mode by changing the URL to set parameter scope=CONF or using the equivalent SAP GUI transaction FLPD_CONF. You should review the recommendations in Best Practices for Managing Launchpad Content. to understand when to use which mode.
Because you will be making your changes in your development system and transporting them to production, you will need a relevant transport request to hold your changes.
If you are on SAP S/4HANA 1709 or above, you also have the option of using the newer mass maintenance tool, the SAP Fiori launchpad content manager, available from SAP S/4HANA 1709 to perform most of the tasks needed. For those tasks where the launchpad designer is still needed for fine-tuning, Fiori launchpad content manager provides navigation to the Launchpad Designer.
The SAP Fiori launchpad content manager is particularly helpful if:
- You have a larger UX scope, i.e. more apps, more roles or more users
- You want to copy an existing SAP Business Role that mostly fits your needs into a custom catalog and then refine it
- You want to search globally across all catalogs, e.g. to find the app id via Semantic Object id
You can launch the Fiori launchpad content manager from SAP GUI transaction FLPCM_CONF (for CONF mode) or FLPCM_CUST (for CUST mode).
You will also need access to SAP GUI transaction PFCG to assign your custom catalog to your user’s business role (i.e. security role). Alternatively, you can ask your security administrator to do this part for you.
Understanding app to app configuration basics
You will need to understand the main components of launchpad content configuration and how they are assigned to users. All of these components are delivered out of the box as part of your SAP S/4HANA system. You can also create custom equivalents of each component to extend or override those delivered by SAP. You can create custom equivalents either by copying the SAP original or creating your own from scratch.
You can mix and match how you use both the SAP components and your own custom components when assigning content to users. This lets you make optimal use of the delivered SAP components, while providing the flexibility to assign your content exactly as you need.
You may find it easier to start with understanding launchpad content assignment.
A Business Role authorizes a user to access apps from the SAP Fiori launchpad. Technically a business role is implemented as a security role. Just like in SAP Business Suite, security roles are maintained in the administrative SAP GUI transaction PFCG.
You should consider if there is a standard SAP Business Role that is a reasonably close fit to your end goal. SAP delivers approx. 400 Business Roles so there is plenty to choose from. You may even find that your business role can borrow elements from one or more SAP business roles.
Tip: You can find more in the SAP Fiori Launchpad guide for your SAP S/4HANA release, in the section Best Practices for Managing Launchpad Content.
Each business roles consists of one or more Business Catalogs. Each business catalog is a set of related apps. You can think of a catalog as grouping all the apps needed for a business user in a specific business role to complete a specific end to end process. This includes all the target and source apps of any app to app navigation.
Tip: Another way to look at this is the group of apps that can be assigned to a specific user without creating any segregation of duties conflicts.
Next you need to understand the underlying components of Business Catalogs.
Because you might need to reuse the same app in different catalogs (e.g. for steps of different processes) and/or for different business roles, ideally the underlying components of catalogs are held in Technical Catalogs, so that they can be referenced from Business Catalogs. This means if you need to change the underlying components they can be changed once in the technical catalog, and then all business catalogs will be automatically updated. You can reference the components you need for your custom catalog from either technical catalogs or business catalogs freely.
The underlying components of catalogs are:
- Tile Definitions – these determine how the app is presented on the Fiori launchpad Home Page, or in the App Finder. You need at least one tile definition to act as the starting point for the first app in your app to app navigation.
- Target Mappings – these determine which app or classic UI is launched from a tile or from a navigation intent. They include a simple title text which will be shown in the List of Links dialog as the hyperlink to the relevant app or classic UI.
Tile Definitions and Target Mappings are logically referenced by a Semantic Object and Semantic Action combination known as an intent. Navigation using intents is referred to as intent-based navigation.
When you are navigating, you can usually see the Semantic Object and Action in the URL fragment immediately after the hash (#).
You can see the Semantic Object in the URL in your web browser when you open an app immediately after the #, e.g. for SAP Fiori app F2217 you should see:
Tip: This logical reference makes for very flexible navigation possibilities. For instance you can use the same tile to link to different apps or with different parameters on different device types, e.g. to take advantage of native device features on a smartphone. Or reuse the same tile with different business roles but point to different apps for the same type of task, e.g. a simple version for casual users and a more powerful equivalent for frequent users.
Scoping the changes
You need to decide which apps the user needs in the process and the app to app navigation chain you want to implement, i.e. your navigation targets.
In this use case we need:
- SAP Fiori app F2217 Display GL Line Items
- Web Dynpro ABAP app FAC_GL_ACCOUNT Manage G/L Account Master Data
- SAP GUI transaction FB03 Display Journal Document
At this point you should do a quick due diligence check that all of the apps you intend to use are supported for launching from the SAP Fiori launchpad. The easy way to do to this for any apps delivered with SAP S/4HANA is simply to check all of the apps and UIs are listed in the SAP Fiori apps reference library. For the example you can see the apps wanted are all supported:
- SAP Fiori app F2217 Display Line Items in General Ledger
- ABAP Web Dynpro app FAC_GL_ACCOUNT Manage G/L Account Master Data
- SAP GUI Transaction FB03 Display Document
Tip: What do you do if your apps are not supported?
- Check the UI technology type (e.g. SAP Fiori, ABAP Web Dynpro, GUI, etc.) is supported by SAP Fiori launchpad in your SAP Fiori launchpad administration guide
- If the app or classic UI source is SAP S/4HANA, check the app or UI actually exists in SAP S/4HANA, and especially check the SAP S/4HANA Simplification List or Simplification Catalog – in case you are trying to use a blacklisted SAP GUI transaction.
- If it exists and it is a GUI transaction, test it in GUI for HTML to make sure all the features you want are supported under GUI for HTML
If it passes those 3 tests then you can use it. Otherwise you might need to consider a fallback plan, such as using SAP Business Client Launchpad Connection option so that you navigate to a SAP GUI transaction using SAP GUI for Windows.
How do you know there is a generic navigation point List of Links dialog or Related Apps button that allows you to navigate from the Fiori app to other apps?
This is one of the reasons we recommend exploring the holistic Business Role in your sandpit. If you tested opened the SAP Fiori app F2217 using the out of the box SAP Business Role General Ledger Accountant, you would see on the Journal Entry number value that a hyperlink to List of Links dialog is provided. You can also see this in the SAP S/4HANA trial using demo user S4H_FIN.
An alternative option for technical people is to identify the underlying CDS View of the SAP Fiori app, and use the SAP Fiori app F2170 View Browser or the ABAP Development Tools in Eclipse to check for the annotation @Consumption.semanticObject.
Identifying the app to app navigation components
Before you can build your custom app to app navigation chain you need to identify the tile definitions and target mappings that support your app to app navigation flow.
Since all of the apps are listed in the SAP Fiori apps reference library, you can find the tile definitions and target mappings in the relevant business catalogs or technical catalogs. Within the catalog you can find the relevant tile and/or target mapping by identifying the related Semantic Object and action.
In the SAP Fiori apps library, for each app go to the Implementation Information tab, and expand the Configuration section to find the source technical catalogs and business catalogs, and the related Semantic Object and Action.
You can find the components you need in the SAP Fiori apps reference library. Search on the app id, app name, classic UI transaction code, or Semantic Object id. You will find the details you need in the Implementation Information tab, within the Configuration section.
IMPORTANT: From time to time apps may be refactored into different catalogs, so make sure you always select your SAP S/4HANA release and feature pack stack using the dropdown help to get the correct configuration details for your system.
In the Configuration section you will find the related:
- Business Role
- Technical Catalog
- Business Catalog
- Semantic Object and Action
- App type and id
- Existing parameters
For example for SAP Fiori app F2217 in SAP S/4HANA 1809 FPS02 you can see
- the Business Catalog is listed as SAP_SFIN_BC_GL REPORTING
- the Technical catalog is SAP_TC_FIN_ACC_COMMON
- and the semantic object is GLAccount with semantic action displayGLLineItemReportingView
You then have enough information to find the matching business catalog and the tile definitions and target mappings you need.
For example here is the matching Business Catalog entry shown in the Launchpad Designer for the Tile Definition. You can select the line and use the Configure button to check the details.
You can follow the same approach to check the Target Mapping and its details.
Within the Target Mapping you can see any parameters that are passed to the app or classic UI. It’s worthwhile checking this to understand what is included since:
- The SAP Fiori apps library may only mention the most important parameters.
- You should check that the parameters you expect are passed.
- Some apps and classic UIs may be assigned to multiple catalogs.
- This is the situation for SAP GUI transaction FB03 which is assigned to 3 business catalogs: SAP_OIL_BC_ACM_STL_CLRK (ACM Settlement Clerk), SAP_SFIN_BC_AA_MASTER_DATA (Asset Accounting – Master Data), SAP_SFIN_BC_FACT_ACDOC (Financials – Accounting Document Display)
- Since the different business catalogs are associated with different business roles, there can be some differences in the parameters passed.
- So you might need to choose the catalog entry that fits your needs best.
Tip: If you cannot find a catalog entry that matches what you want, you might need to copy the entry into a custom technical catalog or business catalog and adjust the parameters to your specific needs. You can see an example of how to check and adjust your parameters explained in Calling enjoySAP transactions from SAP Fiori apps.
It’s worth noting that not all classic UIs are assigned to Business Roles or Business Catalogs. ABAP Web Dynpro app FAC_GL_ACCOUNT is one of these. In the Business Catalog section you see a message such as the below.
You can still use the classic UI in your own business roles and business catalogs – just be extra careful to check and test all the parameters you need are passed and be prepared to adjust the target mapping if not.
Assigning insight to action app to app navigation chains to business users
To bring it all together you, need to:
- Create a custom business catalog to hold all the components of your app to app navigation chain – You can do this using Launchpad Designer or Fiori launchpad content manager
- Assign the user to your custom business role
Create a custom business catalog in Launchpad Designer
Assign the source and target apps to your business catalog by referencing the desired tile definitions and target mappings of your technical catalogs.
In the Launchpad Designer:
1. Create your custom catalog using the Add button in the footer of the Catalog tab.
2. Add an id and title and press Save. At this point your custom catalog will be empty
3. Open the source catalog, select the entry to be referenced, and press Create Reference in the footer.
3. Use the Select Catalog dialog to assign the reference to your custom catalog.
4. And then repeat until you have all your references in your custom catalog.
Your catalog will end up looking like this
- Tiles preview tab
- Tiles definition tab
- Target mapping tab
Creating a custom business catalog in the SAP Fiori launchpad content manager
SAP Fiori launchpad content manager tool simplifies the creation a custom business catalogs by avoiding the need to swap between your custom catalog and the SAP delivered catalogs you want to reference.
You can use SAP GUI transaction /UI2/FLPCM_CONF to access the content manager tool for making system-wide changes in the configuration scope, or use SAP GUI transaction /UI2/FLPCM_CUST for client-specific changes in the customizing scope.
When you open SAP GUI transaction /UI2/FLPCM_CUST you can see a Search Catalogs field to search across all catalogs, the list of matching catalogs with a toolbar of actions (Create, Deleted, Copy, Change Title, Open in Launchpad Designer, etc.) , and in the bottom pane, the content of the selected catalog.
Use the Create button to create a new catalog. Assign a catalog ID and title.
Select your transport request when asked, to track all changes for transport to your Quality, Test or Production environments . At this stage your catalog is empty.
You start to add content by pressing the Add Tiles/Target Mappings button in the Content in Catalog pane.
Search for the Tile or Target Mapping. E.g. You could search on part of the title of the app or classic UI such as Display Line.
Select your tile or target mapping in the results list, and press Add Tile/TM Reference button to add it to your custom catalog.
The new entry appears in your custom catalog.
Repeat the process until you have gathered all the tiles and target mappings needed into your custom catalog.
Assigning your business catalog to your users
- Create a custom business role
- Assign your custom business catalog to your custom business roles
- Assign your custom business role to your user
You can do this directly in transaction PFCG, or use the generate roles tool as explained in Mass maintenance of Business Roles for SAP Fiori launchpad
When you view your role in SAP GUI transaction PFCG, your role should look something like the example below. Your custom business catalog is assigned to the role. The authorizations have been generated, and the user(s) assigned.
Tip: Remember that as a minimum your user will also need to be authorized to use the SAP Fiori launchpad itself. It’s a good idea to have a test user for each Business Role you create so you can check everything is assigned and authorized as you expect. Using a test user per Business Role avoids rework effort to identify and adjust authorizations in your Quality, Test and Production environments.
Testing your app to app navigation
So now you are ready to logon as your user. At this stage your user should have access to the SAP Fiori launchpad and your custom catalog. In this example you can see a new user GL_SIMPLE who represents our simple GL Accountant user.
Tip: To complete the whole scenario so that your starter tile appears on the Home Page, add a Group in the Launchpad Designer to assign the tile to the Home page. Assign the Group to your test user’s PFCG security role. You can do this before or after you test the app.
IMPORTANT: Groups are optional – you can always access your apps from the App Finder or the App Title button or the Fiori Search. Putting the tile on the home page does not impact the app to app navigation behaviour. To demonstrate this you can launch your SAP Fiori app from the App Finder.
You launch the SAP Fiori app and press Go to bring up some data.
Select the hyperlink to check where it navigates to.
When there is only one app to navigate to, the List of Links dialog does not appear – it just goes straight to the only navigation target.
So in this case it immediately opens GUI transaction FB03 via the AccountingDocument-displayDocument intent. You can check that SemanticObject-action intent in the URL of your web browser.
Use the back arrow icon in the Launchpad Shell Header to return to the SAP Fiori app.
To test the navigation to your ABAP Web Dynpro app, select the G/L Account line and open the G/L Account details.
Then click on the GL Account hyperlink.
This navigates to the ABAP Web Dynpro app FAC_GL_ACCOUNT passing the G/L Account as expected. This uses the Semantic Object GLAccount and action manage.
So you can see that each generic link uses a specific Semantic Object to decide which links are included as navigation targets.
You can prove this further by extending the scenario with one more navigation target, e.g. you could add transaction FB02 Change Document to the Journal Entry navigation using Semantic object AccountingDocument.
IMPORTANT: Remember apps and UIs will only show if the user is authorized to use them!
Extending your app to app navigation
If you later want to add more apps to extend your app to app navigation, you can simply add more tiles and target mappings to the same catalog.
Alternatively you can assign new apps with the same Semantic Object to a different catalog.
Because you are using a generic app to app navigation, your user can access all of the apps and classic UIs with target mappings for the Semantic Object supported by the hyperlink.
Finding more classic UIs with the same Semantic Object
If you don’t have the SAP Fiori launchpad content manager in your system, there is another way to find classic UIs with the same Semantic Object. This is another way to find potential navigation targets for app to app navigation. You can use the SAP GUI transaction SE16 to check the entries in table SUI_TM_MM_APP.
Note: This approach is not suitable for SAP Fiori apps – instead use the SAP Fiori launchpad content manager to search for an app across all technical and business catalogs.
You can check for entries matching the Semantic Objects id, e.g. GLAccount and AccountingDocument. You can usually find a wide range of possible navigation targets this way.
You can use this approach to find out if your favourite classic UI transaction FB02 is listed in any catalog with the same Semantic Object AccountingDocument.
You can see that yes this is available from technical catalog SAP_TC_FIN_GL_BE_APPS.
So you now know you can add FB02 to your custom catalog, by creating a reference to the target mapping in technical catalog SAP_TC_FIN_GL_BE_APPS. You add the target mapping for AccountingDocument-changeDocument to your custom catalog.
Updating your app to app navigation and final checks
You will need to update your business role, i.e. security role, to pick up the changes in your custom catalog, and adjust the authorizations before retesting. You will need to refresh your browser cache for the changes to take effect for your test user.
When you test again, now that there are multiple possible navigation targets for the Journal Entry you will find the List of Links dialog appears.
If you haven’t maintained a title in your target mapping, the intent will be shown by default. You can change this by configuring the title in your custom catalog.
And when you refresh the browser cache to test again, you can see the List of Links dialog shows the titles you have configured.
Taking app to app navigation to the next level
As you go further on this journey, be aware that a business user receives the sum of all the apps and user interfaces assigned to the business catalogs that are assigned to their business role.
So where target mappings are assigned to the same Semantic Object they will automatically be added to same generic app to app navigation points, such as List of Links dialogs, Related Apps buttons, Fiori search results app links, etc.
That’s usually ok – remember this is an approach that supports knowledge workers who understand their process and when to use what. For casual users and users in training, you can use the assignment of apps to business catalogs to control which navigations they are exposed to.
So adding business catalogs can provide an easy approach to add more navigation options over time as your business users grow in knowledge and understanding.
If you want a more guided experience, with SAP Fiori 3 and SAP S/4HANA 1909 you will start to see Situation Handling use cases, where you can prompt and guide users through different use cases. These can even incorporate Intelligent Technologies such as chatbots, Machine Learning and intelligent Robotic Process Automation.
Becoming a SAP Fiori for SAP S/4HANA guru
Many thanks to Peter Nechala for his help with providing the SAP Fiori launchpad content manager flow.
You’ll find much more on our SAP Fiori for SAP S/4HANA wiki
Brought to you by the S/4HANA RIG
Great....Thanks for Sharing , very useful. Thank you Jocelyn Dart
Very informative, thanks for sharing 🙂
I was helped by this blog in my consulting work. Thank you !
Thanks Masaki! That's encouraging to hear!
Thank you very much for your sharing! I have one question, If I add a target mapping in the same catalog, in what situation, it will display as a hyperlink in the app? how to add the links?
Hi Wilson. The link doesn’t need to be in the same business catalog, just somewhere in the same role.
Dynamic links show in search results, smart link (“list of links”) dialogs ( on any hyperlinked field), Related Apps buttons, and jump-to targets. Anywhere the same semantic object is used to drive navigation. They show automatically based on the Semantic Object as explained in the blog.
if that’s not clear enough still, perhaps you could suggest a use case?
The smart links will return all the apps with the same semantic object, does it because of the following annotation?
Thanks a lot sharing this!
If I want to navigate from a Fiori App in S4 system to a GUI transaction in target system, is there any restrictions for the version of this target system? For example my Fiori App is in a S4/HANA system, but the target transaction is in the ECC system, I create a target mapping like this, the Fiori App will pass the ECC system ID to parameter sap-system:
Hi Branden, No particular restrictions ... although for safety's sake I would want it to be NW 7.5 SP01 or above. Things can be a little more problematic with earlier releases ...not a blocker more of a watchpoint.
What you are missing in your example is the System Alias. Setting the System Alias is critical to targeting the correct system, i.e. launching the transaction in your ECC rather than your S/4HANA server.
Hope that helps
Thanks again for your quick reply.
You are absolutely correct, system alias should be maintained.