Получите содержимое серверного каталога в SAP ABAP.

StackOverflow https://stackoverflow.com/questions/152919

  •  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Там вы можете получить всю информацию о файлах.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top