Получить содержимое серверного каталога в SAP ABAP - PullRequest
9 голосов
/ 30 сентября 2008

Мне нужно получить список серверных каталогов внутри SAP. Как мне добиться этого в ABAP? Существуют ли какие-либо встроенные функции SAP, которые я могу вызвать?

В идеале мне нужна функция, которую я могу передать путем ввода и которая будет возвращать список имен файлов во внутренней таблице.

Ответы [ 5 ]

4 голосов
/ 24 ноября 2011

EPS2_GET_DIRECTORY_LISTING делает то же самое, что и EPS_GET_DIRECTORY_LISTING НО повторяет имена файлов до 200 символов!

3 голосов
/ 14 мая 2009

Прочитав ответы Криса Карртерса и Томдемуйта, я бы сказал:

1) Используйте RZL_READ_DIR_LOCAL, если вам нужен простой список имен файлов.

2) EPS_GET_DIRECTORY_LISTING более мощный - он также может перечислять подкаталоги.

Спасибо вам обоим!

С наилучшими пожеланиями Ники Галанов

3 голосов
/ 03 октября 2008

Вызов функции 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 и изменить способ чтения вывода программы на Си, поскольку первые 187 символов каждого имени файла фактически доступны.

2 голосов
/ 02 октября 2008

ответ - вызов функционального модуля EPS_GET_DIRECTORY_LISTING. DIR_NAME -> название каталога FILE_MASK -> Передайте '*', чтобы получить все файлы.

Примечание: это не относится к действительно большим именам файлов (80 символов +), оно усекает имя.

1 голос
/ 09 октября 2008

Посмотрите на исходный код транзакции AL11: форма RSWATCH0 fill_file_list Там вы можете получить всю информацию о файлах.

Надеюсь, это поможет!

...