You can use the manifest.json
file to control whether it is possible to navigate to a detail page by keeping the
predefined definition of a subpage. If you wish to disable navigation, follow the instructions in the example below to remove the
appropriate code.
Example with Navigation
"sap.ui.generic.app": { "pages":[{ "entitySet": "Zfarvd_Bs_Hd_Bo", "component": { "name": "sap.suite.ui.generic.template.ListReport", "list": true, "settings": { "gridTable": false, "hideTableVariantManagement": false } }, //Navigation to detail page: eliminate this block if no navigation is needed "pages": [{ "entitySet": "Zfarvd_Bs_Hd_Bo", "component": { "name": "sap.suite.ui.generic.template.ObjectPage" },
You can use the manifest.json
file to remove the navigation option to an object page or a sub-object page. To do
this, just remove the navigation
section from the corresponding target
in the
manifest.json
file.
You can define an external navigation target using intent-based navigation in the manifest.json
file by
modifying the navigation
> display
entry. This allows you to overwrite existing internal
navigation with external navigation, for example, from a line item in the list report to an object page in a different app, or
from an object page to a subpage in another app.
In the example below, the standard navigation from the list report to the object page has been replaced with navigation to an object page in another app.
"sap.app": { "_version": "1.2.0", ... "crossNavigation": { "inbounds": {}, "outbounds": { "ExampleNavigationTarget": { "semanticObject": "EPMProduct", "action": "manage_st" } } } ... ... "sap.ui.generic.app": { "_version": "1.2.0", "pages": [{ "entitySet": "STTA_C_MP_Product", "component": { "name": "sap.suite.ui.generic.template.ListReport", "list": true }, "pages": [{ "entitySet": "STTA_C_MP_Product", "component": { "name": "sap.suite.ui.generic.template.ObjectPage" }, // Navigation to an external target instead of a detail page: Add this block to set up external navigation. "navigation": { "display": { "path": "sap.apps.crossNavigation.outbounds", "target": "ExampleNavigationTarget"
The example above applies to sap.ui.generic.app->_version
1.2.0.
The path and target you specify for external navigation must point to an existing outbounds
entry.
For more information about the crossNavigation
attribute in the sap.app
namespace, see Manifest (Descriptor for Applications, Components, and Libraries). In Sample code 2: Attributes in
the sap.app namespace, go to the crossNavigation
attribute and see the
description for outbounds
.
You can define an external navigation using intent-based navigation in the
manifest.json
file. This allows end users to navigate to an
external FLP-based application instead of the normal internal navigation to an
object page or subobject page, to remove the navigation option to an object page
or a subobject page. The manifest.json
snippet below shows an
example change that would be needed to navigate to an intent-based external
navigation instead of the regular subobject page navigation. The same can also
be done at any subobject level or at the object page level..
manifest.json
{ … … "sap.app": { "crossNavigation": { "outbounds": { "ProductDetails": { "semanticObject": "ProductDetails", "action": "manage" } } } }, "sap.ui5": { .... .... .... "routing": { … … "routes": [{ "pattern": ":?query:", "name": "ArtistList", "target": "ArtistList" }, { "pattern": "Artists({key}):?query:", "name": "ArtistDetail", "target": "ArtistObjectPage" }], "targets":{ "ArtistList": { "type": "Component", "id": "ArtistList", "name": "sap.fe.templates.ListReport", "options": { "settings" :{ "contextPath": "/Artists", "navigation": { "Artists": { "detail": { "route": "ArtistObjectPage" // This triggers the regular internal navigation to OP from LR table record } } } } } }, // End of ArtistList "ArtistObjectPage": { "type": "Component", "id": "ArtistDetail", "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { "contextPath": "/Artists", "_tableType" : "Table", "navigation": { "_Publication": { "detail": { "outbound": "ProductDetails" // This triggers the external navigation to "ProductDetails" instead of the regular internal navigation to the sub-object page } } } } } } // End of ArtistObjectPage } // End of Targets }, // End of routing ..... ..... ..... } // End of sap.ui … … }
You can also use a display
section within the navigation
section instead of the
detail
section shown in the sample above. The display
section looks as follows:
manifest.json
"navigation": { "_Publication": { "display":{ "path":"sap.apps.crossNavigation.outbounds", "target":"ProductDetails" } } }
If both display
and detail
are given in the
manifest, then display
has priority for the outbound
navigation.