Adición de un manejador de excepciones global a una orquestación

Si durante el tiempo de ejecución alguna de las actividades de la orquestación genera una excepción y se ha habilitado un manejador de excepciones global, se ejecutará la ramificación global CatchAll.

Acerca de esta tarea

La figura siguiente muestra un ejemplo de orquestación:

Ejemplo de orquestación

En este ejemplo, si alguna de las actividades Insertar base de datos o Insertar filas en base de datos falla y se emite una excepción, se ejecutará la actividad If..Then en la ramificación CatchAll.

Procedimiento

  1. Pulse con el botón derecho del ratón en el icono de inicio icono Inicio de la orquestación y en el menú desplegable, seleccione la opción Add CatchAll Branch. La ramificación CatchAll se añadirá a la orquestación y se crearán de forma automática las siguientes variables:
    • faultName - Durante el tiempo de ejecución, la variable faultName contiene el nombre de la excepción emitida por una actividad de la orquestación.
    • faultData - Durante el tiempo de ejecución, la variable faultData contiene el mensaje de error asociado con la excepción. Esta información adicional solo se devuelve actualmente para las actividades de Web Services. En el caso de las actividades de Web Services, la variable faultData contiene el error.
    • faultInfo - Durante el tiempo de ejecución, la variable faultInfo devuelve los siguientes nodos:
      • name - Durante el tiempo de ejecución, el nodo faultInfo/name contiene el nombre de la excepción emitida por una actividad de la orquestación. El nodo faultInfo/name es de tipo xsd:QName.
      • message - Durante el tiempo de ejecución, el nodo faultInfo/message contiene el mensaje de error asociado con la excepción. El nodo faultInfo/message es de tipo xsd:string.
      • activityId - Durante el tiempo de ejecución, el nodo faultInfo/activityId node contiene el ID de actividad que identifica de manera exclusiva la actividad en la que se ha producido la excepción. El nodo faultInfo/activityId es de tipo xsd:int.
      • activityName - Durante el tiempo de ejecución, el nodo faultInfo/activityName contiene el nombre de la actividad en la que se ha producido la excepción. El nodo faultInfo/activityName es de tipo xsd:string.
      • faultTime - Durante el tiempo de ejecución, el nodo faultInfo/faultTime contiene la hora a la que se produjo el error. El nodo faultInfo/faultTime es de tipo xsd:dateTime.
      Nota: El nombre de la excepción devuelta por una actividad de la variable faultName y el nodo faultInfo/name pueden cambiar en un release posterior.
  2. Configure la ramificación CatchAll arrastrando actividades desde el separador Actividades hasta la ramificación CatchAll como se muestra en la ilustración anterior.

Resultados

Nota: El ámbito de las variables faultName, faultData, y faultInfo está limitado a la ramificación CatchAll. Esta limitación del ámbito supone que la garantía de la validez de estas variables solo se ofrece en la ramificación CatchAll. Por ejemplo, si se añade una actividad If...Then que prueba el valor de la variable faultName, la actividad If...Then debe situarse dentro de la ramificación CatchAll como se muestra en la ilustración anterior.



Comentarios | Notices


Icono de fecha y hora Última actualización: Friday, November 8, 2013


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/Adding_a_Global_Exception_Handler_to_an_Orchestration.html