
Im SAP Enterprise Portal ist der abgelegte Inhalt 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 Object-Based 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.
Auslösen einer Objektbasierten Navigation
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.
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_.
Pflege der Zielanwendung im Portal
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.
Rollenbasierte Navigations-Selektion
Die Ausführung der Navigation ist abhängig vom Customizing der Rollenzugehörigkeit im Portal. So könnten beispielsweise 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.
Zusätzlich bietet das Web-Dynpro-Framework eine weitere Klasse an:
CL_WDR_PORTAL_OBNWEB_VI. Diese Klasse greift ebenfalls auf einen Web Service des Portals zurück und enthält gegenüber der oben genannten Klasse eine Reihe von Erweiterungen hinsichtlich der Nutzung von Informationen zu möglichen Navigationsoptionen entsprechend unterschiedlicher Rollenzugehörigkeiten der Benutzer.
Weitere Informationen zu CL_WDR_PORTAL_OBNWEB_VI finden Sie in der Klassendokumentation im System.
Ein Beispiel finden Sie im System in der Web-Dynpro-Component WDR_TEST_PORTAL_NAV in der Web-Dynpro-Anwendung WDR_TEST_PORTAL_NAV_OBN.
Weitere Dokumentation zu den Klassen finden Sie im System in der zugehörigen Systemdokumentation.