Un Evento Vacío indica el inicio o el final de un Proceso, pero sin definir una causa o resultado.
Como todo Evento, un Evento Vacío se dibuja con un círculo con distintos tipos de línea según sea Inicial, Intermedio o Final. Pero, a diferencia de los demás Eventos, no tiene un marcador en su interior.
Variantes de Eventos Vacío en BPMN
Ejemplo 1
La Organización recibe una solicitud del Cliente para la creación del producto. La Piscina del Cliente no está representada en el diagrama, la interación de éste con la Organización se muestra con Eventos Mensaje.
El Cliente solicita un producto, la Organización estudia la solicitud y procede a crear el producto. La creación del producto la realiza el Subproceso Embebido Crear producto, que contiene la Actividades donde se preparan los insumos y se ensambla el producto. Finalmente, se procede a preparar el despacho y entregar el producto al Cliente.
Excepcionalmene, mientras se está creando el producto, el Cliente puede cancelar la solicitud. En este caso, el Subproceso es interrumpido (por el Evento Mensaje que está en su borde) y el control pasa a la Actividad Revertir, donde todo lo que se haya adelantado en la creación del producto es devuelto a su estado anterior.
Eventos Vacíos en Subprcoceso y Proceso Principal
El Subproceso Crear producto comienza con un Evento Vacío, que indica el punto donde el control llega desde el Proceso Principal. En este caso, el Subproceso también termina con un Evento Vacío, que solo indica el final del camino, pero no lanza nada especial (Mensaje, Señal, etc.).
El Proceso Principal tiene dos finales: uno normal y otro excepcional. El normal termina con un Evento Final Mensaje (producto despachado), y el excepcional termina con un Evento Vacío, pues todo ha sido hecho el la Actividad previa (Revertir) y solo resta indicar el final del camino, sin realizar ninguna acción especial.
Significado del Evento Vacío
Cuando se activa un Subproceso (al llegar un Token por un Flujo de Secuencia), debe comenzar de inmediato su ejecución. Es decir, no debe esperar que ocurra algo, sino que se debe ejecutar de inmediato una Actividad o una Compuerta. Por este motivo, un Subproceso comienza con un Evento Vacío, ya que éste solo marca el punto de inicio y pasa el control a la Actividad o Compuerta que le sigue, sin ningún tipo de espera.
Un Evento Final Vacío indica el final de un camino donde los elementos previos (Actividades, Eventos y Compuertas) ya han realizado todo el trabajo y solo resta indicar que no hay más por hacer.
Evento Vacío Variantes
Hay tres variantes del Evento Vacío: Inicial, Intermedio en el Flujo y Final.
El Evento Vacío Inicial se considera de Captura, el Intermedio y el Final son de Lanzamiento, pero esto es solo una convención para acomodarlos dentro del cuadro general, ya que - por definición - no capturan ni lanzan nada.
Variantes de Eventos Vacío
| Posición del Evento | Modo | Notación | Descripción | |
|---|---|---|---|---|
| Evento Inicial | Proceso Principal | Captura | Solo cuando el Proceso Principal es a la vez un Proceso Global, es decir, cuando funciona como un Subproceso Reutilizable. | |
| Subproceso | Captura | Indica el inicio de un Subproceso (Embebido o Reutilizable). | ||
| Evento Intermedio | en el Flujo | Captura | N/A | Por convención, está definido como un Evento de Lanzamiento. |
| Lanzamiento | No tiene ninguna influencia en el Proceso. Puede ser utilizado para indicar un cambio de estado en el Proceso. | |||
| en el Borde | Captura con Interrupción | N/A | Puesto que no hay una causa asociada el Evento, no tiene sentido usarlo para iniciar una Excepción. | |
| Captura sin Interrupción | N/A | Puesto que no hay una causa asociada el Evento, no tiene sentido usarlo para iniciar una Excepción. | ||
| Evento Final | Lanzamiento | Indica el final de un camino, pero sin un resultado específico. | ||
Evento Vacío Inicial
Un Evento Inicial Vacío se usa para indicar el punto de partida de un Subpoceso (Embebido o Reutilizable).
Un Proceso Principal siempre debe esperar que ocurra Evento para comenzar, por ejemplo, el arribo de un Mensaje, el cumplimiento de un plazo, etc. En el siguiente diagrama, el Proceso Principal comienza con un Evento Mensaje: cuando llega un Mensaje se crea una nueva instancia del Proceso.
Por otro lado, un Subproceso, una vez que es instanciado por el Proceso que lo contiene o lo llama, debe comenzar de manera inmediata.
Evento Inicial en Vacío comienza un Subproceso
Evento Incial Vacío en Proceso Principal
A pesar de que no es parte del estándar de BPMN, a veces se usa un Evento Inicial Vacío en un Proceso Principal, tanto en la Ejecución de Procesos como en el Modelado de Procesos.
La siguiente figura muestra un Proceso en el BPMS Bonitasoft que implementa un Sistema de Soporte de Incidencias que comienza cuando un cliente informa que tiene un problema. La solución BPMN estándar involucra una Colaboración con dos Piscinas (Cliente y Organización que provee el soporte) que se cooordinan vía Mensajes. En particular, el Proceso de la Organización comienza con un Evento Mensaje que recibe los datos de la incidencia a resolver.
Sin embargo, la versión en el BPMS comienza con un Evento Vacío e incluye solo una Piscina, cuyo nombre refleja el nombre de la aplicación workflow. Es normal que un BPMS se aleje un poco del estándar BPMN ya que debe adaptarse a una implementación concreta.
Bonitasoft funciona sobre la base de documentos que van sufriendo cambios a medida que fluyen por las Actividades del Proceso. Los datos del problema del usuario son ingesados al proceso a través de un formulario web, sin necesidad del mecanismo asociado a un Evento Mensaje de Captura de BPMN.
Evento Inicial Vacío en BPMS
En el Modelado de Procesos es común usar Eventos Iniciales Vacíos en Procesos Principales cuando no es importante un Evento Inicial específico para el entendimiento del Proceso.
Una Colaboración consiste de varios Participantes, representados por sus respectivas Piscinas. Normalmente, una de la Piscinas contiene el Proceso central de la Colaboración, las demás son secundarias y pueden aparecer como Cajas-Negras, e incluso pueden ser omitidas del diagrama.
En el siguiente ejemplo, la Piscina de la Organización contiene el Proceso central de la Colaboración que comienza con un Evento Mensaje (Recibe solicitud). Por otro lado, el Proceso del Cliente es secundario y no es necesario colocar un Evento Inicial específico, basta con un Evento Vacío con un nombre que descriptivo (Tiene un problema).
Evento Inicial Vacío en Piscina secundaria
Cuando se crea un diagrama BPMN con un simple propósito explicativo y el Evento Inicial no es el tema central, se puede usar un Evento Vacío para simplificar la exposición. Este es el caso de la mayoría de los ejemplos de este sitio.
Conectores
- Flujo de Secuencia
-
Como todo Evento Inicial, el Evento Inicial Vacío no debe tener Flujos de Secuencia de Entrada, y debe tener uno o más Flujos de Secuencia de Salida.
- Flujo de Mensaje
-
El Evento Inicial Vacío no debe tener Flujos de Mensaje de Entrada o de Salida.
Evento Vacío Inicial Subproceso Embebido
|
Un Evento Inicial Vacío en un Proceso Embebido comienza una nueva instancia del Subproceso, sin esperar ningún Evento específco. Se dibuja con un círculo de línea fina sin un Marcador interno. |
|
Un Subproceso Embebido está contendido dentro del Proceso donde está diagramado, es ejecutado por el rol representado por la Piscina/Carril que lo contiene. Un Subproceso Embebido solo puede comenzar con un Evento Vacío.
Un Evento Inicial Vacío comienza un Subproceso
El Subproceso es instanciado por el Proceso que lo contiene: cuando llega un Token por un Flujo de Secuencia desde el Proceso contenedor, el Subproceso comienza inmediatamente. En el ejemplo, una vez terminada la Actividad A, el control pasa al Subproceso, que debe comenzar inmediatamente su primera Actividad, es decir, B1. El Evento Vacío solo marca el punto de inicio y pasa el control al elemento (Actividad o Compuerta) que le sigue, sin ningún tipo de espera.
Instanciación de un Subproceso Embebido
Para una descripción más detallada ver el artículo Subproceso Normal.
Evento Vacío Inicial Proceso Global
|
Un Evento Inicial Vacío en un Proceso Global comienza una nueva instancia del Subproceso, sin esperar ningún Evento específco. Se dibuja con un círculo de línea fina sin un Marcador interno. |
|
Un Proceso Principal está contenido en su propia Piscina y debe comenzar con un Evento Inicial distinto de Vacío (Mensaje, Timer, Señal , etc.). Un Proceso Principal no está subordinado a otros Procesos, interactúa de igual a igual con otros Procesos Principales.
Por otro lado, un Proceso Global también está contenido en su propia Piscina, pero debe comenzar con un Evento Inicial Vacío. Un Proceso Global está subordinado a otros Procesos, en el sentido que es llamado (instanciado) desde otros Procesos a través de Actividades de Llamada.
Un Evento Inicial Mensaje no puede comenzar un Subproceso Reutilizable
Un Proceso Global puede ser instanciado desde varios Procesos, en este sentido actúa como un Subproceso Reutilizable.
Un Proceso puede ser a la vez Principal y Global, para ello debe tener un Evento Inicial Vacío (para ser instanciado desde otros Procesos), y un Evento Inicial no Vacío (para ser instanciado de manera independiente).
Para una descripción más detallada ver Subproceso Global-Reutilizable.
Evento Vacío Intermedio
|
Un Evento Intermedio Vacío en el Flujo no envía ni recibe ningún Evento, No tiene ninguna influencia en el Proceso. Se representa con un círculo de línea doble sin un Marcador interno. |
|
El Evento Intermedio Vacío no está asociado a un Evento específico, no tiene ninguna influencia en el devenir del Proceso: no espera la ocurrencia de algún suceso, ni lanza algo. Por mera convención, BPMN lo define como un Evento de Lanzamiento.
El Evento Intermedio Vacío solo puede usarse en el Flujo, nunca en el Borde de una Actividad.
El Evento Intermedio Vacío entre las Actividades B1 y B2, y el Flujo de Secuencia entre C1 y C2, son equivalentes: en ambos casos no hay efecto alguno entre ambas Actividades. Por otro lado, el Evento Intermedio Mensaje de Captura entre D1 y D2 hace que el Proceso espere la llegada de un Mensaje para continuar.
Evento Intermedio Vacío en el Flujo
Según la Especificación de BPMN, el Evento Intermedio Vacío se utiliza en algunas metodologías para indicar cambios de estado en el Proceso. Es importante resaltar que el Evento Vacío no provoca un cambio de estado, solo lo documenta. Por ejemplo, el siguiente extracto indica que antes de la Actividad X el Proceso estaba en el Estado 1, y que las Actividades, Eventos y Compuertas que van desde X a Y provocan que el Proceso quede en el Estado 2.
Evento Intermedio Vacío indica cambio de estado
Muchas veces los cambios de estado de un Proceso reflejan los cambios de estado de los documentos y/ productos que maneja. En BPMN documentos y productos pueden ser modelados con Objetos de Datos, los cuales permiten manejar el concepto de estado. Por lo tanto, una forma más estándar de representar el estado de un Proceso es con Objetos de Datos y no con Eventos Intermedios Vacíos.
Conectores
- Flujo de Secuencia
-
Como todo Evento Intermedio en el Flujo, el Evento Intermedio Vacío debe tener Flujos de Secuencia de Entrada y de Salida.
- Flujo de Mensaje
-
El Evento Intermedio Vacío no debe tener Flujos de Mensaje de Entrada o de Salida.
Evento Vacío Final
|
Un Evento Final Vacío indica el final de un camino, pero sin lanzar un Evento específico. La instancia del Proceso termina si no hay otros caminos activos. Puede ser utilizado en cualquier nivel de Procesos: Principal o Subproceso (en todas sus variantes). Se representa con un círculo de línea gruesa sin un Marcador interno. |
|
El ejemplo muestra tres caminos paralelos, cada uno termina con un Evento Final Vacío. El trabajo efectivo es realizado por las Actividades previas, los Eventos Finales solo marcan el término de cada camino, sin realizar acción alguna. El final del Proceso se produce cuando se alcanzan los tres Evento Finales.
Evento Final Vacío
A pesar que este Evento Final no genera un resultado específico (Mensaje, Señal, Error, etc.), es una Buena Práctica darle un nombre significativo para facilitar la lectura del diagrama.
El siguiente diagrama muesta un Proceso con dos finales: un final normal con un Evento Mensaje que modela la entrega del producto; y un final excepcional con un Evento Vacío que ocurre cuando el cliente aborta el pedido.
El Flujo de Excepción termina con un Evento Vacío porque todo el trabajo, es decir, revertir el pedido, ha sido ya realizado y solo resta indicar el final del camino.
Evento Final Vacío en Subproceso
Conectores
- Flujo de Secuencia
-
Como todo Evento Final, el Evento Final Vacío debe tener uno o más Flujos de Secuencia de Entrada, y no debe tener Flujos de Secuencia de Salida.
- Flujo de Mensaje
-
El Evento Final Vacío no debe tener Flujos de Mensaje de Entrada o de Salida.
Patrón Inicio de Subproceso Embebido
Un Subproceso Embebido es instanciado por el Proceso que lo contiene: cuando llega un Token por un Flujo de Secuencia desde el Proceso contenedor, el Subproceso comienza inmediatamente.
Un Subproceso puede tener varios Flujos de Secuencia de Entrada, cada vez que llega un Token por el mismo o distintos Flujos de Secuencia, se crea una nueva instancia del Subproceso.
Patrón - Patrón 1
Lo normal y recomendable es que un Subproceso Embebido tenga solo un Evento Inicial. Sin embargo, BPMN permite que tenga más de un Evento Inicial (todos Vacíos). En este caso, el comportamiento es más complejo, para mayor detalle ver Subproceso Normal.
Patrón Inicio de Subproceso Global
Un Proceso Global es instanciado por uno o más Procesos a través de Actividades de Llamada. El control pasa desde el Proceso actividador hasta el Evento Vacío contenido en el Proceso Global. Cada instanciación de la Actividad de Llamada conduce a una nueva instanciación del Proceso Global.
Texto.
Patrón - Patrón 2
Un Proceso puede ser a la vez Principal y Global, para ello debe tener un Evento Inicial Vacío (para ser instanciado desde otros Procesos), y un Evento Inicial no Vacío (para ser instanciado de manera independiente).
Para una descripción más detallada ver Subproceso Global-Reutilizable.
Patrón Final de Proceso
Texto.
Texto.
Patrón - Patrón 3
El trabajo efectivo es realizado por las Actividades previas, los Eventos Finales solo marcan el término de cada camino, sin realizar acción alguna. El final del Proceso se produce cuando se alcanzan los tres Evento Finales.
Texto.
Especificación BPMN
None (or empty) Events are Events that do not have a defined EventDefinition. There are three (3) variations of None Events: a Start Event, a catch Intermediate Event, and an End Event. The Event is displayed without a marker.
A None Event is determined by an Event that does not specify an Event Definition.
The None Start Event MAY be used for a top-level Process or any type of Sub-Process (except an Event Sub-Process). Embedded an Reusable but not Event Sub-Process.
The None Start Event does not have a defined trigger. The Event is displayed without a marker.
The None Start Event is used for all Sub-Processes, either embedded or called (reusable). Other types of triggers are not used for a Sub-Process, since the flow of the Process (a token) from the parent Process is the trigger of the Sub-Process. If the Sub-Process is called (reusable) and has multiple Start Events, some of the other Start Events MAY have triggers, but these Start Events would not be used in the context of a Sub-Process. When the other Start Events are triggered, they would instantiate top-level Processes.
A top-level Process that has at least one None Start Event MAY be called by a Call Activity in another Process. The None Start Event is used for invoking the Process from the Call Activity. All other types of Start Events are only applicable when the Process is used as a top-level Process.
The None Start Event MAY NOT be used for an Event Sub-Process.
The throw None Intermediate Event MUST only be used in normal flow and, thus, MAY NOT be attached to the boundary of an Activity.
The None Intermediate Event is only valid in normal flow, i.e., it MAY NOT be used on the boundary of an Activity. Although there is no specific trigger for this Event, it is defined as throw Event. It is used for modeling methodologies that use Events to indicate some change of state in the Process. The Event is displayed without a marker.
The throw None Intermediate Event MUST only be used in normal flow.
Although there is no specific trigger for this Event, it is defined as throw Event.
The None Intermediate Event MAY NOT be used on the boundary of an Activity.
The None End Event MAY be used within any Sub-Process or Process. The None End Event does not have a defined result. The Event will be displayed without a marker.