Si alguna vez se encuentran con el problema de que están creando un archivo de texto en el aplication server de su sistema de SAP y a la hora de leerlo les da problemas, prueben la siguiente solución.
Recientemente tuve que crear un archivo TXT con un reporte de documentos, al crearlo utilicé el open dataset normal con el encoding default, el archivo era un archivo separado por tabs, después de crear el archivo, si lo descargaba desde el app server usando la transacción CG3Y con formato ASCI, podiamos visualizar el archivo correctamente alineado, pensabamos que todo estaba bien, pero cuando tratabamos de visualizar el archivo desde windows accesando directamente al drive del server de sap(Unidad mapeada en windows), teniamos problemas de alineado, los tabs se respetaban, pero los saltos de linea no se respetaban usando notepad, al parecer esta problema se da porque los archivos en el server directamente no estan convertidos a ASCI, cosa que si pasa cuando usamos la transacción CG3Y.
La solución para esto fue utilizar el encoding UTF-8, este encoding le permite al notepad interpretar los saltos de página(que se tienen que especificar al final de cada line cuando se crea el file usando el valor Hexadecimal CL_ABAP_CHAR_UTILITIES=>CR_LF ).
Si no tienen forma de accesar los archivos directamente del server para probar la visualización, pueden descargarlo con la CG3Y utilizando el formato BIN, asi estarán viendo una version igual a la guardad en el server.
Código:
DATA: gw_lines TYPE string.
OPEN DATASET gv_filename FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc <> 0.
lv_rc = sy-subrc.
ENDIF.
LOOP AT ut_file INTO gw_lines.
TRANSFER gw_lines TO gv_filename.
ENDLOOP.
CLOSE DATASET gv_filename.
Ojalá esto sea de ayuda.
Saludos
Recientemente tuve que crear un archivo TXT con un reporte de documentos, al crearlo utilicé el open dataset normal con el encoding default, el archivo era un archivo separado por tabs, después de crear el archivo, si lo descargaba desde el app server usando la transacción CG3Y con formato ASCI, podiamos visualizar el archivo correctamente alineado, pensabamos que todo estaba bien, pero cuando tratabamos de visualizar el archivo desde windows accesando directamente al drive del server de sap(Unidad mapeada en windows), teniamos problemas de alineado, los tabs se respetaban, pero los saltos de linea no se respetaban usando notepad, al parecer esta problema se da porque los archivos en el server directamente no estan convertidos a ASCI, cosa que si pasa cuando usamos la transacción CG3Y.
La solución para esto fue utilizar el encoding UTF-8, este encoding le permite al notepad interpretar los saltos de página(que se tienen que especificar al final de cada line cuando se crea el file usando el valor Hexadecimal CL_ABAP_CHAR_UTILITIES=>CR_LF ).
Si no tienen forma de accesar los archivos directamente del server para probar la visualización, pueden descargarlo con la CG3Y utilizando el formato BIN, asi estarán viendo una version igual a la guardad en el server.
Código:
DATA: gw_lines TYPE string.
OPEN DATASET gv_filename FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc <> 0.
lv_rc = sy-subrc.
ENDIF.
LOOP AT ut_file INTO gw_lines.
TRANSFER gw_lines TO gv_filename.
ENDLOOP.
CLOSE DATASET gv_filename.
Ojalá esto sea de ayuda.
Saludos