Inicio > SOA / BPM / WebCenter > Cómo recuperar el contenido de las excepciones en BPEL

Cómo recuperar el contenido de las excepciones en BPEL

Al contrario de lo que pasa en Oracle Service Bus, los procesos BPEL no disponen de una variable de sistema fault en la que consultar el detalle de las excepciones generadas en tiempo de ejecución. Con ello no quiero decir que no podamos conocer dichos detalles, pero nos conllevará algún paso extra.

En primer lugar, hemos de importar a nuestro proyecto la definición RuntimeFault.wsdl:

<wsdl:definitions
     name="Process"
     targetNamespace="http://xmlns.oracle.com/Process"
...
    >
    <plnk:partnerLinkType name="Process">
...
    </plnk:partnerLinkType>
    <wsdl:import namespace="http://schemas.oracle.com/bpel/extension"
                 location="oramds:/soa/shared/bpel/RuntimeFault.wsdl"/>
    <wsdl:types>
...
    </wsdl:types>
...
</wsdl:definitions>

Lo siguiente es crear una variable en nuestro proceso que pueda almacenar el contenido de la excepción y que tendrá la siguiente estructura:

RuntimeFaultMessage

Estructura del RuntimeFaultMessage

Una vez tengamos la variable creada (a la cual hemos llamado runtimeFault), es momento de asignarla a un controlador de excepciones, en el que podremos recuperar su contenido:

<faultHandlers>
  <catch faultName="bpelx:remoteFault" faultVariable="runtimeFault"
         faultMessageType="bpelx:RuntimeFaultMessage">
    <sequence>
      <assign name="RecuperarDetalle">
        <copy>
          <from>$runtimeFault.code</from>
          <to>$outputVariable.payload/ns1:Result/ns2:code</to>
        </copy>
        <copy>
          <from>$runtimeFault.summary</from>
          <to>$outputVariable.payload/ns1:Result/ns2:description</to>
        </copy>
      </assign>
    </sequence>
  </catch>
</faultHandlers>

Como decía al principio, es posible obtener el detalle de aquellas excepciones generadas en tiempo de ejecución, con el fin de facilitar nuestras investigaciones cuando recibamos los bonitos “el proceso me da error”.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: