!--a11y-->
Objektbasierte Navigation (OBN) 
Im SAP Enterprise Portal ist Ihr Content auf der Grundlage von Rollen strukturiert. Über die Einstiegsnavigation und die Feinnavigation können Sie durch die benutzerspezifischen Strukturen navigieren. Mit der Portal-Navigation können Sie in jeder Anwendung, die als Portal-Content läuft (also jede Seite oder jedes iView), programmatisch Navigationsschritte zwischen verschiedenen iViews oder Seiten auslösen.
In vielen Fällen ist es ausreichend,
mittels relativer oder absoluter Navigation zu einem konkreten iView oder
einer konkreten Seite navigieren zu können. Manchmal wird jedoch mehr
Flexibilität benötigt. Dafür gibt es die
Objektbasierte
Navigation, die es erlaubt, Navigationsschritte auf einer höheren
semantischen Ebene zu definieren. Anstatt eine konkrete Ziel-URL zu
definieren, rufen Sie hierbei eine bestimmte Operation eines bestimmten
Business-Objekts
auf.
Welches konkrete iView (oder welche Seite) für die Realisierung dieser Operation herangezogen werden soll, wird im Portal konfiguriert. Diese Konfiguration kann rollen- oder auch benutzer-spezifisch sein. Die Web-Dynpro-Anwendung selbst übergibt lediglich die Namen des Business-Objekts und der damit verbundene Operationen.
Im Web Dynpro für ABAP ähnelt die Integration der objektbasierten Navigation im Prinzip der Integration des Portal-Eventing. Auf zum Auslösen der Navigation bietet das Web Dynpro Framework einen Service, der von der Anwendung aufgerufen werden kann. Dieser Service ist, wie beim Portal-Eventing auch, Teil des Portal-Managers.
Sie können die objektbasierte Navigation
des Portals im Web Dynpro ABAP auslösen, indem Sie die Methode
NAVIGATE_TO_OBJECT des Portal-Managers (Interface
IF_WD_PORTAL_INTEGRATION)
aufrufen. Über den
Web-Dynpro-Code-Wizard
können Sie eine entsprechende Vorlage generieren lassen, die Sie dann mit
anwendungsrelevanten Werten füllen.
data lr_componentcontroller type ref to ig_componentcontroller . data l_api_componentcontroller type ref to if_wd_component. data lr_port_manager type ref to if_wd_portal_integration.
lr_componentcontroller = wd_this->get_componentcontroller_ctr( ). l_api_componentcontroller = lr_componentcontroller->wd_get_api( ). lr_port_manager = l_api_componentcontroller->get_portal_manager( ).
call method lr_port_manager->navigate_to_object exporting system = navigation_data-system object_type = navigation_data-object operation = navigation_data-operation object_value_name = navigation_data-object_value_name object_value = navigation_data-object_value business_parameters = bus_parameter_list forward_obn_metadata = navigation_data-forward_obn_metadata.
|
Für die Navigation sind zwei Parameter obligatorisch:
● SYSTEM
Geben Sie das System (bzw. den Systemalias) an, dem das Business-Objekt zugeordnet ist.
● OBJECT_TYPE
Geben Sie das von Ihnen verwendete Business-Objekt an
Alle anderen Parameter sind optional:
● OBJECT_VALUE
Normalerweise gibt es viele unterschiedliche Instanzen für ein Business Objekt, z.B. bei der Verwendung des Business Objekts Customer. Sie spezifizieren diesen Parameter, um festzulegen, welcher konkrete Kunde für den Schritt der objektbasierten Navigation verwendet werden soll, beispielsweise über die Kundennummer.
● OPERATION
Mit diesem Parameter legen Sie fest, welche Operation für den Schritt der objektbasierten Navigation verwendet werden soll.
● OBEJCT_VALUE_NAME
Der angegebene Objektwert wird als übergeben als URL-Parameter an den OBN-Schritt weiter transportiert. Der Standardname des Parameters lautet ObjectValue. Sie können bei Bedarf einen anderen Parameternamen festlegen.
● BUSINESS_PARAMETERS
Neben der Angabe des Objektwertes können Sie weitere Parameter definieren, die durch den OBN-Schritt weitergereicht werden. Ein Beispiel für einen möglichen Parameter-String ist Mode=Edit&ShowHeader=false.
Diese Parameter können vom Ziel der OBN verwendet werden, wenn die Operation des Business-Objekts entsprechend vorbereitet wurde (siehe unten, Abschnitt Pflege der Zielanwendung im Portal).
● FORWARD_OBN_METADATA
Manchmal ist es für das Ziel der OBN nützlich, mehr Informationen über den aktuellen Navigationsschritt zu erhalten. Wenn Sie beispielsweise eine Anwendung bearbeiten, die als Implementierung unterschiedlicher Operationen auf ein Business Objekt dient, muss die Anwendung wissen, welche Operation vom OBN-Schritt ausgelöst wurde. Daher können Sie die folgenden Parameter weiterleiten:
○ obn.system
das System, dem das Business Objekt zugeordnet ist.
○ obn.bo_type
das Business Objekt selbst.
○ obn.operation
die jeweilige Operation. Bei Verwendung der Standard-Operation ist der Wert _default_.
Die Zielanwendung wird im Portal zu der jeweiligen Operation des Business-Objekts gepflegt. Dies wird in der Regel vom Portal-Administrator vorgenommen.
Als Business-Parameter einer
WDA-Ziel-Anwendung verwenden Sie die bei der Web-Dynpro-ABAP-Anwendung
hinterlegten
Applikationsparameter.
Wenn die Applikationsparameter im Startup-Plug der Anwendung dynamisch
vergeben werden, können Sie sie der Dokumentation der Anwendung
entnehmen.
Ein Beispiel finden Sie im System in der Web-Dynpro-Anwendung WDR_TEST_PORTAL_NAV_OBN.
Die Ausführung der Navigation ist
abhängig vom Customizing der Rollenzugehörigkeit im Portal. So könnte
beispielsweise der Benutzer einer Rolle die Berechtigung zur Anzeige und zur
Bearbeitung eines Seiteninhalts besitzen wohingegen die Benutzer einer anderen
Rolle den Inhalt lediglich anzeigen dürfen. Wenn ein Benutzer eine
Objektbasierte Navigation auslöst ohne jedoch einer Rolle anzugehören, die
Berechtigung für die zugehörige Operation hat, erscheint eine entsprechende
Fehlermeldung. Um hier die Oberfläche benutzerfreundlich zu gestalten, bietet
sich an, die Operation von vorne herein nicht für den entsprechenden Benutzer
anzubieten. Hierzu muss jedoch zunächst vom Portal die Information zur
Berechtigung der jeweiligen Operation eingeholt werden. Dies kann mit
Hilfe eines Web Service realisiert
werden, der von der Web-Dynpro-ABAP-Anwendung aus mit Hilfe der Klasse
CL_WDR_PORTAL_OBNWEB_SERVICE
aufgerufen wird.