Show TOC

Configuring NavigationLocate this document in the navigation structure

The SAP Fiori launchpad enables you to specify that the same application is launched in different views or modes depending on the end user's role. To allow this, navigation between launchpad applications is based on abstract representations (intents) that are resolved to concrete navigation targets.

Each application within the launchpad has a resource locator (URL) by which it can be loaded. Instead of directly encoding the (technical) name of the target application into the URL hash, the launchpad performs an indirection by so-called intents.

An intent is a mechanism that allows users to perform actions on semantic objects (such as navigating to a sales order or displaying a fact sheet), without worrying about the UI technology or technical implementation of the navigation target.

Intent-based navigation is necessary in the following cases:
  • Depending on the user’s role, a different application or view of an application should be displayed.
  • To extend and customize Fiori scenarios, you can change a target without modifying the Fiori application code.
  • Different Fiori apps have different life cycles. An app cannot assume that another app exists in a productive environment since it might not have been deployed.
Intents are comprised of the following parts:
Table 1:
Semantic object Represents a business entity such as a customer, a sales order, or a product. Using semantic objects, you can bundle applications that reflect a specific scenario. They allow you to refer to objects in a standardized way, abstracting from concrete implementations of these objects.

You can either use semantic objects shipped by SAP, or create new semantic objects.

Action Describes which operation (such as display or approvePurchaseOrders) is intended to be performed on a semantic object (such as Purchase Order or Product).
Semantic object parameters Define the instance of the semantic object (e.g. by specifying the employee ID).

Intents have the following pattern:

#<semantic object>-<action>?<semantic object parameter>=<value1>

Example:

The intent #SalesOrder-displayFactSheet?SalesOrder=27 specifies that a fact sheet for the sales order no.27 is launched.

The intent-based fragment identifier #SalesOrder-displayFactSheet?SalesOrder=27 may be resolved to the following URL:

https://<server>:<port>/sap/bc/ui5_ui5/ShowEmployeeSalesOrders.html?id=27

However, the URL of the launchpad hides the actual URL under an intent-based URL.

For example:

https://<server>:<port>/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html#SalesOrder-displayFactSheet?SalesOrder=27

The same intent can be resolved differently based on the role of the user that triggers the navigation. For example, you may want to define that a manager can display a different version of an employee fact sheet than regular employees. Thus, for managers the intent #factsheet-display should resolve to view1 of your application, while for regular employees it should resolve to view2.

The intent is resolved to the concrete navigation target by the launchpad target resolution service. The concrete application targets have to be configured by the administrator. In this configuration (called target mapping), admins map the combination of a semantic object and an action (both defined in the app launcher tile) to the navigation target by specifying launchpad role and instance as well as application alias or ID. This allows any link specifying an intent-based URL to trigger the correct application assigned to the user. Since target mappings are assigned to users as part of a catalog, they can be assigned to PFCG roles, while an intent is independent of a role and can therefore be resolved differently based on the role of the user that triggers the navigation.

Navigation Flow
  1. An administrator has set up navigation using the launchpad designer and transactions PFCG and LPD_CUST.
  2. The user logs on to the SAP Fiori launchpad and sees the assigned tiles in the home page.
  3. When the user selects a tile, the system checks if an intent with the semantic object/action pair exists in the PFCG permissions of the user.
  4. If yes, the system resolves the navigation target using the information stored in the LPD_CUST configuration and navigates the user to the target application.