Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Objektbasierte Navigation (OBN) Dokument im Navigationsbaum lokalisieren

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 StrukturlinkObjektbasierte 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 StrukturlinkBusiness-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 StrukturlinkIF_WD_PORTAL_INTEGRATION) aufrufen. Über den StrukturlinkWeb-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_.

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 StrukturlinkApplikationsparameter. Wenn die Applikationsparameter im Startup-Plug der Anwendung dynamisch vergeben werden, können Sie sie der Dokumentation der Anwendung entnehmen.

Beispiel

Ein Beispiel finden Sie im System in der Web-Dynpro-Anwendung WDR_TEST_PORTAL_NAV_OBN.

Rollenbasierte Berechtigungsprüfung

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 StrukturlinkCL_WDR_PORTAL_OBNWEB_SERVICE aufgerufen wird.

 

Ende des Inhaltsbereichs