У вас есть несколько вариантов для этого.
Если вы используете SAP BW, существует множество стандартных инструментов, которые помогут вам выполнять экстракции и автоматизировать процессы.
В противном случае вы можете написать простую программу ABAP (тип 1), чтобы читать данные из таблиц и помещать их в плоский файл.
В противном случае вы можете написать функциональный модуль с поддержкой удаленного доступа (RFC) и вызвать его с помощью RFC-библиотеки SAP.
Вы также можете обернуть свою функцию RFC веб-службой и вызвать ее через SOAP/HTTP.
Наконец, если у вас есть доступ к базе данных, вы даже можете написать сценарий для извлечения необходимых данных.
Простой пример программы, чтобы извлечь что-то из таблицы БД:
report ZEXTRACT_EXAMPLE.
data: lt_t001 type table of t001.
data: ls_t001 type t001.
data: lv_filename type string value '/tmp/outfile.txt'.
select * from t001 into table lt_t001.
open dataset lv_filename for output in text mode encoding default.
loop at lt_t001 into ls_t001.
transfer ls_t001-bukrs to lv_filename.
endloop.
close dataset lv_filename.
Это действительно примитивным, но вы получите идею. Он выбирает данные из таблицы БД во внутреннюю таблицу (в памяти) и записывает ее в файл с именем /tmp/outfile.txt
на сервере, откуда вы можете его забрать. (Вам нужно будет изменить вывод в нужном формате).
Затем вы можете планировать свою программу с помощью SM36 для периодической работы в фоновом режиме.
Спасибо. Я попробую это. – Joshua1729
@mydoghasworms: Ну, эта программа вряд ли сработает, если в таблице есть, например, 10 миллионов записей. Нужно скорее использовать инструкцию 'OPEN CURSOR' для выбора данных и затем последовательно записать их в файл. – Jagger
@mydoghasworms: Еще одна вещь ... если таблица содержит некоторые поля, которые являются несимвольными полями, вы получите разную длину, например, целые числа или десятичные числа в текстовом файле. – Jagger