Ver Mensaje Individual
  #14  
Viejo 12/11/09, 17:13:33
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Vale una cosa que se me ha olvidado preguntarte es que como vas a generar las etiquetas? las etiquetas vienen en el stream? o tienes que leer el stream y dependiendo de los campos que lleve generar las etiquetas?

Lo primero que debo decir es que yo no tengo muchos conocimientos de XML por lo que hay muchas cosas que desconozco y seguro que hay una manera mas sencilla de hacerlo

Pero mas o menos la idea seria la siguiente

Para generar un XML se puede hacer de las siguientes maneras

Teniendo los datos metidos en una tabla interna (Funcion (SDIXML_DATA_TO_DOM y SDIXML_DOM_TO_XML)
Teniendo los datos en formato DOM (Funcion SDIXML_DOM_TO_XML)

Asi que tu objetivo deberia ser convertir el stream de datos que te llega o bien a una tabla interna o bien a formato DOM

El problema que tienes es que tu stream de datos te viene en BASE64 y lo que necesitarias no es solo convertirlo a binario sino convertirlo a caracteres para posteriormente meterlo en la tabla y convertirlo en xml

Para convertir de binario a caracteres se puede hacer de forma muy sencilla con field-symbols

seria algo mas o menos asi

data: lv_bin(4) type x,
lv_char(2) type c.

field-symbols: <char> type c.

assign lv_bin to <char> CASTING.

lv_char = <char>.

Podrias recorrer la cadena e ir convirtiendola a caracteres, se que eso es una solucion bastante chapucera pero alguien que tenga mas conocimientos de XML podria arrojarnos mas luz sobre esto

El otro camino seria utilizar la clase CL_XML_DOCUMENT

Con ella puedes crear el XML y supongo que de alguna manera podras traducir ese stream ya sea en binario o en base64 para que lo traduzca y lo meta en el XML

De todas formas te reitero que tienes que saber como colocar las etiquetas

Bueno espero haber ayudado algo :s
Responder Con Cita