Manejo de errores utilizando sucesos de error

Cuando diseñe un proceso o un servicio, proporcione la lógica necesaria para la recuperación de posibles errores que puedan generarse en la aplicación que se está ejecutando.
Cuando desarrolle una aplicación, cree el manejo de errores en procesos y servicios para hacer lo siguiente:
  • Detectar errores.
  • Especificar cómo se generan y detectan los errores en su entorno de ejecución.
  • Recuperarse de manera previsible.
Por ejemplo, si un proceso se encarga de rellenar pedidos, un elemento puede quedarse sin existencias durante una instancia del proceso, lo que ocasiona un error. El manejo de errores que incorpora en el proceso puede emitir notificaciones para reponer los elementos que se terminen.
Existen tres tipos de sucesos de error:
  • Error y sucesos en procesos y servicios que generan errores. Puede asignar códigos de error y error de datos para errores que generan los sucesos de finalización de error.
  • Sucesos intermedios de error en procesos y servicios que detectan errores
  • Sucesos de inicio de error en subprocesos de sucesos de procesos que detectan errores

Para detectar errores específicos utilizando sucesos intermedios de error, seleccione un código de error en una lista de errores previamente definidos y correlacione los datos de error con la variable. Los sucesos intermedios de error son sucesos de límite, lo que significa que están conectados al límite de una actividad. Cada suceso de límite puede desencadenarse sólo mientras se ejecuta la actividad, interrumpiendo dicha actividad. Desde el diagrama de proceso o servicio, puede utilizar un suceso intermedio de error que se adjunta al límite de una actividad para capturar errores y datos de error específicos de un proceso enlazado, un subproceso o un servicio.

Otra forma de detectar errores es utilizando un suceso de error intermedio en servicios que capturan todos los errores. Durante la creación de servicios, puede adjuntar un suceso de error intermedio en el límite de un paso para capturar todos los errores de dicho paso, y puede utilizar un suceso de error intermedio como parte del servicio para capturar todos los errores que generen los pasos de servicio que no están manejados por el suceso de error intermedio ubicado en el límite del paso.

En los procesos, también puede capturar errores mediante subprocesos de sucesos de error. En el subproceso, utiliza un error de suceso de inicio que captura errores si el suceso de inicio se desencadena.

Sin embargo, decide capturar errores y designa el comportamiento de error para los sucesos en el separador de propiedades de General en el diagrama bajo Propiedades de suceso:
  • Capturar todos los errores o errores específicos. Para capturar errores específicos, puede seleccionar el código de error, correlacionar los datos de error, o ambos, tal como se describe en las viñetas siguientes.
  • Filtrar los errores específicos que se capturan seleccionando un código de error desde una lista de todos los errores generados para el proceso enlazado, subproceso o servicio.
  • Correlacionar los datos de error en una variable seleccionando una variable de correlación de error que fue definida anteriormente en la pestaña Variables. Si el código de error ha cambiado, asegúrese de seleccionar de nuevo la variable, de modo que se pueda correlacionar correctamente.
    Nota: Los datos de error no se pueden correlacionar con una variable que sea de un tipo de lista. Si desea pasar información que tiene la estructura de una secuencia como datos de error, cree un objeto de negocio que contiene un parámetro que es de un tipo de lista y, a continuación, utilice este objeto de negocio como el tipo de la variable.

Si existen varios sucesos de error definidos para capturar errores para un error generado en un proceso, subproceso o servicio enlazado, el suceso de captura está determinado por las reglas de prioridad en el orden en que se listan en la tabla Componentes de suceso de error.

Los errores se detectan en el siguiente orden en su entorno de ejecución:
  1. Los sucesos límite capturan los errores emitidos por la actividad asociada, tal como se describe en la tabla siguiente.
  2. Si no hay ningún suceso límite de error que gestione el error y hay un subproceso en un proceso o en un suceso de error intermedio no conectado de un servicio, los errores se capturan en los subprocesos de suceso de error, según se describe en la tabla siguiente.
  3. Si no hay ningún subproceso de suceso de error que gestione el error en un subproceso de suceso, proceso enlazado o servicio, los errores se propagan al nivel siguiente.
Tabla 1. Componentes de suceso de error
Especifique Detección de errores

código de error y datos de error

Solamente errores con el mismo tipo de código y datos

código de error

Errores con el mismo código, a menos que ya estén detectados por un suceso, como se especifica en la regla anterior

datos de errores

Errores con el mismo tipo de datos, a menos que ya estén detectados por un suceso, como se especifica en las reglas anteriores

Ni código ni error de datos

o

la opción Capturar Todos los Errores en propiedades de error

Todos los errores que aún no se han detectado por un suceso, como se especifica en las reglas anteriores

Nota: Varios sucesos definidos en el mismo contexto y con las mismas restricciones provocan un comportamiento de tiempo de ejecución no determinista.

La especificación del nombre de variable en la correlación controla el filtrado por tipo de datos de error. Si el tipo de la variable y el tipo de datos de error que se muestran en la pestaña Propiedades no coinciden, el tipo de variable determina el comportamiento.