Cross App Navigation: Friendly Navigation in FLP – Quick Guide
Share

[[{“value”:”

Introduction:

This blog is going to help the people who just started the journey in SAPUI5/Fiori. It’s very basic level content which would help the beginners to understand Cross App Navigation and how it works.

In enterprise SAP applications, navigation isn’t just about moving between pages. it’s about maintaining consistency, security and scalability across multiple apps. That’s where the FLP friendly approach came into the picture.

If you are building apps with SAPUI5 inside the SAP Fiori Launchpad, relying on raw URLs or window.location is a shortcut that will eventually cause problems. Instead, SAP provides a structured service for cross-application navigation.

 

Overview:

Cross-App Navigation is a way for one app to open another app by describing what you want to do, not where it is. It also known as Intent-Based Navigation

One Liner: Cross-App Navigation = Navigate by intention, not by URL, with FLP resolving the correct app dynamically. 

As a quick analogy which will help you to understand easily and recall it wisely.

Imagine that you are going to a hospital for the first time, you wouldn’t usually say/ask that you have to go to building B, floor 3, room 27. Instead you would prefer to say,  I need to see a cardiologist. Then the hospital directs you correctly.

That’s exactly how navigation works in SAP using semantic intent. We have to describe what we have to do, not where it is.

Myvizhipriya_Thangaraj_2810_1-1777406733489.png

                                                                                       Picture 1: SAP Fiori Navigation

 

Key Concepts

1. Semantic Object – Represents a business entity (e.g., Supplier, SalesOrder)

2. Action – Defines what you want to do (e.g., display, create, manage)

3. Parameters – Used to pass data between apps (like SupplierId)

 

How it works?

Let’s understand how it works. SAP recommends using the CrossApplicationNavigation service, which actually  works on semantic objects and actions.

image.png                                                                                  Picture 2: SAPUI5 Intent based Navigation

 

Example Snippet:

Source App:

// In our Source or current app:
sap.ushell.Container.getService(“CrossApplicationNavigation”)
.toExternal({
target: {
semanticObject: “SupplierQuotation”,
action: “display” // action can be like anything (display or manage)
},
params: {
supplierId: “SUP123” // As usual Key value pair, Here SalesOrderId is Key Property & 12345 is the value
isActive: false // Please convert this as Boolean value at target app
}
});

                                                                                 Snippet 1: Source App Code – To do Cross App

Target App:

// In our Target App:
onInit: function () {
const oComponentData = this.getOwnerComponent().getComponentData();
const oParams = oComponentData?.startupParameters;
if (oParams && oParams.supplierId) {
const sSupId = oParams.supplierId?.[0]; // always array
const bIsActive = Boolean(isActive?.[0]); // always array & we are converting to boolean using Boolean(X)
console.log(“Supplier Id:”, sSupId);
console.log(“Is Active:”, bIsActive ? “Yes” : “No”);
}
}

                                                                             Snippet 2: Target App Code – To handle parameters

This is how we can retrieve it and handle the data.

 

What Happens Behind the Scenes?

When you trigger navigation:

  • FLP resolves the intent (#SupplierQuotation)
  • Matches it to a configured app
  • Launches the correct application
  • Passes parameters securely 

 

URL Understanding: (Let’s Breakdown)

#SupplierQuotation-display?supplierId=SUP123&isActive=true

Cross URL.png

                                                                  Picture 3: SAPUI5 Intent based Navigation – URL Understanding

For your understanding:
URL => #SupplierQuotation-display?supplierId=SUP123&isActive=true
# => means FLP Routing trigger
Supplier => means Semantic Object
display => means Action
? => means start of the parameters
supplierId=SUP123&isActive=true => means Business Data

/*IMPORTANT*/
How it basically passes: {
supplierId: [“SUP123”],
isActive: [“true”]
}

                                                                          Snippet 3: URL Understanding Notes

Why Not Use Direct URLs?

We can navigate like this: window.location.href = “/sap/bc/ui5_ui5/sap/Z_SALES_APP/index.html?orderId=123”;

But this approach:

  • Breaks in FLP environments
  • Ignores role-based navigation
  • Doesn’t integrate with intent-based routing
  • Becomes hard to maintain across landscapes

 

Benefits of FLP Navigation:

  •  Role-based access control
  •  Loose coupling between apps
  •  Centralized navigation configuration
  •  Works across systems (Dev, QA, Prod)
  •  Supports deep linking & bookmarks

 

Challenges of FLP Navigation:

While handling SAPUI5 navigation parameter, we have to keep in our mind, that values are always  wrapped as arrays, String representation even though  it got passed as Number or Boolean and so we have to convert it properly in the target app.

Myvizhipriya_Thangaraj_2810_3-1777407779093.png

                                                                 Picture 4: SAPUI5 Navigation Parameter Handling Challenges

 

When Should You Use This?

Use FLP navigation when:

  • Moving between SAP Fiori apps
  • Working inside Launchpad
  • Building enterprise-grade solutions

Avoid it only if you’re building a standalone UI5 app outside FLP

 

Conclusion:

Overall, cross app navigation in FLP separates intent from implementation, allowing applications to remain loosely coupled, easier to maintain and aligned with enterprise-level standards.

Hope that you got some idea about Cross app navigation in SAPUI5 in FLP Intent way.

Thank you for taking the time to read this blog! If you found this helpful, i would love to hear your thoughts, feedback or questions in the comments. Let’s keep learning and growing together!

I’m still new to blogging, so if you notice anything that could be improved or corrected, please don’t hesitate to let me know!!

“}]] 

  Read More Technology Blog Posts by Members articles 

#abap

By ali

Leave a Reply