cancel
Showing results for 
Search instead for 
Did you mean: 

To Trigger FPM Event dynamically from Code - WDEVENT set value Parameter

Former Member
0 Kudos

Hi,

In our SAP standard FPM application.

I want to trigger an action (onActionSearch) from code. As we triggering this action dynamically from code.

For this we need to pass or have "wdevent" object.

we are able to create wdevent object but could NOT able to set Parameters table.

the Parameters table having columns (Row, Name, Value) but the Value column is Reference type.

DATA: lt_parameters TYPE  wdr_event_parameter_list.


BUT we are NOT able to fill the Value in the Parameter list. It is of type (Fref) Reference Value.

How to set Value for a Reference Variable.




Please find screenshots,

Code we had written, but getting Syntax Errors at setting Parameter-Value.


DATA: lv_wd TYPE REF TO cl_wd_custom_event.

      DATA: lt_parameters TYPE  wdr_event_parameter_list,

        lw_parameters LIKE LINE OF lt_parameters.

      CLEAR lw_parameters.

      lw_parameters-name = 'FPM_EVENT_ID' .

      lw_parameters-value = '->ON_SEARCH'.

      insert lw_parameters inTO lt_parameters index 1.

      CLEAR lw_parameters.

      lw_parameters-name = 'ID' .

      lw_parameters-value = '->_CFG_BUTTON_ROW_ELEMENT_26'.

     insert lw_parameters inTO lt_parameters index 2.

     CLEAR lw_parameters.

Kindly support

Accepted Solutions (1)

Accepted Solutions (1)

mmgc_riel
Participant
0 Kudos

Hi,

Maybe this way,

DATA:

       lo_ctx_element TYPE REF TO if_wd_context_element,

       lo_event_data  TYPE REF TO if_fpm_parameter,

       lo_event       TYPE REF TO cl_fpm_event,

       lr_value       TYPE REF TO data.

     CREATE OBJECT lo_event_data

       TYPE cl_fpm_parameter.

     lo_event_data->set_value(

                      iv_key   = 'ID'

                      iv_value = '_CFG_BUTTON_ROW_ELEMENT_26' ).

     GET REFERENCE OF lo_ctx_element INTO lr_value.

     lo_event_data->set_value(

                      iv_key   = 'CONTEXT_ELEMENT'

                      ir_value = lr_value ).

     CREATE OBJECT lo_event

       EXPORTING

         iv_event_id   = 'ON_SEARCH'

         io_event_data = lo_event_data.

     lo_fpm->raise_event( lo_event ).


Greetings Maarten

Former Member
0 Kudos

Thanks Maarten for immediate Response,

I had resolved this by another way by following the below help link.

http://help.sap.com/saphelp_nw74/helpdata/en/06/f049c5790a412f8c7aed210bf8ad80/content.htm?frameset=...

we don't need a wdevent object to trigger action, if we know the event id then we can call the even directly by using code given in above link.


DATA lo_fpm TYPE REF TO if_fpm.

      lo_fpm = cl_fpm_factory=>get_instance( ).

      lo_fpm->raise_event_by_id( 'ON_SEARCH' ).  //wherein ON_SEARCH is the event id

Regards,

Hussain

Answers (0)