Получите содержимое серверного каталога в SAP ABAP.
-
02-07-2019 - |
Вопрос
Мне нужно получить список серверного каталога внутри SAP.Как мне добиться этого в ABAP?Есть ли какие-либо встроенные функции SAP, которые я могу вызвать?
В идеале мне нужна функция, которой я могу передать путь в качестве входных данных и которая будет возвращать список имен файлов во внутренней таблице.
Решение
Прочитав ответы Криса Карртерса и Томдемуйта, я бы сказал:
1) Используйте RZL_READ_DIR_LOCAL, если вам нужен простой список имен файлов.
2) EPS_GET_DIRECTORY_LISTING более мощный - он также может перечислять подкаталоги.
Спасибо вам обоим!
С уважением Ники Галанов
Другие советы
EPS2_GET_DIRECTORY_LISTING
делает то же самое, что и EPS_GET_DIRECTORY_LISTING
НО возвращает имена файлов до 200 чарс!
Вызов функции 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, а затем прочитайте список каталогов из FILE_TBL после его возврата.
RZL_READ_DIR_LOCAL может обрабатывать как обычные локальные пути, так и пути UNC.
Единственным недостатком является то, что он дает вам доступ только к первым 32 символам каждого имени файла.Однако вы можете легко создать новую функцию на основе кода RZL_READ_DIR_LOCAL и изменить способ чтения вывода программы C, поскольку фактически доступны первые 187 символов каждого имени файла.
ответ — вызов функционального модуля EPS_GET_DIRECTORY_LISTING.Dir_name -> name of Directory file_mask -> pass '*', чтобы получить все файлы.
Примечание:Это не касается действительно больших имен файлов (более 80 символов), оно усекает имя.
Взгляните на исходный код транзакции AL11:Форма RSWATCH0 fill_file_list
Там вы можете получить всю информацию о файлах.
Надеюсь это поможет!