Получение содержимого каталога на стороне сервера в SAP ABAP
Мне нужно получить список каталога на стороне сервера внутри SAP. Как я могу достичь этого в ABAP? Есть ли встроенные функции SAP, которые я могу вызвать?
В идеале я хочу функцию, которую я могу передать путь в качестве ввода, и которая вернет список имен файлов во внутренней таблице.
5 ответов
после прочтения ответов Криса Carrthers и tomdemuyt я бы сказал так:
1) Используйте RZL_READ_DIR_LOCAL, если вам нужен простой список имен файлов.
2) EPS_GET_DIRECTORY_LISTING более мощный - он также может перечислять подкаталоги.
спасибо вам обоим!
С наилучшими пожеланиями Ники Галанов!--1-->
EPS2_GET_DIRECTORY_LISTING
делает то же самое как EPS_GET_DIRECTORY_LISTING
но перенастраивает имена файлов до 200 chars!
вызов функции RZL_READ_DIR_LOCAL:
FUNCTION RZL_READ_DIR_LOCAL.
*"----------------------------------------------------------------------
*"Lokale Schnittstelle:
*" IMPORTING
*" NAME LIKE SALFILE-LONGNAME
*" TABLES
*" FILE_TBL STRUCTURE SALFLDIR
*" EXCEPTIONS
*" ARGUMENT_ERROR
*" NOT_FOUND
*"----------------------------------------------------------------------
поместите путь в параметр name import, а затем прочитайте список каталогов из FILE_TBL после его возвращения.
RZL_READ_DIR_LOCAL может обрабатывать обычные локальные пути, а также UNC-пути.
единственным недостатком является то, что он дает вам доступ только к первым 32 символам каждого имени файла. Однако вы можете легко создать новую функцию на основе кода RZL_READ_DIR_LOCAL и изменить способ вывода программы C читается, так как первые 187 символов каждого имени файла фактически доступны.
ответ вызывает функциональный модуль EPS_GET_DIRECTORY_LISTING. Имя_каталога -> имя каталога FILE_MASK - > Pass '*', чтобы получить все файлы.
Примечание: это не имеет дело с действительно большими именами файлов (80 символов+), он усекает имя.
взгляните на исходный код транзакции AL11: RSWATCH0 form fill_file_list
Там вы можете получить всю информацию о файлах.
надеюсь, что это помогает!