Текущее время: Чт, авг 21 2025, 11:00

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Многократно выполняется экстракция данных в куб
СообщениеДобавлено: Чт, ноя 29 2007, 18:37 
Специалист
Специалист

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Добрый день!! Есть проблема... Экстракции данных в куб из системы R3 с использованием источника данных(выборка делается в функциональном модуле) выполняется очень много раз... Хотя надо всего лишь один раз... Создается очень много пакетов... Как сделать только однократную выгрузку??
Спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: а почему так сделано?
СообщениеДобавлено: Чт, ноя 29 2007, 19:49 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
непонятно из вопроса, что вам мешает грузить данные один раз.


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Пакетов много? ФМ самописный?


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

Зарегистрирован:
Пт, окт 19 2007, 09:16
Сообщения: 49
Может в ФМ забываете вызвать excption no_more_data?

_________________
I'm a rabbit in your headlights...


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Еще может быть в инфо-пакете настроен объем пакета и данные разбиваются в соответствие с этой настройкой


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: а почему так сделано?
СообщениеДобавлено: Пт, ноя 30 2007, 10:18 
Специалист
Специалист

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
bwbams написал:
непонятно из вопроса, что вам мешает грузить данные один раз.

Так и надо один, но почему-то грузиться по несколько раз... Сначала было около 800 пакетов с одними и теми же данными(после прервали процесс), а сейчас по 9 пакетов...

Вообще, ФМ самописный.. Сделан на основе RSAX_BIW_GET_DATA_SIMPLE, но выборка делается вручную, то есть ракурс не используется... Вот непонятно: проблема в ФМ или проблема в настройках экстрактора?


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Я думаю если данные дублируются - то ФМ


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Просто при тестировании экстрактора в R3(транзакция RSA3) все нормально... Один пакет, там все нужные записи


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Текст ФМ можно глянуть?


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZMM_S_RESMNG_PLAN_IN OPTIONAL
*"----------------------------------------------------------------------


* Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SRSC_S_SELECT.

* Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,

* counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,

* cursor
S_CURSOR TYPE CURSOR.
* Select ranges
RANGES: L_R_CARRID FOR SFLIGHT-CARRID,
L_R_CONNID FOR SFLIGHT-CONNID.

* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.

************************************************************************
* Initialization: check input parameters
* buffer input parameters
* prepare data selection
************************************************************************

* Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.

* Fill field list table for an optimized select statement
* (in case that there is no 1:1 relation between InfoSource fields
* and database table fields this may be far from beeing trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.

ELSE. "Initialization mode or data extraction ?
IF S_COUNTER_DATAPAKID = 0.
PERFORM fill_it.
e_t_data[] = g_it_result[].
CLEAR g_it_result.
REFRESH g_it_result.
ENDIF.

S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF.


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Вооот
Прав был Chay_kofe
У Вас нет события что данные закончились


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Спасибо... Сейчас поправим... А как вот в данном случае рулить пакетами?? Если вся выборка не уместиться в один пакет??


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Еще, Вы пытаетесь весь объем выбранных данных засунуть в один первый пакет. Получается строчка S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1. не нужна. Если данных будет много- могут быть дампы. А в RSAX_BIW_GET_DATA_SIMPLE как раз показано как на стороне р3 сначала создается курсор для всех данных, а потом выбираются попакетно и попакетно отправляются в BW. Тут то S_COUNTER_DATAPAKID и нужен.


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Но у меня там очень сложная выборка... И я не могу там пользоваться OPEN CURSOR...


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
....
* Auxiliary Selection criteria structure
data: l_s_select type srsc_s_select.

* Maximum number of lines for DB table
statics: s_s_if type srsc_s_if_simple,

* counter
s_counter_datapakid like sy-tabix value 0,

* cursor
s_cursor type cursor.

* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?
if i_initflag = sbiwa_c_flag_on.

************************************************************************
* Initialization: check input parameters ***
* buffer input parameters ***
* prepare data selection ***
************************************************************************

* Check DataSource validity
case i_dsource.
when prsrc.
when others.
if 1 = 2. message e009(r3). endif.
* this is a typical log call. Please write every error message like this
log_write 'E' "message type
'R3' "message class
'009' "message number
i_dsource "message variable 1
' '. "message variable 2
raise error_passed_to_mess_handler.
endcase.

append lines of i_t_select to s_s_if-t_select.

* Fill parameter buffer for data extraction calls
s_s_if-requnr = i_requnr.
s_s_if-dsource = i_dsource.
s_s_if-maxsize = i_maxsize.

* Fill field list table for an optimized select statement
* (in case that there is no 1:1 relation between InfoSource fields
* and database table fields this may be far from beeing trivial)
append lines of i_t_fields to s_s_if-t_fields.
exit.
else. "Initialization mode or data extraction ?



Refresh e_t_data.

If s_counter_datapakid = 0. " Когда формируется первый пакет создаем курсор (ну чтоб один раз это делать)
OPEN CURSOR WITH HOLD S_CURSOR FOR
select ...
from ... as a
inner join ... as b
on ... = ...
where ...
.
EndIf.

" Теперь выборка для каждого пакета
" S_S_IF-MAXSIZE можно менять в настройке инфо-пакета
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA " засунули сюда то что хотим передать
PACKAGE SIZE S_S_IF-MAXSIZE.

IF SY-SUBRC NE 0. " Если выбрать данные не получилось - курсор закрываем
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA. " и говорим BW что данных больше нет
ENDIF.

s_counter_datapakid = s_counter_datapakid + 1.

EndIf.
EndFunction.


Последний раз редактировалось Lench Пт, ноя 30 2007, 13:44, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

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


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

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


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

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