Download de archivo con formato CSV (campos separados por coma)

21 11 2007

Usando el módulo de función SAP_CONVERT_TO_CSV_FORMAT vamos a poder convertir nuestra tabla interna en una tabla con formato de separación por coma. Para luego poder generar un archivo.


Veamos el siguiente ejemplo:

*Declaramos el Type pool para la tabla de salida
TYPE-POOLS: truxs.

*Declaración de la tabla interna donde vamos poner los datos
DATA: BEGIN OF IT_TABLA1 OCCURS 0,
                  campo1  LIKE tabla-campo1,
                  campo2  LIKE tabla-campo2,
                  campo3  LIKE tabla-campo3,
           END OF IT_TABLA1.

*Declaración de la tabla con formato CSV
DATA: IT_TABLA2 TYPE truxs_t_text_data.

 

*Luego de llenar la tabla IT_TABLA1 con los datos
*Convertimos la tabla a formato CSV
CALL FUNCTION ‘SAP_CONVERT_TO_CSV_FORMAT’
    EXPORTING
       i_field_seperator = ‘;’
    TABLES
       i_tab_sap_data = IT_TABLA1

    CHANGING
       i_tab_converted_data = IT_TABLA2
    EXCEPTIONS
       conversion_failed = 1
       others = 2.
IF sy-subrc <> 0.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

*Hacemos la bajada del archivo utilizando la tabla
*que obtuvimos en el paso anterior.
CALL FUNCTION ‘GUI_DOWNLOAD’
    EXPORTING
       filename = ‘C:\prueba.txt’
    TABLES
       data_tab = IT_TABLA2

    EXCEPTIONS
       FILE_WRITE_ERROR = 1
       NO_BATCH = 2
       GUI_REFUSE_FILETRANSFER = 3
       INVALID_TYPE = 4
       NO_AUTHORITY = 5
       UNKNOWN_ERROR = 6.


Technorati tags:


Acciones

Information

9 responses

2 01 2008
lucas

gracias sirvio tu ayudita, no sabia para que servia el TYPE-POOLS: truxs, solo hacia un copy paste cuando lo necesitaba.

18 08 2009
Emmanuel

Una pregunta extra el codigo funciona a la perfeccion, pero tengo un detalle quiero que al convertir la tabla interna IT_TABLA1 a IT_TABLA2 me respete los espacios a izquierda que lleva cada campo, es posible???

27 08 2009
Daniel Panaro

Que tal Emmanuel,
Fijate si esta sentencia te sirve:
https://danielpanaro.wordpress.com/2008/08/16/completar-variables-con-espacios-a-la-izquierda/

Cualquier cosa escribime un mail, no hay problema.
Saludos,
Daniel.

29 09 2009
rgomezo17

Con respecto a esta función mi pregunta es:
Como quedan los valores negativos, por ejemplo: 1000- ó -1000. Hay esta diferencia con respecto a la función SAP_CONVERT_TO_TEX_FORMAT? o por ultimo tendría que recorrer la tabla y poner los negativos al principio?

2 10 2009
Daniel Panaro

Hola que tal,
Excel reconoce como valores negativos aquellos que tengan el signo adelante (-1000). Por lo tanto tu tabla interna deberás llenarla de esa manera (con el signo negativo adelante).
Saludos,
Daniel.

13 10 2010
MAriela

hola, estoy tratando d probar esta funcino pero me diceque no existe, saben qe otra funcion pudo haberla remplazado?

30 10 2015
Anónimo

A mí me ocurre lo mismo con respecto a la función GUI_DONWLOAD😦

30 10 2015
Anónimo

ups! había escrito en el código donWload en vez de doWnload😀

13 09 2011
Juan Martin

Muy buen tu post Daniel, me re sirvió.

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: