Skip to Content

In this blog, I would like to discuss on Cross-app navigation, which is from one SAP UI5 application to the other in the SAP Fiori launchpad.

I have created two  SAP UI5 applications:

  1. app1 consist of an “employee Id” field and a “get employee Id” button.
  2. app2 Consist of a simple text.

In the Fiori launchpad, I am calling app2 from app1.

In case of internal navigation in the SAP UI5, which is from one view to the other view / from one page to other: we define our root view, patterns and targets.

In the same way, in order to achieve cross-app navigation in SAP Fiori we define intents in the SAP UI5 application. Intents acts as a target and is mapped with the actual URL at run time. Intents comprises of a semantic object and action to be performed.

Our goal is to navigate to app2, so in the app2 we need to define the intents. In the navigation tab of manifest.json file provide the semantic object name and action to be performed as display

Now in the first application ( app1 ) write the code in the controller as follows.

	onPress: function(oEvent) {
			// get a handle on the global XAppNav service
			var oCrossAppNavigator = sap.ushell.Container.getService("CrossApplicationNavigation"); 
				.done(function(aResponses) {

				.fail(function() {
					new sap.m.MessageToast("Provide corresponding intent to navigate");
			// generate the Hash to display a employee Id
			var hash = (oCrossAppNavigator && oCrossAppNavigator.hrefForExternal({
				target: {
					semanticObject: "employeeId",
					action: "display"
			})) || ""; 
			//Generate a  URL for the second application
			var url = window.location.href.split('#')[0] + hash; 
			//Navigate to second app
			sap.m.URLHelper.redirect(url, true); 

Deploy the apps to Fiori cloud platform by selecting our intent while registering to Fiori launchpad as follows:

Now when you try to navigate from application1 ( app1 ) to application ( app2 ) in the Fiori launchpad by hitting get employee Id button.

you will encounter the following issues:

  •  Failed to resolve navigation target: “#employee-display” –  sap.ushell.renderers.fiori2.Shell.controller.
  • Could not open app. Please try again later.

This is because the conflict between the semantic object name specified in SAP UI5 application and semantic object name in Fiori launchpad.

Change the semantic object name and action in the SAP UI5 application controller as specified in Fiori launchpad.

.done(function(aResponses) {

.fail(function() {
new sap.m.MessageToast(“Provide corresponding intent to navigate”);
// generate the Hash to display a employee Id
var hash = (oCrossAppNavigator && oCrossAppNavigator.hrefForExternal({
target: {
semanticObject: “app2”,
action: “Display”
params: {
“EmpId”: emp
})) || “”;

Now you will navigate to the URL obtained in the app1 which is to our app2.

Hope its useful!!

Thank you 🙂


To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Indrajit Chakraborti

    Hi Sri Divya,

    Nice blog.

    One question though – what is the use of configuring the semantic object and action in “Navigation” tab in “manifest.json” file of app2, when the same is configured while registering app2 to launchpad.



    1. Sri Divya Post author

      Hi Indrajit,

      Here I have selected the semantic object which I have created in SAPUI5 application to enable navigation in the Fiori launchpad.

      Thank you,

      Sri Divya.


  2. Pradeep V

    Hi Divya,

    Thank you so much for sharing the knowledge, and I am trying to do the cross app navigation, and it worked in IE, but when i try to open the same in Chrome, it does not work, is there any configuration required for chrome to do so?

    thank you in advance.




    1. Sri Divya Post author

      Hi Pradeep,

      I haven’t done any configuration specific to  Chrome. Could you please share the screen shot of your issue?


      Sri Divya

  3. elsinan milanin

    ​Hi Sri Divya,

    I have a similar requirement as you mentioned in your blog. I believe your application is doing Cross App navigation.

    My requirement is I want to create a reusable Module or an Application or a Library(whichever is possible to be consumed from Fiorri Launchpad). I want to create a Module which can be integrated or plugged in by any Consuming Application deployed on FLP. I want to display the content of my module within the consuming application which is deployed in FLP.

    I tried to do it using it Library . I am able to access and use the Library from Consuming application from HCP. However I cant achieve this in FLP. When I run the consuming Application which internally uses my Library, it gives me some error.

    Can you suggest me some approach how to do it .

    Thanks for your help.



Leave a Reply