PDA

Ver la Versión Completa : Transformación a xml no mantiene la cabecera


oarranzli
23/12/11, 08:25:47
Hola:

Estoy intentando crear un fichero xml con una cabecera como la siguiente:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<tem:mygesttem>
<tem:mytem>
...

Para ello he escrito el siguiente código a través de la transacción STRANS:

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:template>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<tem:mygestem>
<tem:mytem>
...

Sin embargo, cuando lanzo el programa que ejecuta mi CALL TRANSFORMATION la cabecera del fichero xml es muy diferente a lo que esperaría:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<tem:mygestem xmlns="http://tempuri.org/">
<tem:mytem>
...

¿Alguien que haya trabajado con transformaciones a xml podría decirme por qué SAP no crea la cabecera del xml tal y como se le envía?

Muchas gracias,
Oscar

oarranzli
02/01/12, 08:11:47
¿Alguien se ha topado alguna vez con este problema? Gracias.

chemahuercano
06/03/12, 10:06:32
Hola oarranzli,

Para empezar lo siento, porque no te puedo ayudar con el tema de la cabecera.

Mi pregunta es si sabes como se puede utilizar la STRANS para ejecutar una transformación dado un XML de entrada. O como se podría debuguear ya que por código no se puede o al meno yo no lo he conseguido.

Lo logro ejecutarlo, siempre me da errores cuando no es por el fichero xml, cuando no encuentra el nodo, o me dice que no se ha indicado programa XSLT válido.

Gracias, por adelantado y suerte con tu duda.
Chema

¿Alguien se ha topado alguna vez con este problema? Gracias.

oarranzli
06/03/12, 19:29:19
Hola Chema,

Para hacer lo que quieres imagino que tienes que conocer bien sobre lenguaje XSLT que te permita crear tu plantilla de transformación. Hasta donde he visto no se puede debugar sobre la STRANS. De todos modos, tienes otra opción y es utilizar transformaciones estándar de SAP mediante CALL TRANSACTION ID. Esto es, dejar que sea SAP el que transforme tu código, eso sí será SAP quien controle cómo aparecen los datos finales.

En los siguientes enlaces tienes información
http://blogdesap.blogspot.com/2012/02/webservicesi-ficheros-xml.html
http://sapblog.rmtiwari.com/2009/04/generate-simple-transformation-for-xml.html

Siento no poder responder mejor a tu pregunta, pero espero que te sea de ayuda.

Saludos,