Pregunta

Necesito obtener una lista de un directorio del lado del servidor dentro de SAP. ¿Cómo logro esto en ABAP? ¿Hay alguna función SAP incorporada a la que pueda llamar?

Lo ideal es que quiera una función que pueda pasar una ruta como entrada y que devuelva una lista de nombres de archivos en una tabla interna.

¿Fue útil?

Solución

Después de leer las respuestas de Chris Carrthers y tomdemuyt, diría:

1) Use RZL_READ_DIR_LOCAL si necesita una lista simple de nombres de archivos.

2) EPS_GET_DIRECTORY_LISTING es más poderoso, también puede enumerar subdirectorios.

¡Gracias a ambos!

Con mis mejores deseos Niki Galanov

Otros consejos

EPS2_GET_DIRECTORY_LISTING hace lo mismo que EPS_GET_DIRECTORY_LISTING PERO devuelve los nombres de archivo hasta 200 caracteres!

Función de llamada 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
*"----------------------------------------------------------------------

Coloque la ruta en el parámetro de importación NAME, y luego lea la lista de directorios de FILE_TBL después de que vuelva.

RZL_READ_DIR_LOCAL puede manejar rutas locales normales así como rutas UNC.

El único inconveniente es que solo le da acceso a los primeros 32 caracteres de cada nombre de archivo. Sin embargo, puede crear fácilmente una nueva función basada en el código RZL_READ_DIR_LOCAL y cambiar la forma en que se lee la salida del programa en C, ya que los primeros 187 caracteres de cada nombre de archivo están realmente disponibles.

la respuesta es llamar al módulo de función EPS_GET_DIRECTORY_LISTING. DIR_NAME - > Nombre del directorio FILE_MASK - > Pase '*' para obtener todos los archivos.

Nota: Esto no trata con nombres de archivos realmente grandes (80 caracteres +), trunca el nombre.

Eche un vistazo al código fuente de la transacción AL11: formulario RSWATCH0 fill_file_list Allí puede obtener toda la información sobre los archivos.

Espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top