FILE_READ_AND_CONVERT_SAP_DATA - В общем таки универсальная функция, которая позволяет читать файлы как с сервера так и апликейшен сервера, причем как говорится шампунь и кондиционер в одном наборе, что очень удобно... Пример использования типа такой:
TYPE-POOLS: truxs.
CONSTANTS: c_application_server TYPE truxs_server VALUE 'APP',
c_presentation_server TYPE truxs_server VALUE 'PRS',
c_ole2_server TYPE truxs_server VALUE 'OLE2'.
DATA : l_bin_filelength LIKE sy-tabix,
* ASC = Flat ASCII
* CSV = Comma Separated Values
* TXT = TXT Format (Notepad)
* HTM = Hypertext Markup Language
* HTML = Hypertext Markup Language
l_file_format TYPE truxs_fileformat VALUE 'ASC'.
DATA: BEGIN OF lt_sernr OCCURS 1,
sernr LIKE equi-sernr,
END OF lt_sernr.
CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
EXPORTING
i_filename = 'C:\Sermark.txt'
i_servertyp = c_presentation_server
i_fileformat = l_file_format
* I_FIELD_SEPERATOR =
* I_LINE_HEADER =
IMPORTING
e_bin_filelength = l_bin_filelength
TABLES
i_tab_receiver = lt_sernr
EXCEPTIONS
file_not_found = 1
close_failed = 2
authorization_failed = 3
open_failed = 4
conversion_failed = 5
OTHERS = 6.
IF sy-subrc <> 0.
* Тут типа ошибка чтения файла данных
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_sernr.
WRITE: / lt_sernr-sernr.
ENDLOOP.
Формат файла был типа такой:
350689203872413
350689203872414
350991204175661
350991204175745
350991204175844
Как видим варианты размещения файла могут быть такие:
APP - Апликейшен сервер, в общем для тех кто в танке, это иногда (если сервер совмещен), то это та система где стоит сам SAP
PRS - Сервер презентаций, таки это ваша локальная станция, само собой обработка может быть только в диалоге.
OLE2 - Где эта Оля 2, не знаю, не пробовал.
Форматы файла могут быть типа такие:
* ASC = Flat ASCII
* CSV = Comma Separated Values
* TXT = TXT Format (Notepad)
* HTM = Hypertext Markup Language
* HTML = Hypertext Markup Language
Реально же есть еще два формата
* BIN = Двоичные данные
* XML = Данные в формате XML
При загрузке в диалоге с локальной станции, функция выводит индикатор обработки, плюс к этому умеет выполнять преобразование кодировки для читаемых данных, при этом стоит учесть что кусок выполняющий преобразование кодировки выглядит так:
IF i_fileformat <> c_file_type_binary AND
i_fileformat <> c_file_type_xml.
IF l_lan_cp <> l_sys_cp.
data: ld_lan_cp type abap_encod.
ld_lan_cp = l_lan_cp.
CALL FUNCTION 'TRANSLATE_CODEPAGE_IN'
EXPORTING
CODEPAGE_FROM = ld_lan_cp
TABLES
T_DATA = <fs_itab>
EXCEPTIONS
OTHERS = 0.
ENDIF.
ENDIF.