‎2025 Apr 26 10:43 PM - edited ‎2025 Apr 28 1:35 PM
I created a List Report with a bunch of columns, one of which uses an Intent-based navigation to one of two external target pages, based on certain conditions.
I need to navigate to a different target page (different semantic object-target) based on the value of the column.
Here's my CDS annotation for one of the two targets:
@Consumption.semanticObject: 'ExpenseCenter'
@UI.lineItem: [{ position: 35, semanticObjectAction: 'manage', type: #WITH_INTENT_BASED_NAVIGATION }]
@EndUserText.label: 'Source'
SourceApp;Let's say if the value is "Expense Center" I want it to link to ExpenseCenter-manage. If the value is "Checkin", it should point to Checkin-manage.
How can I make it point to a different semanticObject and Action based on a certain condition? The annotation @Consumption.semanticObject doesn't seem to accept an element, just a string literal.
Thanks
Request clarification before answering.
After much trial and error, I found out that the method adaptNavigationParameterExtension can be used in the controller extension to capture the intend-based navigation.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I tried using adaptNavigationParameterExtension( ), but it only lets me add or remove parameters, it does not allow changing Semantic Object and Actions.
I traced the calling program to the following SAP method onDataFieldWithIntentBasedNavigation in CommonEventHandlers
Does anyone know how to overwrite this method and change SemanticObject?
I read a similar issue identified by @gregorw here but it doesn't work for us. The semantic object annotation does not take a Path, only a String.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The following document describes how to dynamically change navigation targets using a controller extension.
https://sapui5.hana.ondemand.com/#/topic/a12ad6058db84e8cb60a3a9b2ade63fb
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @MioYasutake ,
Thanks for your answer. That page describes how to replace the default List-to-Object navigation. My links are intent-based navigation links in a table, not default navigation to the object page. The event onListNavigationExtension does not get fired on intent-based navigation.
| User | Count |
|---|---|
| 12 | |
| 9 | |
| 7 | |
| 5 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.