RSDRD_SEL_DELETION - ooxxvv/MySAPnotes GitHub Wiki
RSDRD_SEL_DELETION
Code
DATA: l_datarget TYPE rsddatatarget,
lt_thx_sel TYPE rsdrd_thx_sel,
lw_thx_sel TYPE LINE OF rsdrd_thx_sel,
lt_range LIKE rsdrd_s_range OCCURS 0 WITH HEADER LINE,
lt_msg TYPE rs_t_msg,
lw_msg TYPE LINE OF rs_t_msg,
l_cnt TYPE f,
l_cnt_int(16) TYPE p.
*-Set InfoCube name
l_datarget = fi_cube.
*-Set delete data range
lw_thx_sel-iobjnm = '0CALDAY'.
LOOP AT s_budat.
CLEAR: lt_range.
lt_range-sign = s_budat-sign.
lt_range-option = s_budat-option.
lt_range-low = s_budat-low.
lt_range-high = s_budat-high.
lt_range-keyfl = 'X'.
APPEND lt_range.
ENDLOOP.
IF lt_range[] IS INITIAL.
MESSAGE e398(00) WITH 'No Range Setting'.
EXIT.
ELSE.
lw_thx_sel-t_range[] = lt_range[].
INSERT lw_thx_sel INTO TABLE lt_thx_sel.
ENDIF.
IF lt_thx_sel[] IS INITIAL.
MESSAGE e398(00) WITH 'No Range Setting'.
EXIT.
ENDIF.
*-Delete data
CALL FUNCTION 'RSDRD_SEL_DELETION'
EXPORTING
i_datatarget = l_datarget
i_thx_sel = lt_thx_sel
IMPORTING
e_cnt = l_cnt
CHANGING
c_t_msg = lt_msg
EXCEPTIONS
x_message = 1
inherited_error = 2
invalid_type = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE e398(00) WITH 'Delete Data Fail'.
EXIT.
ENDIF.
IF l_cnt EQ 0.
MESSAGE w398(00) WITH 'No data deleted'.
ELSE.
l_cnt_int = l_cnt.
MESSAGE s398(00) WITH l_cnt_int ' lines deleted '.
ENDIF.