четверг, 30 октября 2014 г.

RSDRD_SEL_DELETION или история про динамическое удаление

Идея пришла от пацанов с форума.
*&---------------------------------------------------------------------*
*& Report  ZN_DELETE_DATA_FROM_INFOPROV
*&
*&---------------------------------------------------------------------*
*& OBJNAME - признак в дата таргете
*& IDT - Имя (ODS или куба)
*&---------------------------------------------------------------------*
report zn_delete_data_from_infoprov.

type-pools:
  rsdrd,
  rsdq,
  rsdds,
  rsenq,
  sscr,
  rrsm.

data:
      lt_thx_sel  type rsdrd_thx_sel,
      ls_thx_sel  type rsdrd_sx_sel,
      ls_range    type rsdrd_s_range,
      ct_msg      type rs_t_msg,
      value(60)   type c.
*-----------------------------------------------------------------------
parameters:
    objname   type rsiobjnm,
    idt       type rsddatatarget.

select-options:
    interval  for value no-extension.

refresh: ls_thx_sel-t_range.
clear: ls_range, ls_thx_sel.

condense interval-low no-gaps.
condense interval-high no-gaps.

ls_thx_sel-iobjnm = objname.
ls_range-sign     = 'I'.
ls_range-option   = 'BT'.
ls_range-low      = interval-low.
ls_range-high     = interval-high.
ls_range-keyfl    = 'X'.

append ls_range to ls_thx_sel-t_range.
insert ls_thx_sel into table lt_thx_sel.

call function 'RSDRD_SEL_DELETION'
  exporting
    i_datatarget        = idt
    i_thx_sel           = lt_thx_sel
*   i_transactional_ods = rs_c_true
*   I_AUTHORITY_CHECK   = 'X'
    i_threshold         = '1.0000E-01'
    i_mode              = 'C'
    i_no_logging        = ''
    i_parallel_degree   = 1
    i_no_commit         = ''
  changing
    c_t_msg             = ct_msg.

В нашем случае, удаляли по 0CALDAY, переменную вели через STVARV.
Заполняли её так:
      update tvarvc
        set: sign = 'I'
       where name = l_var_name,
             opti = 'BT'
       where name = l_var_name,
             low  = l_dfrom
       where name = l_var_name,
             high = l_dto
       where name = l_var_name.

Комментариев нет:

Отправить комментарий