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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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