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

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


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

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


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

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