METHOD if_fpm_guibb~initialize.
* create event
DATA lo_event TYPE REF TO cl_fpm_event.
CREATE OBJECT lo_event
EXPORTING
iv_event_id = 'FILL_DATA'.
* source uibb
lo_event->ms_source_uibb-component = iv_component_name.
lo_event->ms_source_uibb-config_key = is_config_key.
lo_event->ms_source_uibb-instance_id = iv_instance_id.
* register event
DATA(lv_id) = cl_fpm_factory=>get_instance( )->register_asynchronous_event( lo_event ).
* create id (char32) for task
mv_task = 'TEST_FILL_DATA_ASYNC'.
* get data in new task
CALL FUNCTION 'FPM_TEST_FILL_DATA_ASYNC' STARTING NEW TASK mv_task CALLING fill_data ON END OF TASK
EXPORTING
iv_notification_id = lv_id
EXCEPTIONS
OTHERS = 1.
ASSERT sy-subrc EQ 0.
ENDMETHOD.
METHOD fill_data.
CHECK mt_data IS INITIAL AND p_task EQ mv_task.
RECEIVE RESULTS FROM FUNCTION 'FPM_TEST_FILL_DATA_ASYNC'
IMPORTING et_data = mt_data
EXCEPTIONS OTHERS = 1.
ASSERT sy-subrc EQ 0.
ENDMETHOD.
METHOD if_fpm_guibb_chart~get_data.
* disable actions at fpm start
IF io_event->mv_event_id EQ cl_fpm_event=>gc_event_start.
set_action_usage(
EXPORTING
iv_enabled = abap_false
CHANGING
ct_action_usage = ct_action_usage
cv_action_usage_changed = ev_action_usage_changed ).
ENDIF.
CHECK iv_raised_by_own_ui EQ abap_true.
* set data
io_chart_data->get_table_model( )->set_data( mt_data ).
* enable actions
set_action_usage(
EXPORTING
iv_enabled = abap_true
CHANGING
ct_action_usage = ct_action_usage
cv_action_usage_changed = ev_action_usage_changed ).
ENDMETHOD.
FUNCTION fpm_test_fill_data_async.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_NOTIFICATION_ID) TYPE WDR_NOTIFICATION_ID OPTIONAL
*" EXPORTING
*" VALUE(ET_DATA) TYPE FPM_T_CVOM_DATA
*"----------------------------------------------------------------------
* get data
CALL FUNCTION 'FPM_TEST_FILL_DATA'
IMPORTING
et_data = et_data.
* delay: just for simulating an expensive data load
WAIT UP TO 5 SECONDS.
* inform notification service
IF iv_notification_id IS SUPPLIED.
cl_wd_notification_service=>update_event_status(
EXPORTING
event_id = iv_notification_id
event_status = cl_wd_notification_service=>c_status_done
).
ENDIF.
ENDFUNCTION.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
12 | |
10 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
6 | |
4 |