Funcion q coja fichero del servidor y lo devuelva en itab

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Vero2007
    Member
    • mar
    • 38

    #1

    Funcion q coja fichero del servidor y lo devuelva en itab

    Hola, necesito saber si alguien conoce alguna funcion que coja un fichero del servidor (no de local) y lo vuelque todo su contenido en una tabla interna.

    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    FILENAME = l_direccion
    TABLES
    DATA_TAB = i_fileIn .

    Esta funcion vale pero solo para ficheros que estan en local, pero en el servidor.

    Si alquien lo sabe por favor que me lo diga, lo necesito.
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    Trata con Open DataSet
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • DCErick
      Moderator
      • mar
      • 1090

      #3
      Esta funcion funciona en fondo, implementa el uso de Open Data Set,


      EPS_GET_DIRECTORY_LISTING
      Editado por última vez por DCErick; 29/03/2007, 00:22:13.
      -------------------
      ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

      Comentario

      • Claudia Valdespino
        Member
        • mar
        • 54

        #4
        Hola, para levantar un archivo del servidor puedes usar el siguiente código:

        perform obtener_archivos_directorio using v_ruta
        changing t_texto[].
        *&---------------------------------------------------------------------*
        *& Form obtener_archivos_directorio
        *&---------------------------------------------------------------------*
        * Se encarga de obtener la lista (nombres) de archivos que se
        * encuentran en la ruta de archivo especificada
        *----------------------------------------------------------------------*
        form obtener_archivos_directorio using p_dirname type c
        changing p_archivos like t_fichero[].

        data: lw_searchpoints type ty_searchpoints,
        errno(3) type c,
        errmsg(40) type c,
        name(75) type c,
        w_archivo like t_fichero.

        clear lw_searchpoints.

        refresh p_archivos.
        concatenate p_dirname '/' into lw_searchpoints-dirname.
        lw_searchpoints-sp_name = '*'.

        call 'C_DIR_READ_FINISH' " just to be sure
        id 'ERRNO' field errno
        id 'ERRMSG' field errmsg.
        clear: errno, errmsg.

        call 'C_DIR_READ_START' id 'DIR' field lw_searchpoints-dirname
        id 'FILE' field lw_searchpoints-sp_name
        id 'ERRNO' field errno
        id 'ERRMSG' field errmsg.

        if sy-subrc <> 0.
        exit.
        endif.

        do.
        call 'C_DIR_READ_NEXT'
        id 'NAME' field name.

        if sy-subrc = 0.
        clear w_archivo.
        w_archivo-texto = name.
        append w_archivo to p_archivos.
        else.
        exit.
        endif.
        enddo.

        close dataset lw_searchpoints-dirname.
        endform. "obtener_archivos_directorio

        * Recorre cada uno de los archivos cargados del servidor y almacena la data
        loop at t_texto.
        concatenate v_ruta_ori '/' t_texto-texto into w_arch.
        perform procesar_archivo using w_arch
        changing itab_ops[].
        endloop.

        *&---------------------------------------------------------------------*
        *& Form procesar archivo
        *&---------------------------------------------------------------------*
        * Se encarga de leer un archivo de una ruta para procesarlo y
        * obtener los datos que contiene para almacenarlo en una estructura
        *----------------------------------------------------------------------*
        form procesar_archivo using p_filename type c
        changing p_fichero like t_fichero[].

        data lw_fichero like t_fichero.

        refresh p_fichero.

        open dataset p_filename for input in text mode encoding default.

        if sy-subrc = 0.
        do.
        read dataset p_filename into lw_fichero-texto.
        if sy-subrc <> 0.
        exit.
        endif.
        append lw_fichero to p_fichero.
        enddo.

        close dataset p_filename.
        clear lw_fichero.
        else.
        message e666 with 'OPEN DATASET:' 'No se pudo abrir fichero' p_filename.
        endif.
        endform. "procesar_archivo


        Luego, con un split pones la data en el campo respectivo de tu tabla interna. Espero que te sirva de ayuda
        Saludos,

        Claudia V.

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #5
          Creo que es mejor usar la funcion EPS_GET_DIRECTORY_LISTING,
          Si ya esta hecho por sap, no veo por que escribir una funcion para hacerlo.

          El codigo que pone Claudia es un estracto de la funcion de SAP, agregandole un poco mas de funcionalidad para poner la ruta completa a los nombres de archivo encontrados.

          Solo como punto de vista.
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          • poketina
            Senior Member
            • jul
            • 105

            #6
            Hola !! se puede usar el open dataset para un fichero que cojo de local ?? necesito subir un fichero de texto a una tabla interna y puede q esté en local o puede q esté en el servidor..
            gracias !!!

            Comentario

            Trabajando...