cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic SemanticObject for Intent Based Navigation in Fiori List Report

imbhavik
Explorer
0 Kudos

Hi,

I have Fiori List Report based on the CDS view and annotations. I have added below annotations for the intent based navigation as well.

@Consumption.semanticObject: 'SemanticObjectName'

@UI.lineItem: [ { position: 10, label: 'Document Number'},

{type: #FOR_INTENT_BASED_NAVIGATION, semanticObjectAction: 'display'}]

key DocumentNo

It works fine as I have hardcoded the semanticObject name in the annotation.

However, in my use case, I need to use the SemanticObject name from one of the fields in the CDS view as each record could have different semanticObject and action.

So, instead of hardcoding the name, how can I pass from the element within the CDS view?

If this can't be achieved through CDS view annotations, my another option would be to add custom code in List Report application in the controller.

For this, I need to know the event name which is being triggered when user clicks on the number ( which is formatted with the link for navigation due to the above annotations). If we know the event and if I know how to extend that event, I can put together a code to navigate to specific intent by reading the table fields and generating the correct intent and action.

Let me know if any one have any ideas or directions in which I can go to resolve this.

Thank you,

Bhavik

View Entire Topic
Captain-León
Advisor
Advisor
0 Kudos

Hi Bhavik,

as mentioned above, here the local annotations:

 

                        <Record Type="UI.DataFieldWithIntentBasedNavigation">
                            <PropertyValue Property="Value" Path="AppName" />
                            <PropertyValue Property="SemanticObject" Path="AppSemanticObject" />
                            <PropertyValue Property="Action" Path="AppAction" />
                        </Record>
 
The App* fields are the OData elements with the values at runtime, each table entry different values.
 
Best regards
Michael
imbhavik
Explorer
0 Kudos

Hi Michael, First I am trying to make it work with static intent based navigation. After that, I will change with above in local annotations to see dynamic works fine. However, with static one, I am not getting the link on the Object ID field in the table in the List report. I tried checking everything but could not find what is wrong.

 

Below are the details:

CDS View annotations:

imbhavik_0-1714074835576.png

Below how it looks where I am missing link on the Object Number field.

imbhavik_0-1714075507630.png

 

Am I missing anything above or specified anything incorrectly?

Thank you,

Bhavik

 

imbhavik
Explorer
0 Kudos

Hi Michael,

 

I fixed the static navigation. Looks like, I used navigation type in Annotation as "FOR_INTENT_BASED_NAVIGATION" and it was not working. When I used "WITH_INTENT_BASED_NAVIGATION" then it worked.

However, the ID name in target app is different than the one in Source app. So, how can we specify the target app ID parameter?

 

THank you,

Bhavik