Show TOC

NavigationLocate this document in the navigation structure

The smart templates control the navigation to and from the list report and the object page. The various navigation aspects are listed in the Navigation section of the SAP Fiori Design Guidelines.

Navigation from the App

You can either specify a URL for external navigation targets or by associating a semantic object (= intent-based navigation). In the case of URL-based navigation, there are two annotation options that you can use: You can either specify the absolute URL explicitly, or use a path reference to a property using the annotation DataFieldWithUrl as follows:

Example DataFieldWithURL:
<Record Type="UI.DataFieldWithUrl">

    <PropertyValue Property="Value" Path="URL"/>

    <PropertyValue Property="Url" Path=""/>

</Record>

In the case of URL-based navigation, an m.Link control is rendered for the property on the list report or object page (if in Display mode).

If you associate a semantic object annotation to any property, this establishes Intent-Based Navigation.

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 being concerned with 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 must be displayed.
  • You want to define an ambiguous navigation target. This means that, at run-time, a list of potential targets is offered to the user.

The following is an example of a cost center as semantic object:
<Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="ZFAR_CUSTOMER_LINE_ITEMS2_SRV.Item/CostCenter">

    <Annotation Term="com.sap.vocabularies.Common.v1.SemanticObject" String="CostCenter"/>

</Annotations>
In the case of intent-based navigation, a smart link control will be rendered on the list report or object page (if in Display mode).
Note The list report uses the <smarttable:semanticObjectController> feature of the smart table.
A semantic object represents a business entity and enables you to refer to such entities in an abstract implementation-independent way. The semantic object and its navigation targets are reflected in the Related Apps button on the object page. Here, a service of the unified shell is to return all possible targets that are linked to the given semantic object.
Note The Related Apps button is only visible if you set a parameter showRelatedApps in the configuration (manifest.json) after generating your app.
One feature of the list report is the interpretation of annotation com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation: If a property is tagged with this, it will not be presented as a table column, but as a button on top of the table that triggers intent-based navigation.
Navigation after Executing a Function

Navigation may also be required after the execution of a regular FunctionImport which is not tagged as DataFieldForIntentBasedNavigation. The behavior after the execution of the function is controlled by the application as follows: If the FunctionImport returns multiplicity 1 and ReturnType=EntityType + EntitySet, the smart template navigates to the instance that is returned by the function import.

Navigation to the App

Navigation to the app uses deep linking. For more information, see Navigation in the SAP Fiori Design Guidelines and go to the Deep Links section.

Note

This type of navigation requires the SAP Fiori launchpad. For a stand-alone app, you must change the links in the annotations as required.

For the SAP Fiori launchpad, the configuration steps for Intent-Based Navigation are also relevant, as it is the same mechanism.