Se genera un Error cuando hay un problema crítico en el Procesamiento de una Actividad.
Un Error representa el contenido de un Evento Error, es decir, la estuctura de datos que describe el problema crítico.
Un Evento Error lanza o captura un Error.
Cuando un Evento Error lanza o captura un Error específico, el nombre del Evento debe identificar el Error.
El Evento Error tiene como Marcador la figura de un relámpago.
Un Evento Intermedio Error nunca puede estar sobre el Flujo, siempre está en el Borde de una Actividad en modo Interrupción. Captura un Error específico o cualquier Error si no identifica uno.
Si el Error ocurre en un Subproceso, es propagado al Subproceso que lo contiene, el que puede manejarlo o, a su vez, propagarlo hacia arriba en la jerarquía. El Error es capturado por un Evento Intermedio Error en el Borde del Subproceso. Si existe un Evento en el Borde con el mismo nombre del Error, se sigue su Flujo de Excepción. En caso contrario, se sigue el Flujo de un Evento Intermedio Error sin Error asociado, es decir, sin nombre. Si tampoco éste existe, el Error se propaga al Subproceso superior en la jerarquía.
Cuando un Error es capturado en el Borde de una Actividad deja de propagarse por la jerarquía, a no ser que el manejador de la Excepción vuelva a lanzar el Error.
El comportamiento del Proceso queda no especificado en caso que no haya un Evento que capture el Error en la jerarquía. Si éste se propaga hasta el Proceso Principal, BPMN indica que la estrategia normal es que la instancia del Proceso finalice.
Se puede usar un Subproceso Evento Error para capturar un Error lanzado por un Subproceso en lugar de un Evento Error en el Borde. Además, el Subproceso Evento Error puede estar en el Proceso Principal.
El Evento Final Error lanza un Error específico. Suspende la ejecución del Proceso donde ocurre el Evento, junto con todas las Actividades que pudieran estar activas.
En la introducción agregar un párrafo para el tema Error. Además, hay que agregar que en Ejecución de Procesos hay que proporcionar errorCode para identificar el Error lanzado o capturado. En Modelado de Procesos esto se representa con el nombre del Evento.
Hacer referencia al Evento Escalada como una "extensión" del Evento Error.
Observación 1: en la descripción del funcionamiento del Evento Error en la jerarquía de Subprocesos no se considera que también puede haber Subprocesos Evento. Puede que el texto haya quedado de la versión BPMN 1.2. Por este motivo, el BPMN 2 un Error no puede ser "capturado" por el Proceso Principal con en Subproceso Evento.
Observación 2: un error también puede ocurrir por un fallo en una Operación. Sin embargo, en el blog solo trataremos, por ahora, el caso cuando un error ocurre dentro de un subproceso y es capturado en su borde.
***********************************************
Un Evento TIPO-EVENTO indica un punto donde un Proceso xxxxxxxxxxxxxx.
Como todo Evento, un Evento TIPO-EVENTO se dibuja con un círculo con distintos tipos de línea según sea Inicial, Intermedio o Final. Dentro del círculo se dibuja un(a) xxxxx.
Si una Actividad lanza un Error y no hay Eventos en el Borde que la capturen, ¿qué pasa con las otras Actividades en el Proceso?, ¿se suspende su ejecución? Al pasar al nivel superior en la jerarquía un Evento en el Borde Interruptor las abortará.
Variantes de Eventos TIPO-EVENTO en BPMN
DESCRIPCIÓN RESUMIDA DEL TIPO DE EVENTO. INCLUYE UNA EXPLICACIÓN DE SU SIGNIFICADO.
Texto.
Texto.
Ejemplo 1
Texto.
Texto.
Ejemplo 1
Texto.
Ejemplo 2
Texto.
Ejemplo 2
- Texto.
- Texto.
- Texto.
- Texto.
Significado del Evento TIPO-EVENTO
- Ejecución de Procesos
- Texto.
- Modelado de Procesos
- Texto.
Texto.
Texto.
Texto.
Tema 1
Texto.
Texto.
Texto.
Tema 2
Texto.
Texto.
Texto.
Evento TIPO-EVENTO Variantes
Hay nnn variantes del Evento TIPO-EVENTO. Este Evento puede ser usado en xxxx Posiciones y Modos.
Variantes de Eventos TIPO-EVENTO
| Posición del Evento | Modo | Notación | Descripción | |
|---|---|---|---|---|
| Evento Inicial | Proceso Principal | Captura | N/A | Comienza una nueva instancia del Proceso cuando TIPO-EVENTO. |
| Subproceso | Captura | N/A | No puede iniciar un Subproceso en el Flujo (Embebido o Reutilizable)[1]. | |
| Evento Intermedio | en el Flujo | Captura | N/A | Espera un TIPO-EVENTO. El Flujo continúa cuando llega el TIPO-EVENTO. |
| Lanzamiento | N/A | Envía un TIPO-EVENTO. Una vez enviado el TIPO-EVENTO el Flujo continúa. | ||
| en el Borde | Captura con Interrupción | Interrumpe la Actividad a la que está adosado cuando llega un TIPO-EVENTO, y comienza un Flujo de Excepción. | ||
| Captura sin Interrupción | N/A | No interrumpe la Actividad a la que está adosado cuando llega un TIPO-EVENTO, y comienza un Flujo de Excepción. | ||
| Evento Final | Lanzamiento | Envía un TIPO-EVENTO cuando el Flujo llega al final de un camino. | ||
[1] Los Eventos Error también se pueden usar para iniciar Subprocesos Evento. Pero como los Subprocesos Evento son poco utilizados, y para simplificar la exposición, en este artículo nos referiremos solo a los Subprocesos en el Flujo (Embebidos y Reutilizables).
Evento TIPO-EVENTO Intermedio
Un Evento Intermedio TIPO-EVENTO indica xxxxxxxxxxxxxx después de que comienza un Proceso y antes de que termine.
Un Evento Intermedio TIPO-EVENTO puede ser usado en el Flujo o en el Borde de una Actividad.
- Si está en el Flujo, puede recibir o enviar un TIPO-EVENTO.
- Si está en el Borde de una Actividad, solo recibe un TIPO-EVENTO, y puede interrumpir o no la Actividad.
Texto.
Eventos Intermedios TIPO-EVENTO
Conectores
- Flujo de Secuencia
-
Si el Evento Intermedio TIPO-EVENTO está en el Flujo, entonces debe tener Flujos de Secuencia de Entrada y de Salida.
Si el Evento Intermedio TIPO-EVENTO está en el Borde de una Actividad, entonces no debe tener Flujos de Secuencia de Entrada, pero sí debe tener uno o más Flujos de Secuencia de Salida.
- Flujo de Mensaje
-
xxxxxxxx.
Evento TIPO-EVENTO Intermedio en el Borde Interruptor
|
Un Evento Intermedio TIPO-EVENTO Interruptor en el Borde captura un TIPO-EVENTO, interrumpe la Actividad a la que está adosado y comienza un Flujo de Excepción. El Flujo de Excepción lleva a una o más Actividades que manejan la excepción, y luego continúa hacia un final propio o se une a un Flujo Normal. Se representa con un círculo de línea doble con un xxxxx. |
|
Si TIPO-EVENTO mientras se ejecuta la Actividad B, la Actividad es interrumpida y se continúa por el Flujo de Excepción. Pero si no TIPO-EVENTO, la Actividad B termina normalmente y se pasa a la Actividad C, es decir, continúa el Flujo Normal.
Evento Intermedio TIPO-EVENTO Interruptor en el Borde - dos caminos
En lugar de seguir un camino propio, el Flujo de Excepción se puede reincorporar al Flujo Normal después de procesar la Excepción.
Evento Intermedio TIPO-EVENTO Interruptor en el Borde - un camino
Texto.
Un Evento TIPO-EVENTO en el Borde de una Actividad es usado para que un Proceso reaccione de manera inmediata ante xxxx. Esta reacción consiste en iniciar un Flujo de Excepción.
Por ejemplo, xxx referencia a ejemplo xxxx.
Evento Intermedio TIPO-EVENTO Interruptor en el Borde
Un Evento Intermedio en el Borde siempre es de Captura, nunca de Lanzamiento. La Actividad a la que está adherido puede ser interrumpida o continuar su trabajo.
A diferencia de un Evento Intermedio en el Flujo, que siempre debe gatillarse cuando el Flujo llega a él, un Evento Intermedio en el Borde de una Actividad puede gatillarse o no.
Evento TIPO-EVENTO Final
|
Un Evento Final TIPO-EVENTO lanza un TIPO-EVENTO cuando el Flujo llega al final de un camino. El TIPO-EVENTO es lanzado cuando el Flujo llega al Evento, no hay espera. La instancia del Proceso termina si no hay otros caminos activos. Se representa con un círculo de línea gruesa con un xxxxx oscurecido. |
|
Después de ejecutada la Tarea C el Proceso llega al Evento Final y lanza un TIPO-EVENTO. Como todo Evento Final, el Evento Final TIPO-EVENTO marca en final de un camino en el Flujo del Proceso. Como en el ejemplo solo hay un camino, el Evento también indica el final del Proceso.
Evento Final TIPO-EVENTO
Texto.
Texto.
Un Evento Final TIPO-EVENTO también puede marcar el final de un camino de un Subproceso Embebido, en cualquier nivel de anidamiento.
Evento Final TIPO-EVENTO en Subproceso
Como muestra el ejemplo anterior, un TIPO-EVENTO puede ser lanzado desde cualquier nivel de anidamiento dentro de un Proceso.
Conectores
- Flujo de Secuencia
-
Como todo Evento Final, el Evento Final TIPO-EVENTO debe tener uno o más Flujos de Secuencia de Entrada, y no debe tener Flujos de Secuencia de Salida.
- Flujo de Mensaje
-
xxxxxxxxxxxxxx.
Especificación BPMN
An Error represents the content of an Error Event or the Fault of a failed Operation. An ItemDefinition is used to specify the structure of the Error. An Error is generated when there is a critical problem in the processing of an Activity or when the execution of an Operation failed.
Attribute errorCode must be supplied when an end error event is fired. A start error event catches the error with a specific errorCode. An intermediate bounday error catches the error with a specific errorCode or it is triggered by any error.
If the trigger is an Error, then the errorCode MAY be entered. This Event “catches” the Error. If there is no errorCode, then any error SHALL trigger the Event. If there is an errorCode, then only an Error that matches the errorCode SHALL trigger the Event.
Attribute error. If the trigger is an Error, then an Error payload MAY be provided.
The Event uses a lightning marker.
A catch Intermediate Error Event can only be attached to the boundary of an Activity, i.e., it MAY NOT be used in normal flow. If used in this context, it reacts to (catches) a named Error, or to any Error if a name is not specified. Note that an Error Event always interrupts the Activity to which it is attached, i.e., there is not a non-interrupting version of this Event. The boundary of the Event thus always solid.
This type of End indicates that a named Error should be generated. All currently active threads in the particular Sub-Process are terminated as a result. The Error will be caught by a Catch Error Intermediate Event with the same errorCode or no errorCode which is on the boundary of the nearest enclosing parent Activity (hierarchically). The behavior of the Process is unspecified if no Activity in the hierarchy has such an Error Intermediate Event. The system executing the process can define additional Error handling in this case, a common one being termination of the Process instance.