Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Registrieren und Behandeln eines Ereignisses Dokument im Navigationsbaum lokalisieren

Registrieren auf ein Portal-Ereignisse

Zu Registrierung Ihrer Web-Dynpro-Anwendung auf ein Portal-Ereignis steht im Interface StrukturlinkIF_WD_PORTAL_INTEGRATION die Methode SUBSCRIBE_EVENT zu Verfügung.

Hinweis Für das Löschen Ihrer Registrierung auf den Portal-Event steht im Portal-Manager die Methode UNSUBSCRIBE_EVENT zur Verfügung.

Hinweis Registrierung bzw. Löschung der Registrierung muss für jede View einzeln in der jeweiligen Methode WDDOINIT vorgenommen werden.

 

Lassen Sie sich mit Hilfe des StrukturlinkWeb-Dynpro-Code-Wizards eine geeignete Vorlage generieren, die Sie dann mit Werten füllen.

  

method WDDOINIT .

 

  data: L_API_COMPONENT  type ref to IF_WD_COMPONENT,

        L_PORTAL_MANAGER type ref to IF_WD_PORTAL_INTEGRATION,

        VIEW type ref to IF_WD_VIEW_CONTROLLER.

 

  L_API_COMPONENT = WD_COMP_CONTROLLER->WD_GET_API( ).

  L_PORTAL_MANAGER = L_API_COMPONENT->GET_PORTAL_MANAGER( ).

 

  VIEW ?= WD_THIS->WD_GET_API( ).

 

  L_PORTAL_MANAGER->SUBSCRIBE_EVENT(

        PORTAL_EVENT_NAMESPACE =

        'my_namespace_for_Web_Dynpro_documentation'

        PORTAL_EVENT_NAME      = 'showCustomer'

        VIEW                   = VIEW

        ACTION                 = 'RECIEVE_CUSTOMER_ID' ).

 

endmethod.

Geben Sie den Namensraum und den Namen des Ereignisses an. Die Kombination von Namensraum und Namen muss dabei eindeutig sein. Außerdem geben Sie den Namen der Aktion an, die ausgelöst werden soll, wenn genau dieses Portal-Ereignis empfangen wird. Der zugehörige Aktionsbehandler wird dann automatisch aufgerufen.

Achtung Die Aktion, in diesem Fall RECEIVE_CUSTOMER_ID, wird nicht automatisch angelegt! Legen Sie die Aktion daher explizit auf der Registerkarte Aktionen der View an.

 

Behandeln eines Portal-Ereignisses

Die Parameter eines Portal-Ereignisses werden an den Aktionsparameter WDEVENT über dessen Methode GET_STRING übergeben. Mit Hilfe des optionalen Parameters PORTAL_EVENT_PARAMETER können Anwendungs-abhängige Information an die Behandlermethode weitergeleitet werden. Im folgenden Beispiel ist dies die ID eines bestimmten Kunden, deren Wert an die im Anschluss gerufene Methode SHOWCUSTOMER des Component Controllers übergeben wird.

 

method ONACTIONRECIEVE_CUSTOMER_ID .

 

  data: EVT_NAME type STRING,

        CUST_ID type SCUSTOM-ID.

 

  EVT_NAME = WDEVENT->GET_STRING( NAME = 'PORTAL_EVENT_NAME' ).

 

  if EVT_NAME = 'showCustomer'.

    CUST_ID = WDEVENT->GET_STRING( NAME = 'PORTAL_EVENT_PARAMETER' ).

    WD_COMP_CONTROLLER->SHOWCUSTOMER( CUSTOMER_ID = CUST_ID ).

  endif.

 

endmethod.

 

 

Beispiel

Beispiele finden Sie im System in den Web-Dynpro-Anwendungen

·        WDR_TEST_PORTAL_EVENT_REC

Portal-Ereignis empfangen

·        WDR_TEST_PORTAL_EVENT_REC2

Diese Anwendung dient ebenfalls als Testanwendung. Sie können dort den Namen eines Ereignisses aus Ihrer eigenen Anwendung eingeben um das Ereignis separat zu testen.

 

Ende des Inhaltsbereichs