Очень кратко: существует группа функций
RSAX, есть функциональный модуль
RSAX_BIW_GET_DATA_SIMPLE, на основе этого ФМ делается экстрактор. В исходном коде есть строчки:
Code:
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT (S_S_IF-T_FIELDS) FROM SFLIGHT
WHERE CARRID IN L_R_CARRID AND
CONNID IN L_R_CONNID.
ENDIF.
Здесь вам нужно открывать курсор по соответствующему SQL запросу (для Вашей задачи).
Code:
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
Здесь передается
пакет данных в BW с размером
S_S_IF-MAXSIZE.
Нужно сделать аналогичным образом, чтобы избежать переполнения внутренней таблицы.
В случае, если у Вас существует еще какая то логика обработки данных внутренней таблицы, то как Вы сказали нужно "дорабатывать абап и откусывать по частям" и передавать внутреннюю таблицу "пакетировано".