Thursday, May 12, 2011

ejecutar la funcion doXslTrasnsform

Si quieres hacer transformacion de datos en el BPEL, existe una funcion que ejecuta las hojas de estilo XSLT, para ejecutar esta instruccion dentro de un BPEL necesita la ruta de un XSLT y un node-set. Este node-set no puede ser ni un tipo de dato definido en tu XML Schema, (fichero xsd) ni un mensaje WSDL. Así que lo unico que acepta son elementos definidos. Así que es un poco extraño que si en tu WSDL que no has definido nigún tipo de dato element, tengas que definirlo para realizar una llamada a un XSLT. Así que la solución que propongo es, defines un nuevo fichero Schema XML inserto un element en el fichero, importo el Schema XML en el WSDL, importo el WSDL en el BPEL.

  <import location="HelloWorld.wsdl"
     namespace="http://ode/bpel/unit-test.wsdl"
     importType="http://schemas.xmlsoap.org/wsdl/" />
< ... mas nodos bpel
 <variables>
     <variable name="myVar" messageType="test:HelloMessage"/>
     <variable name="tmpVar" element="data:elementoNuevo" />
     <.... mas variables
   </variables>
<... proceso
<... copia el mensaje a la variable.
   <bpel:assign  name="Assign">
            <bpel:copy>
                <bpel:from>bpel:doXslTransform('urn:/transforma.xsl',$tmpVar)</bpel:from>
                <bpel:to variable="otherVar" part="TestPart" />
            </bpel:copy>
        </bpel:assign>

No comments:

Post a Comment