Hola a todos.
Estoy realizando la carga de un texto con la clase cl_gui_frontend_services en binario. Ya cargado lo convierto a texto con la función ECATT_CONV_XSTRING_TO_STRING. Se convierte correctamente pero al final siempre aparecen unos numerales " # " y no se por que. Inicialmente creí que eran saltos de línea pero tampoco los detecta así.
¿Alguien sabe como los puedo eliminar?
Les dejo el código que estoy probando.
TYPES: BEGIN OF ty_file,
line TYPE x LENGTH 255,
END OF ty_file.
TYPES: BEGIN OF ty_comp,
version TYPE string,
serie TYPE char05,
lugarexpedicion TYPE string,
END OF ty_comp,
BEGIN OF ty_bin,
line TYPE x LENGTH 255,
END OF ty_bin.
DATA: lv_xfile TYPE string,
lv_tmp TYPE string.
* lv_filex TYPE xstring.
DATA: it_bin TYPE TABLE OF ty_bin,
wa_bin LIKE LINE OF it_bin.
DATA: lv_size TYPE i.
CLEAR lv_xfile.
DATA: it_path TYPE filetable,
wa_path LIKE LINE OF it_path,
it_file TYPE TABLE OF ty_file,
wa_file LIKE LINE OF it_file,
gv_rc TYPE i,
lv_path TYPE string,
DATA lv_lines TYPE i.
READ TABLE it_path INTO wa_path INDEX 1.
lv_path = 'C:\Users\???\Downloads\prueba_xml.xml'.
cl_gui_frontend_services=>gui_upload(
EXPORTING
filename = lv_path
filetype = 'BIN'
CHANGING
data_tab = it_file
).
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*
*DATA: lv_xml TYPE string.
DATA: lv_filex TYPE etxml_line_str,
lv_string TYPE string.
LOOP AT it_file INTO wa_file.
CLEAR lv_tmp.
lv_tmp = wa_file-line.
CONCATENATE lv_string lv_tmp INTO lv_string.
ENDLOOP.
lv_filex = lv_string.
CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
EXPORTING
im_xstring = lv_filex
* IM_ENCODING = 'UTF-8'
IMPORTING
ex_string = lv_xfile.
*No lo elimina ni como salto de línea ni como un caracter #
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>newline IN lv_xfile WITH ''.
REPLACE ALL OCCURRENCES OF '#' IN lv_xfile WITH ''.
Muchas gracias y saludos