Función RZL_READ_DIR_LOCAL – Conocer contenido de un directorio

14 08 2008

Con la función RZL_READ_DIR_LOCAL podemos saber cuál es el contenido de un directorio del servidor en SAP.

Este es el código:

*-Declaro un parameter en el cual se completa la ruta del servidor del que queremos conocer su contenido
PARAMETERS:
            p_file TYPE rlgrap-filename OBLIGATORY DEFAULT ‘/data/’.

*-Variable para pasarle la ruta a la función
DATA: lv_name TYPE salfile-longname.

*->Levanto la lista de directorios
    lv_name = p_file.
    CALL FUNCTION ‘RZL_READ_DIR_LOCAL’
      EXPORTING
        name           = lv_name
      TABLES
        file_tbl       = it_filedir
      EXCEPTIONS
        argument_error = 1
        not_found      = 2
        OTHERS         = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

*Como resultado en la tabla interna it_filedir obtenemos todo el contenido, *ya sean subcarpetas o archivos, de la ruta del servidor que ingresamos *por parámetro.


Technorati tags:


Acciones

Information

8 responses

15 10 2012
Jesús Gil Sánchez

Puesto que el parámetro que se le pasa a la función únicamente permite nombres de archivo de 32 carácteres… ¿conoce otra función en la que no exista un límite tan bajo para el nombre de los ficheros?

8 04 2015
Lucho

Podes hacer una copia de la funcion ‘RZL_READ_DIR_LOCAL’ como ‘ZRZL_READ_DIR_LOCAL’ y modificar tamaño en caracteres del campo NAME de la estructura SALFLDIR en una estructura copiada con el nombre ZSALFLDIR. Luego haces un referencia a ese tipo de estructura nuevo en la solapa TABLAS de la SE37. Tambien debes copiar las definiciones globales de la funcion estandar a la version copiada. Es muy sencillo y funciona perfectamente.

5 01 2016
Ricardo Perez

Hola buen dia, fijate que ultizo es funcion estandar de SAP pero me limita a 10,000 registros. Habra forma de evitar esto y que me mande todo lo que hay.

Muchas gracias.

Saludos.

9 03 2016
Anónimo

Como solucionaron lo de la limitante de 10,000 lineas, tengo el mismo problema

9 03 2016
Ricardo Perez

le hice una copia a este modulo de funcion y lo ajuste a la necesidad que teniamos “RZL_READ_DIR_LOCAL”
Este modulo te extrae hasta 100,000 registros

9 03 2016
Anónimo

Como hiciste ese ajuste. iluminame.

Saludos.

10 03 2016
Ricardo Perez

Perdon amigo, no me habia dado cuenta que te había pegado el mismo modulo de funcion de un principio el modulo que te va ayudar a solucionar tu problema es el siguiente:

EPS_GET_DIRECTORY_LISTING

Este si es el de los 100,000 registros.

Saludos.

15 03 2016
Daniel Panaro

Muchas gracias Ricardo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: