Puedes descargar los datos de una tabla interna de ABAP a un archivo separado por comas (CSV) utilizando la combinación de funciones GUI_DOWNLOAD y SAP_CONVERT_TO_TEX_FORMAT, esto es perfecto para bajarlo a Excel, ya que el formato CSV puede ser abierto en Excel. Para tu conveniencia aquí hay un ejemplo de cómo utilizar las funciones.
Para probarlo, crea un programa en ABAP con el siguiente código:
*&---------------------------------------------------------------------* *& Report zexport_csv *& *&---------------------------------------------------------------------* *& Por: Luis Cruz *& Descarga una tabla a un archivo separado por comas *&---------------------------------------------------------------------* REPORT zexport_csv. "Para poder declarar mi tabla de salida CSV TYPE-POOLS: truxs. "Tabla interna con mis datos a exportar DATA: BEGIN OF it_usrefus OCCURS 0, bname TYPE xubname, refuser TYPE us_refus, useralias TYPE usalias, END OF it_usrefus. "Tabla en donde tendremos nuestos datos separados por comas DATA: it_csv TYPE TRUXS_T_TEXT_DATA. "Llenar la tabla con hasta 25 filas SELECT bname refuser useralias INTO TABLE it_usrefus UP TO 25 ROWS FROM usrefus. "Importante, aqui le damos formato a los datos "podemos modificar el separador para que se pueda "usar cualquier separador etc CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT' EXPORTING i_field_seperator = ',' TABLES i_tab_sap_data = it_usrefus CHANGING i_tab_converted_data = it_csv 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. "Finalmente bajamos nuestro archivo CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = 'C:\prueba.csv' TABLES data_tab = it_csv EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6.
Notas:
- Puedes descargar un archivo separado por cualquier otro carácter (comas, punto y coma, barra vertical, etc) cambiando el parámetro en la linea 37 del código.
- Descargar archivos con algunas extensiones puede solicitar una confirmación, si tienes este problema, descarga el archivo con extensión txt en lugar de csv, o informa a los usuarios que elijan la opción “Permitir siempre para este tipo de fichero”.
ABAP: Descargar archivo separado por comas (CSV) para usar en Excel
Hola!
En lugar de usar:
CALL FUNCTION ‘SAP_CONVERT_TO_TEX_FORMAT’
use esta funcion:
CALL FUNCTION ‘SAP_CONVERT_TO_CSV_FORMAT’
ya que la primera me generaba un error:
Function parameter “I_TAB_CONVERTED_DATA” is unknown.
Busque y busque en google como solucionar el error y me recomendaron usar esa otra function (aunque no se por que el separador siempre lo pone como ; aunque yo le indique que el separador es un ,).
Gracias.
Hola, siento responder tan tarde.
Si entras al código de la función SAP_CONVERT_TO_CSV_FORMAT, veras que lo que hace es llamar a la función SAP_CONVERT_TO_TEX_FORMAT, y a pesar que pide como parámetro I_FIELD_SEPERATOR, SAP se burla de nosotros ignorando el parámetro y usando la constante que definieron: constants: c_field_separator value ‘;’.