Ребят подскажите, что ни так!
1). Прилагаю рабочий код - по 1ому критерию(0DATE) - работает корректно, удаляет из куба(ZWCBECV01) данные за 20141204:
Code:
DATA:
ROWS TYPE string,
ROWS2 TYPE string.
Select COUNT(*) FROM /BIC/FZWCBECV01 into ROWS.
WRITE:/'Количество строк до удаления: ',ROWS.
TYPE-POOLS: RSDRD, RSDQ, RSSG.
DATA:
L_UID TYPE RSSG_UNI_IDC25,
L_T_MSG TYPE RS_T_MSG,
L_THX_SEL TYPE RSDRD_THX_SEL.
data: i_t_range type standard table of RSDRD_S_RANGE,
i_l_sel type RSDRD_SX_SEL,
i_l_range type RSDRD_S_RANGE.
i_l_range-sign = 'I'.
i_l_range-option = 'EQ'.
i_l_sel-iobjnm = '0DATE'.
i_l_range-low = '20141204'.
i_l_range-sidlow = 20141204.
append i_l_range to i_t_range.
i_l_sel-t_range[] = i_t_range[].
insert i_l_sel into table l_thx_sel.
clear i_t_range.
CALL FUNCTION 'RSDRD_SEL_DELETION'
EXPORTING
I_DATATARGET = 'ZWCBECV01'
I_THX_SEL = L_THX_SEL
I_AUTHORITY_CHECK = 'X'
I_THRESHOLD = '1.0000E-02'
I_MODE = 'D'
I_NO_LOGGING = 'X'
I_PARALLEL_DEGREE = 1
I_NO_COMMIT = ''
I_WORK_ON_PARTITIONS = ''
I_REBUILD_BIA = ''
I_WRITE_APPLICATION_LOG = 'X'
CHANGING
C_T_MSG = L_T_MSG
EXCEPTIONS
X_MESSAGE.
Select COUNT(*) FROM /BIC/FZWCBECV01 into ROWS2.
WRITE:/'Количество строк после удаления: ',ROWS2.
2) То же рабочий код, но со 2ым критерием (0CALMONTH) - работает корректно, удаляет данные из куба(ZWCBECV0) за период 201210:
Code:
DATA:
ROWS TYPE string,
ROWS2 TYPE string.
Select COUNT(*) FROM /BIC/FZWCBECV01 into ROWS.
WRITE:/'Количество строк до удаления: ',ROWS.
TYPE-POOLS: RSDRD, RSDQ, RSSG.
DATA:
L_UID TYPE RSSG_UNI_IDC25,
L_T_MSG TYPE RS_T_MSG,
L_THX_SEL TYPE RSDRD_THX_SEL.
data: i_t_range type standard table of RSDRD_S_RANGE,
i_l_sel type RSDRD_SX_SEL,
i_l_range type RSDRD_S_RANGE.
i_l_range-sign = 'I'.
i_l_range-option = 'EQ'.
i_l_sel-iobjnm = '0CALMONTH'.
i_l_range-low = '201210'.
i_l_range-sidlow = 201210.
append i_l_range to i_t_range.
i_l_sel-t_range[] = i_t_range[].
insert i_l_sel into table l_thx_sel.
clear i_t_range.
CALL FUNCTION 'RSDRD_SEL_DELETION'
EXPORTING
I_DATATARGET = 'ZWCBECV01'
I_THX_SEL = L_THX_SEL
I_AUTHORITY_CHECK = 'X'
I_THRESHOLD = '1.0000E-02'
I_MODE = 'D'
I_NO_LOGGING = 'X'
I_PARALLEL_DEGREE = 1
I_NO_COMMIT = ''
I_WORK_ON_PARTITIONS = ''
I_REBUILD_BIA = ''
I_WRITE_APPLICATION_LOG = 'X'
CHANGING
C_T_MSG = L_T_MSG
EXCEPTIONS
X_MESSAGE.
Select COUNT(*) FROM /BIC/FZWCBECV01 into ROWS2.
WRITE:/'Количество строк после удаления: ',ROWS2.
Всё бы хорошо, но мне нужно чтобы данные из этого куба удалились те, которые принадлежат КАК ПЕРВОМУ КРИТЕРИЮ ТАК И ВТОРОМУ!!!
Вставляю код общий для обоих признаков - итого, не удаляет вообще ничего!
В табличку записывает 2 строчки - по двум критериям - всё как надо!
Code:
DATA:
ROWS TYPE string,
ROWS2 TYPE string.
Select COUNT(*) FROM /BIC/FZWCBECV01 into ROWS.
WRITE:/'Количество строк до удаления: ',ROWS.
TYPE-POOLS: RSDRD, RSDQ, RSSG.
DATA:
L_UID TYPE RSSG_UNI_IDC25,
L_T_MSG TYPE RS_T_MSG,
L_THX_SEL TYPE RSDRD_THX_SEL.
data: i_t_range type standard table of RSDRD_S_RANGE,
i_l_sel type RSDRD_SX_SEL,
i_l_range type RSDRD_S_RANGE.
i_l_range-sign = 'I'.
i_l_range-option = 'EQ'.
i_l_sel-iobjnm = '0DATE'.
i_l_range-low = '20141204'.
i_l_range-sidlow = 20141204.
append i_l_range to i_t_range.
i_l_sel-t_range[] = i_t_range[].
insert i_l_sel into table l_thx_sel.
clear i_t_range.
i_l_sel-iobjnm = '0CALMONTH'.
i_l_range-low = '201210'.
i_l_range-sidlow = 201210.
append i_l_range to i_t_range.
i_l_sel-t_range[] = i_t_range[].
insert i_l_sel into table l_thx_sel.
clear i_t_range.
CALL FUNCTION 'RSDRD_SEL_DELETION'
EXPORTING
I_DATATARGET = 'ZWCBECV01'
I_THX_SEL = L_THX_SEL
I_AUTHORITY_CHECK = 'X'
I_THRESHOLD = '1.0000E-02'
I_MODE = 'D'
I_NO_LOGGING = 'X'
I_PARALLEL_DEGREE = 1
I_NO_COMMIT = ''
I_WORK_ON_PARTITIONS = ''
I_REBUILD_BIA = ''
I_WRITE_APPLICATION_LOG = 'X'
CHANGING
C_T_MSG = L_T_MSG
EXCEPTIONS
X_MESSAGE.
Select COUNT(*) FROM /BIC/FZWCBECV01 into ROWS2.
WRITE:/'Количество строк после удаления: ',ROWS2.
Что я делаю ни так?