Fiori Elements Navigation Patterns Showcase

Estimated read time 6 min read

Introduction

There are multiple ways to navigate from a Fiori Elements application to another application (outbound navigation).

While the SAPUI5 documentation explains each annotation in detail, it is often focused on code snippets, making it difficult to visualize how each navigation pattern actually behaves in the UI.

To address this, I created a sample repository that demonstrates various Fiori Elements navigation patterns along with their actual UI behavior.

https://github.com/miyasuta/fiori-navigation-patterns

This repository focuses on navigation patterns that can be implemented using annotations only.
Controller extension-based approaches are out of scope and may be covered separately in the future.

In this blog, I will provide an overview of this sample project.

 

Project Structure

This project has a simple structure:

Backend: CAP Node.jsFrontend: Two Fiori Elements applicationsnav-source: Navigation source appnav-target: Navigation target app

The nav-source app demonstrates various navigation patterns, while the nav-target app shows how navigation context is received.

The README includes:

UI screenshots for each navigation patternAnnotation configurationsVerification steps

Figure 1: Excerpt from the project README illustrating navigation patterns and documentation

You can either read the README or run the project locally to explore the behavior yourself.

git clone https://github.com/miyasuta/fiori-navigation-patterns.git
cd fiori-navigation-patterns
npm install
cds watch

After starting the app, open the FLP sandbox (/launchpad) and launch the application.

 

Organizing Navigation Patterns

In this repository, navigation is organized from two perspectives:

Group A — Navigation Trigger: How navigation is initiatedGroup B — Navigation Context: How to control what data is passed to the target application

Separating these two aspects makes it easier to understand how Fiori Elements navigation works.

 

Group A — Navigation Triggers

Group A introduces common patterns for triggering navigation:

Semantic LinkIntent-Based Navigation (IBN) ButtonDirect IBN LinkURL LinkRow-click navigation replacement

All patterns can be tested directly in the nav-source List Report.

Figure 2: Navigation trigger patterns displayed in the nav-source List Report

In addition to the main patterns, the repository also covers a few supplementary behaviors, such as:

Dynamic semantic objects (supported only for semantic links)Conditional visibility of navigation actionsHiding specific actions from semantic object popovers

 

Group B — Navigation Context

Group B explains how to modify parameter mappings and control which data is passed (or not passed) to the target application.

In particular, it covers how to:

Map local fields to different parameter namesPass association propertiesExclude sensitive or irrelevant fields from the navigation context

These patterns help you control exactly what information is transferred during navigation and how it is interpreted by the target application.

 

Which Navigation Pattern Should You Use?

Since there are multiple options, it is not always obvious which pattern to choose.

This repository provides a simple decision guideline:

Figure 3: Decision guideline for choosing the appropriate navigation pattern

The diagram above provides a practical guideline for selecting the appropriate navigation pattern based on your scenario.

 

Conclusion

Fiori Elements navigation is powerful but can be difficult to understand due to the number of available patterns.

This sample project organizes navigation into:

Navigation triggersNavigation context

and allows you to explore both aspects through working examples.

I hope this repository helps you better understand and design navigation in your Fiori Elements applications.

 

 

​ IntroductionThere are multiple ways to navigate from a Fiori Elements application to another application (outbound navigation).While the SAPUI5 documentation explains each annotation in detail, it is often focused on code snippets, making it difficult to visualize how each navigation pattern actually behaves in the UI.To address this, I created a sample repository that demonstrates various Fiori Elements navigation patterns along with their actual UI behavior.https://github.com/miyasuta/fiori-navigation-patternsThis repository focuses on navigation patterns that can be implemented using annotations only.Controller extension-based approaches are out of scope and may be covered separately in the future.In this blog, I will provide an overview of this sample project. Project StructureThis project has a simple structure:Backend: CAP Node.jsFrontend: Two Fiori Elements applicationsnav-source: Navigation source appnav-target: Navigation target appThe nav-source app demonstrates various navigation patterns, while the nav-target app shows how navigation context is received.The README includes:UI screenshots for each navigation patternAnnotation configurationsVerification stepsFigure 1: Excerpt from the project README illustrating navigation patterns and documentationYou can either read the README or run the project locally to explore the behavior yourself.git clone https://github.com/miyasuta/fiori-navigation-patterns.git
cd fiori-navigation-patterns
npm install
cds watchAfter starting the app, open the FLP sandbox (/launchpad) and launch the application. Organizing Navigation PatternsIn this repository, navigation is organized from two perspectives:Group A — Navigation Trigger: How navigation is initiatedGroup B — Navigation Context: How to control what data is passed to the target applicationSeparating these two aspects makes it easier to understand how Fiori Elements navigation works. Group A — Navigation TriggersGroup A introduces common patterns for triggering navigation:Semantic LinkIntent-Based Navigation (IBN) ButtonDirect IBN LinkURL LinkRow-click navigation replacementAll patterns can be tested directly in the nav-source List Report.Figure 2: Navigation trigger patterns displayed in the nav-source List ReportIn addition to the main patterns, the repository also covers a few supplementary behaviors, such as:Dynamic semantic objects (supported only for semantic links)Conditional visibility of navigation actionsHiding specific actions from semantic object popovers Group B — Navigation ContextGroup B explains how to modify parameter mappings and control which data is passed (or not passed) to the target application.In particular, it covers how to:Map local fields to different parameter namesPass association propertiesExclude sensitive or irrelevant fields from the navigation contextThese patterns help you control exactly what information is transferred during navigation and how it is interpreted by the target application. Which Navigation Pattern Should You Use?Since there are multiple options, it is not always obvious which pattern to choose.This repository provides a simple decision guideline:Figure 3: Decision guideline for choosing the appropriate navigation patternThe diagram above provides a practical guideline for selecting the appropriate navigation pattern based on your scenario. ConclusionFiori Elements navigation is powerful but can be difficult to understand due to the number of available patterns.This sample project organizes navigation into:Navigation triggersNavigation contextand allows you to explore both aspects through working examples.I hope this repository helps you better understand and design navigation in your Fiori Elements applications.    Read More Technology Blog Posts by Members articles 

#SAP

#SAPTechnologyblog

You May Also Like

More From Author