SAPфорум.RU
https://sapboard.ru/forum/

RSDRI_INFOPROV_READ для некумулятивных величин
https://sapboard.ru/forum/viewtopic.php?f=12&t=95110
Страница 1 из 1

Автор:  s.m. [ Чт, июл 06 2017, 17:04 ]
Заголовок сообщения:  RSDRI_INFOPROV_READ для некумулятивных величин

Всем добрый вечер!

Подскажите, пожалуйста, можно ли модуль RSDRI_INFOPROV_READ применять для считывания из куба некумулятивных величин?
У меня в кубе есть некумулятивный показатель - остаток на начало периода, который строится по схеме приток-отток, специальная агрегация - FIRST.
И мне нужно считать его значение на определенную дату. Только как - не могу понять.
Вроде где-то вычитала, что для некумулятивных величин нужно заполнять параметр I_T_RTIME. Но как я с ним не крутилась - не получается((

Может, кто-то сталкивался?

Автор:  Konstantin_SI [ Пт, июл 14 2017, 14:56 ]
Заголовок сообщения:  Re: RSDRI_INFOPROV_READ для некумулятивных величин

w_t_rtime-INTTYP = 'D'.
w_t_rtime-LOW = z_date.
w_t_rtime-HIGH = z_date.
APPEND w_t_rtime TO l_t_rtime.

Или:

w_t_rtime-INTTYP = 'L'.
w_t_rtime-LOW = z_date_1.
w_t_rtime-HIGH = z_date_2.
APPEND w_t_rtime TO l_t_rtime.

Затем:

CLEAR: it_ic_c03.

l_first_call = 'X'.
z_end_of_data = ''.

WHILE z_end_of_data = ''.

CLEAR: it_pack_ic_c03.

CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = '0IC_C03'
i_th_sfc = l_th_sfc
i_th_sfk = l_th_sfk
i_t_range = l_t_range
i_t_rtime = l_t_rtime
i_packagesize = 50000
IMPORTING
e_t_data = it_pack_ic_c03
e_end_of_data = z_end_of_data
CHANGING
c_first_call = l_first_call
EXCEPTIONS
illegal_input = 1
illegal_input_sfc = 2
illegal_input_sfk = 3
illegal_input_range = 4
illegal_input_tablesel = 5
no_authorization = 6
ncum_not_supported = 7
illegal_download = 8
illegal_tablename = 9
trans_no_write_mode = 10
inherited_error = 11
x_message = 12
OTHERS = 13.

l_first_call = ''.

LOOP AT it_pack_ic_c03 INTO wa_ic_c03.
APPEND wa_ic_c03 TO it_ic_c03.
ENDLOOP.

ENDWHILE.

Автор:  bwbams [ Пт, июл 14 2017, 15:03 ]
Заголовок сообщения:  Re: RSDRI_INFOPROV_READ для некумулятивных величин

Попробуйте:
i_t_rtime = value RSDRI_T_RTIME( ( inttyp = 'D' low = '20170101' high = '20170713' ) ).
и некумулятивные показатели надо записывать как два обычных показателя, например:

CLEAR g_s_sfk.

g_s_sfk–kyfnm = ‘0RECTOTSTCK’.
g_s_sfk–kyfalias = ‘RECTOTSTCK’.
g_s_sfk–aggr = ‘SUM’.

INSERT g_s_sfk INTO TABLE g_th_sfk.

CLEAR g_s_sfk.

g_s_sfk–kyfnm = ‘0ISSTOTSTCK’.
g_s_sfk–kyfalias = ‘ISSTOTSTCK’.
g_s_sfk–aggr = ‘SUM’.

INSERT g_s_sfk INTO TABLE g_th_sfk.

Автор:  s.m. [ Вт, июл 18 2017, 15:21 ]
Заголовок сообщения:  Re: RSDRI_INFOPROV_READ для некумулятивных величин

Огромное всем спасибо! А то я уже потеряла надежду на помощь)).
Теперь буду пробовать.

Автор:  s.m. [ Вт, июл 18 2017, 15:45 ]
Заголовок сообщения:  Re: RSDRI_INFOPROV_READ для некумулятивных величин

Ура!!!
Все получилось!!! ОГРОМНОЕ всем спасибо!!!

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/