PARAMETERS: p_adsonm TYPE rsoadsonm.
DATA: ls_tlogo TYPE rstran_s_tlogo,
lt_tlogo_tabl TYPE rsdso_t_data_tlogo_tabl,
lr_task_param TYPE REF TO cl_rsdso_data_task_param,
lr_task_caller TYPE REF TO cl_rsdso_data_task_caller.
"fill TLOGO structure
ls_tlogo-tlogo = 'ADSO'.
ls_tlogo-objnm = p_adsonm.
"create instance of cl_rsdso_data_request_list
DATA(lr_request_list) = cl_rsdso_data_request_list=>create(
i_s_tlogo = ls_tlogo ).
"refresh list
lr_request_list->refresh( ).
"get list of all requests in XREF format
DATA(lt_request_xref) = lr_request_list->get_t_request_xref( ).
"do some stuff to determine relevant requests
...
...
"create another instance of cl_rsdso_data_request_list with XREF list
"why this?
"I cannot create lr_request_list with i_task_type = 'DELETE' and
"execute the method "refresh". But without i_task_type = 'DELETE'
"the method "start" of lr_task return with a dump...
"So, lets do this twice..
lr_request_list = cl_rsdso_data_request_list=>create(
i_s_tlogo = ls_tlogo
i_task_type = 'DELETE'
i_t_request_xref = lt_request_xref ).
"create task for deletion
DATA(lr_task) = cl_rsdso_data_task=>create(
i_s_tlogo = ls_tlogo
i_type = 'DELETE'
i_t_tlogo_tabl = lt_tlogo_tabl
i_r_request_list = lr_request_list
i_r_param = lr_task_param
i_r_caller = lr_task_caller ).
"start deletion
lr_task->start( ).
"get status
DATA(lv_status) = lr_task->get_status( ).
"get log
DATA(l_r_log) = lr_task->get_r_log( ).
"write messages
LOOP AT l_r_log->get_t_msg( ) ASSIGNING FIELD-SYMBOL(<f_s_msg>).
"WHERE msgty = 'X' OR msgty = 'A' OR msgty = 'E' OR msgty = 'W'.
DATA ls_msg TYPE rspc_s_msg.
MOVE-CORRESPONDING <f_s_msg> TO ls_msg.
MESSAGE ID ls_msg-msgid TYPE ls_msg-msgty NUMBER ls_msg-msgno
WITH ls_msg-msgv1 ls_msg-msgv2 ls_msg-msgv3 ls_msg-msgv4.
ENDLOOP.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
10 | |
7 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |