Anuncio

Colapsar
No hay anuncio todavía.

Funciones

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Funciones

    Es una pregunta seguramente muy básica, pero recién empiezo en esto, así que ahí va:

    Cuales son las funciones para bajar los datos de una tabla interna a un TXT o un excel?

    Gracias por su respuesta.

  • #2
    Hola Koken,

    todos empezamos alguna vez :

    las funciones son:

    gui_download
    gui_upload

    también existen las ws_upload y ws_download, pero ambas están obsoletas.

    Suerte

    Comentario


    • #3
      Puede ser que alguna de esas no me funcione ?

      Comentario


      • #4
        Cual de esas dos no te está funcionando ?

        Poné el código que estás usando y lo vemos.

        Comentario


        • #5
          Hola,

          acá le dejo como se usa la función:

          p_file es el el path del archivo con su nombre incluído, y p_table es la tabla interna que vas a depositar en ese archivo.

          CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
          filename = p_file
          * FILETYPE = 'ASC'
          * WRITE_FIELD_SEPARATOR = ' '
          TABLES
          data_tab = p_table
          * FIELDNAMES =
          * EXCEPTIONS
          * FILE_WRITE_ERROR = 1
          .
          IF sy-subrc <> 0.
          * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.

          Saludos!

          Comentario


          • #6
            Hola a todos.

            Completo con algunas cosas.

            Bueno como bien dijo Josemir, la funcion GUI_DOWNLOAD se usa de esa manera y sirve para generar un archivo desde una tabla interna.
            Ahora si queres capturar los datos de un archivo (txt, o xls) hacia una tabla interna tenes que utlizar la GUI_UPLOAD. Aca esta el codigo.

            DATA: filename TYPE string.

            filename = p_ruta.

            CALL FUNCTION 'GUI_UPLOAD'
            EXPORTING
            filename = filename
            filetype = 'ASC'
            has_field_separator = 'X'
            * HEADER_LENGTH = 0
            * READ_BY_LINE = 'X'
            * DAT_MODE = ' '
            * IMPORTING
            * FILELENGTH =
            * HEADER =
            TABLES
            data_tab = it_ejemplo[]
            * EXCEPTIONS
            * FILE_OPEN_ERROR = 1
            * FILE_READ_ERROR = 2
            * NO_BATCH = 3
            * GUI_REFUSE_FILETRANSFER = 4
            * INVALID_TYPE = 5
            * NO_AUTHORITY = 6
            * UNKNOWN_ERROR = 7
            * BAD_DATA_FORMAT = 8
            * HEADER_NOT_ALLOWED = 9
            * SEPARATOR_NOT_ALLOWED = 10
            * HEADER_TOO_LONG = 11
            * UNKNOWN_DP_ERROR = 12
            * ACCESS_DENIED = 13
            * DP_OUT_OF_MEMORY = 14
            * DISK_FULL = 15
            * DP_TIMEOUT = 16
            * OTHERS = 17
            .
            IF sy-subrc <> 0.
            * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.

            Donde it_ejemplo es la tabla interna a la cual vas a meter los datos y p_ruta es la variable que viene con la ruta de dicho archivo.
            Algunas variables de la funcion a tener en cuenta (abajo de EXPORTING):
            filename = filename ----> es la ruta
            filetype = 'ASC' ----> esto es para archivos txt, esta variable suele traer problemas, si te tira un dump en esta linea probablemente tengas mal el archivo.
            has_field_separator = 'X' ----> esta se utiliza cuando en el text, los campos estan separados por tabulaciones.

            Si tenes un xls con los campos de la tabla, lo guardas cono txt con tabulaciones, y asi como esta la funcion anda bien.

            Espero te haya servido.

            Saludos.

            Comentario

            Trabajando...
            X