Hola,
he generado un fichero xml utilizando clases xml. El problema lo tengo cuando quiero transferir los datos a un fichero en el servidor. cuando los transfiero a local no me da problema. El error en el servidor es que el fichero se genera pero al abrirlo llega un punto en el xml en el q se corta.
Una vez que tengo el xml creado en los objetos correspondientes, ésto es lo que hago para descargarlo primero a tabla y luego transferirlo.
TYPE-POOLS: ixml.
DATA: g_document TYPE REF TO if_ixml_document.
DATA: l_xml_size TYPE i.
TYPES: BEGIN OF xml_line,
data(512) TYPE x,
END OF xml_line.
* Creating a stream factory
DATA: l_filename TYPE string.
DATA: l_fichero LIKE rlgrap-filename.
DATA: l_xml_table_aux TYPE TABLE OF xml_line WITH HEADER LINE.
l_streamfactory = g_ixml->create_stream_factory( ).
* Connect internal XML table to stream factory
l_ostream = l_streamfactory->create_ostream_itable( table =
l_xml_table ).
* Rendering the document
l_renderer = g_ixml->create_renderer( ostream = l_ostream
document = g_document ).
g_rc = l_renderer->render( ).
* Saving the XML document
l_xml_size = l_ostream->get_num_written_raw( ).
l_xml_table_aux[] = l_xml_table.
* NOMBRE FICHERO.
READ TABLE t_mensaje_cabecera WITH KEY opbel = t_erdk-opbel.
g_fechahora = t_mensaje_cabecera-codigodesolicitud.
DATA wa_linea TYPE xml_line.
CONCATENATE
'/interfaces/BI/salida/DATRF-' g_fechahora '-A33591611.xml'
INTO L_FICHERO.
* TRANSFERIR TABLA A FICHERO DEL SERVIDOR
OPEN DATASET l_fichero FOR OUTPUT IN BINARY MODE.
LOOP AT l_xml_table INTO wa_linea.
TRANSFER wa_linea TO l_fichero length 512.
CLEAR wa_linea.
ENDLOOP.
CLOSE DATASET l_fichero.