SAP-Portal-iView-Events

Benutzeroberflächen in SAP Systemen.

SAP-Portal-iView-Events

Postby Eliana4945 » Tue Jun 08, 2010 3:02 pm

Hallo zusammen!

Ich hoffe, ich bin hier im richtigen Forum?! Ich habe folgendes Problem: ich versuche im SAP-Portal zwischen zwei WebDynpro for ABAP-iViews Daten auszutauschen. Dazu gibt es das Interface if_wd_portal_integration. Da kann ich mich an Ereignisse anhängen und Ereignisse werfen. Prinzipiell sehr einfach. Allerdings wird mein Ereignis nicht "gefangen" - meine dafür angemeldete Aktion reagiert nicht. Und das obwohl ich es sogar innerhalb eines iViews probiere. Sprich: beim Initialisieren melde ich mich für ein eigenes Ereignis an und über eine Schaltfläche werfe ich genau dieses Ereignis. Das ganze ist natürlich nur zum Testen - aber da klappt es auch schon nicht.

Das coding zum Anmelden des Ereignisses in WDDOINIT einer View:
DATA lo_api_component TYPE REF TO if_wd_component.
DATA lo_portal_manager TYPE REF TO if_wd_portal_integration.

lo_api_component = wd_comp_controller->wd_get_api( ).
lo_portal_manager = lo_api_component->get_portal_manager( ).

DATA lo_api_controller TYPE REF TO if_wd_view_controller.

lo_api_controller ?= wd_this->wd_get_api( ).

CALL METHOD lo_portal_manager->subscribe_event
EXPORTING
portal_event_namespace = 'EDV'
portal_event_name = 'TEST_1'
view = lo_api_controller
action = 'EVENT_RECEIVED'
.

Das Coding in der Schaltfläche:
DATA lo_api_component TYPE REF TO if_wd_component.
DATA lo_portal_manager TYPE REF TO if_wd_portal_integration.
data: lv_parameter type string.

lo_api_component = wd_comp_controller->wd_get_api( ).
lo_portal_manager = lo_api_component->get_portal_manager( ).

lv_parameter = sy-uzeit.

CALL METHOD lo_portal_manager->fire
EXPORTING
portal_event_namespace = 'EDV'
portal_event_name = 'TEST_1'
portal_event_parameter = lv_parameter
.

Dazu gibt es eine Aktion "EVENT_RECEIVED", in deren Coding ich den Event-Parameter auslese und auf der Oberfläche aktualisiere (über den context):
DATA lo_el_context TYPE REF TO if_wd_context_element.
DATA ls_context TYPE wd_this->element_context.
DATA lv_event_parameter LIKE ls_context-event_parameter.
* get element via lead selection
lo_el_context = wd_context->get_element( ).

lv_event_parameter = wdevent->get_string( 'PORTAL_EVENT_PARAMETER' ).

* set single attribute
lo_el_context->set_attribute(
EXPORTING
name = `EVENT_PARAMETER`
value = lv_event_parameter ).

Die Aktion wird aber nicht gestartet, das event also entweder nicht richtig geworfen oder nicht gefangen.
Hat jemand eine Idee dazu? Bin für jeden Hinweis offen, vielen Dank!

Viele Grüße

TopperDEL
Eliana4945
..
..
 
Posts: 16
Joined: Wed Feb 20, 2008 9:54 am

Return to Dialogprogrammierung

Who is online

Users browsing this forum: No registered users and 8 guests