Текущее время: Сб, июн 21 2025, 10:27

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Проблемы с RSDRI_INFOPROV_READ
СообщениеДобавлено: Ср, фев 07 2007, 14:29 
Специалист
Специалист

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Добрый день всем!!!
Пытаюсь достать данные из куба с помощью ФМ RSDRI_INFOPROV_READ, но все время получаю нуль записей, хотя из другого куба все нормально достается. Никаких ошибок при вызове ФМ не возникает, т.е. все таблицы-параметры заполнены правильно. Не подскажете, где может быть ошибка???
Спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 07 2007, 14:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, дек 27 2004, 13:48
Сообщения: 772
Откуда: от верблюда
Глянь кода кусок (тестовая программка), может поможет.

*&---------------------------------------------------------------------*
*& Report Z_TEST_READ_CUBE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT z_test_read_cube.

message i001(38) with 'ПРЕВЕД! ГДЭ МАПЭД???'.


TYPE-POOLS: rs, rsdrc.

DATA: BEGIN OF w_t_data,
0material(18),
0cptstrebu type /BI0/OICPTSTREBU,
END OF w_t_data.
DATA l_t_data LIKE STANDARD TABLE OF w_t_data
WITH DEFAULT KEY INITIAL SIZE 10.



DATA l_th_sfc TYPE rsdri_th_sfc.
DATA w_th_sfc LIKE LINE OF l_th_sfc.
DATA l_th_sfk TYPE rsdri_th_sfk.
DATA w_th_sfk LIKE LINE OF l_th_sfk.
DATA l_t_range TYPE rsdri_t_range.
DATA w_t_range LIKE LINE OF l_t_range.
DATA l_first_call TYPE rs_bool.
DATA cube TYPE rsinfoprov.

CLEAR: l_th_sfc[], w_th_sfc.
w_th_sfc-chanm = '0MATERIAL'.
w_th_sfc-chaalias = '0MATERIAL'.
w_th_sfc-orderby = 0.
INSERT w_th_sfc INTO TABLE l_th_sfc.

CLEAR: l_th_sfk[], w_th_sfk.
w_th_sfk-kyfnm = '0CPTSTREBU'.
w_th_sfk-kyfalias = '0CPTSTREBU'.
w_th_sfk-aggr = 'SUM'.
INSERT w_th_sfk INTO TABLE l_th_sfk.

CLEAR: l_t_range[], w_t_range.
w_t_range-chanm = '0RECORDTP'.
w_t_range-sign = 'I'.
w_t_range-compop = 'EQ'.
w_t_range-low = '1'.
APPEND w_t_range TO l_t_range.

cube = 'ZRT_C36'.
l_first_call = 'X'.

CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = 'ZRT_C36'
i_th_sfc = l_th_sfc
i_th_sfk = l_th_sfk
i_t_range = l_t_range
i_reference_date = sy-datum
i_save_in_table = ' '
i_save_in_file = ' '
i_packagesize = 9999999
i_authority_check = rsdrc_c_authchk-read
IMPORTING
e_t_data = l_t_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.
*" ILLEGAL_INPUT
*" ILLEGAL_INPUT_SFC
*" ILLEGAL_INPUT_SFK
*" ILLEGAL_INPUT_RANGE
*" ILLEGAL_INPUT_TABLESEL
*" NO_AUTHORIZATION
*" NCUM_NOT_SUPPORTED
*" ILLEGAL_DOWNLOAD
*" ILLEGAL_TABLENAME
*" TRANS_NO_WRITE_MODE
*" INHERITED_ERROR
*" X_MESSAGE

_________________
Бросай курить, вставай на лыжи -
И вместо рака будет грыжа!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 07 2007, 15:07 
Специалист
Специалист

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Спасибо!!!
Но бесполезно. Все равно с одним кубом получается, а с другим нет. Странно. Придется SELECT использовать. Может есть настройки в кубе какие-нибудь?? Хотя, врядли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 07 2007, 15:11 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 10:59
Сообщения: 754
Откуда: Moscow
А кубик не транзакционный случаем?

_________________
Фарш невозможно провернуть назад,
И мясо из котлет не восстановишь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 07 2007, 15:14 
Специалист
Специалист

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Максим, я с BW мало знаком, а сейчас никого нет из консультантов.
А какие бывают кубы??? И что, если он транзакционный??
Как считывать данные из транзакционных??


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 30 2008, 14:12 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Сюда напишу. Перечитал весь форум, SDN тоже но солюшена так и не нашел.
Тема такая, написал я свой ФМ на основе RSDRI_INFOPROV_READ.
Тестирую на выполнение - все данные тащит из транзакционника, но если я его хочу вызвать из FOX - то хрен, ФМ отрабатывает но возвращает 0. Может у кого есть какие идеи...может какой флаг?

Прочитал ещё что можно заюзать ФМ RSSEM_INFOPROV_READ но что-то не смог переписать вызов....куча дампов меня разочаровала :lol: видать интерефейсы не те...так просто не подпишешь. Может у кого есть пример.

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 30 2008, 18:09 
Ассистент
Ассистент

Зарегистрирован:
Пн, фев 11 2008, 11:40
Сообщения: 31
А может проще написать SELECT. Не так это и сложно, разобраться как работать в SELECTе с кубом. При этом SELECT не зависит от того, транзакционный куб или нет.

Пример:
Code:
SELECT count(*) INTO (l_count) FROM
    /BIC/FZCPLM04A0 as a
    inner join /BIC/DZCPLM04A0T as s on s~DIMID = a~KEY_ZCPLM04A0T
    inner join /BI0/SFISCYEAR as d on d~SID = s~SID_0FISCYEAR
    inner join /BIC/DZCPLM04A02 as f on f~DIMID = a~KEY_ZCPLM04A02
    inner join /BI0/SCOSTCENTER as e on e~SID = f~SID_0COSTCENTER
    inner join /BIC/DZCPLM04A03 as h on h~DIMID = a~KEY_ZCPLM04A03
    inner join /BIC/SZSQU_TYPE as i on i~SID = h~SID_ZSQU_TYPE
    WHERE FISCYEAR = l_date AND FISCVARNT = 'K4' AND e~COSTCENTER = l_costcenter
    AND i~/BIC/ZSQU_TYPE = l_zsqu_type.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 30 2008, 19:09 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
artemisin написал(а):
А может проще написать SELECT. Не так это и сложно, разобраться как работать в SELECTе с кубом. При этом SELECT не зависит от того, транзакционный куб или нет.

Пример:
Code:
SELECT count(*) INTO (l_count) FROM
    /BIC/FZCPLM04A0 as a
    inner join /BIC/DZCPLM04A0T as s on s~DIMID = a~KEY_ZCPLM04A0T
    inner join /BI0/SFISCYEAR as d on d~SID = s~SID_0FISCYEAR
    inner join /BIC/DZCPLM04A02 as f on f~DIMID = a~KEY_ZCPLM04A02
    inner join /BI0/SCOSTCENTER as e on e~SID = f~SID_0COSTCENTER
    inner join /BIC/DZCPLM04A03 as h on h~DIMID = a~KEY_ZCPLM04A03
    inner join /BIC/SZSQU_TYPE as i on i~SID = h~SID_ZSQU_TYPE
    WHERE FISCYEAR = l_date AND FISCVARNT = 'K4' AND e~COSTCENTER = l_costcenter
    AND i~/BIC/ZSQU_TYPE = l_zsqu_type.

вариант...хотел написать универсальный ФМ чтоб подходил для чтения нескольких кубов

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 06:40 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 15 2008, 06:31
Сообщения: 2
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
I_INFOPROV = 'SALE_PRIC'
I_TH_SFC = l_t_chars " при
I_TH_SFK = l_t_keyfs
I_T_RANGE = t_range_for_rate
i_rollup_only = ' '
...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB