!--a11y-->
Registrieren und Behandeln eines
Ereignisses 
Zu Registrierung Ihrer Web-Dynpro-Anwendung auf ein
Portal-Ereignis steht im Interface
IF_WD_PORTAL_INTEGRATION
die Methode SUBSCRIBE_EVENT zu Verfügung.
Für das Löschen Ihrer Registrierung auf
den Portal-Event steht im Portal-Manager die Methode UNSUBSCRIBE_EVENT zur
Verfügung.
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
Web-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.
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.
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.
|
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.