Intent-Based Navigation

Intent-Based Navigation

Veröffentlicht am 24. Oktober 2025von Sören Schlegel

Navigation von App-to-App

Egal wie viel Mühe man sich gibt, beim Erfinden und Programmieren der schönsten App - manchmal ist auch einfach sinnvoll, in andere Apps, die vielleicht nicht ganz so toll sind abzuspringen. Dafür verwendet man in Fiori Elements die Intent-Based Navigation. Dazu gibt es einiges an Quellen, wie diesen Artikel von Ethan Jewett.

Im Großen und Ganzen bin ich aber mit der Aktualität und Verständlichkeit der Doku und vieler Posts nicht ganz einverstanden und glücklich. Beispielweise ist diese Dokumentation Navigation from an App (Outbound Navigation) meiner Meinung nach nicht komplett, was die Funktionalitäten des ABAP CDS betrifft.

In der ABAP Platform Fiori Feature Showcase App habe ich aber mal eine Lösung gefunden, die für meinen Fall perfekt funktioniert - mich aber Aufgrund des Leids mit dem Fiori Cache viel zu viel Zeit gekostet hat.

Daher folgend meine kleine Musterlösung, die zumindest als Einstieg dem ein oder anderen Helfen mag

Intent-Based Navigation - a working example

  @UI.lineItem: [ { position: 20,
                    type: #WITH_INTENT_BASED_NAVIGATION,
                    semanticObject: 'ServiceContract',
                    semanticObjectAction: 'display' } ]
  ServiceContract;
 
  @EndUserText.label: 'Messages'
  @UI.lineItem: [ { position: 30,         
                    type: #WITH_INTENT_BASED_NAVIGATION,
                    semanticObject: 'ApplicationLog',
                    semanticObjectAction: 'showDetails' } ]
  @UI.textArrangement: #TEXT_ONLY
  LogHandle;

Was ist hier wichtig:

  • Im Gegensatz zu vielen Beschreibungen aus 1276 Blog-Posts braucht man KEIN @Consumption.semanticObject
  • Laut Doku aus der Feature-Showcase-App funktioniert diese Syntax erst ab S/4HANA 2023
  • Auch gern gesehener Fehler: Die Annotation hängt in einem Eintrag mit der position und ist nicht separat, wie zum Beispiel bei der Action.
  • mit der Annotation semanticObjectBinding: [{...}] kann man Feldnamen anpassen, die in der Ziel-App anders heißen, als in der eigenen (nicht selbst validiert, aber ich vertraue hier mal der SAP)

Weitere Artikel