Resumen. Resumen. Resumen. Resumen. Resumen. Resumen.
Resumen. Resumen. Resumen. Resumen. Resumen. Resumen.
Texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto. Texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto.
Advanced
BPMN-Specification-text. BPMN-Specification-text. BPMN-Specification-text.
BPMN-Specification-text. BPMN-Specification-text. BPMN-Specification-text.
Flujo de Secuencia desde y hacia Eventos
Los Eventos Iniciales Mensaje no deben tener Flujos de Secuencia entrantes, lo mismo ocurre con los Eventos Intermedios en el Borde. Las demás variantes (Intermedios en el Flujo y Final) deben tener a lo menos un Flujo de Secuencia entrante.
Todas las variantes, excepto el Evento Final, deben tener a lo menos un Flujo de Secuencia saliente.
Flujos de Secuencia con Eventos Mensaje
| Posición del Evento | Modo | Entrante | Notación | Saliente | Descripción | |
|---|---|---|---|---|---|---|
| Evento Inicial | Proceso Principal | Captura |
Ningún Flujo entrante. Uno o más Flujos salientes. |
|||
| Subproceso | Captura | N/A | ||||
| Evento Intermedio | en el Flujo | Captura |
Uno o más Flujos entrantes. Uno o más Flujos salientes. |
|||
| Lanzamiento |
Uno o más Flujos entrantes. Uno o más Flujos salientes. |
|||||
| en el Borde | Captura con Interrupción |
Ningún Flujo entrante. Uno o más Flujos salientes. |
||||
| Captura sin Interrupción |
Ningún Flujo entrante. Uno o más Flujos salientes. |
|||||
| Evento Final | Lanzamiento |
Uno o más Flujos entrantes. Ningún Flujo saliente. |
||||
Si varios Flujos de Secuencia entran a un Evento, se considera un Flujo no Controlado, esto significa que cuando llega un Token por uno de los Flujos, se activa el Evento (para Captura o Lanzamiento). Si llega otro Token por el mismo u otro Flujo, se crea una instancia separada del Evento.
Cuando sale más de un Flujo de Secuencia desde un Evento, cada uno genera una nueva ruta paralela.
Todos los Flujos de Secuencia que salen de un Evento son Incondicionales.
De un Evento no puede salir un Flujo por Defecto.
Sección 2
Texto. texto. texto. texto. texto. texto.
Flujo del Proceso
El Flujo del Proceso describe la progresión del Proceso a través de Flujos de Secuencia. El Flujo siempre transcurre dentro de los límites de una Piscina: por rutas alternativas, paralelas y de excepción; pasando por Actividades, Eventos y Compuertas.
La siguiente animación muestra tres instanciaciones de un Proceso, en cada una se sigue un camino diferente.
Flujo de un Proceso
Flujo Normal versus Flujo de Excepción
Un Flujo Normal se origina en un Evento Inicial. En cambio, un Flujo de Excepción nace en un Evento Intermedio en el borde de una Actividad.
A continuación se muestra un Proceso con Flujo Normal y un Flujo de Excepción:
- El Flujo Normal comienza en un Evento Inicial Vacío, después vienen las Tareas A, B y C, y termina con un Evento Final "Normal".
- El Flujo de Excepción comienza en el Evento Intermedio Mensaje en el Borde de la Tarea B, después viene la Tarea que maneja la excepción y termina con un Evento Final "Excepcional".
Proceso con Flujo de Excepción independiente.
El Flujo de Excepción puede seguir su propio camino, como en el ejemplo anterior, o unirse al Flujo Normal después de haber manejado la excepción.
Proceso con Flujo de Excepción convergente al Flujo Normal.
Cuando el Flujo de Excepción sigue su propio camino, significa que la excepción invalida el curso normal del Proceso y el Proceso llega a un final alternativo.
Cuando el Flujo de Excepción vuelve al Flujo Normal, significa que la excepción es "reparada" y el Proceso termina de manera normal.
Otros
Los Flujos de Secuencia muestran el orden en que ocurren las Actividades, los Eventos y las Compuertas, dentro de un Proceso.
Un Flujo de Secuencia se representa con un línea sólida con punta de flecha.
Cada Flujo de Secuencia tiene solo un origen y solo un destino.
Un Flujo de Secuencia siempre une dos Objetos de Flujo dentro de una misma Piscina, que es donde ocurre el Proceso.
(Avanzado) El movimiento de tokens a través de un flujo de secuencia no tiene restricciones de tiempo. Un token puede tardar mucho o poco tiempo en moverse a través del flujo de secuencia.
Flujo Normal vs Flujo de Excepción
Una Actividad comienza a ejecutarse cuando recibe un Token por un Flujo de Secuencia. Una vez que termina su trabajo, se activan todos sus Flujo de Secuencia de salida. Este es el funcionamiento "normal".
Si la Actividad tiene un Evento Interruptor en su Borde, puede ocurrir que durante su ejecución el Evento se active, la Actividad termina su trabajo, y se activa el Flujo de Secuencia que sale del Evento Interruptor. Este es el funcionamiento "excepcional".
El Flujo Normal del Proceso nace en un Evento Inicial y van pasando por Actividades que terminan normalmente.
Un Flujo Excepcional nace en un Evento Intermedio Interruptor. El Flujo Excepcional puede tener su propio fin en un Evento Final, o puede reincorporarse al Flujo Normal.
Reglas de conexiones de flujo de secuencia
La Tabla muestra cómo los Objetos de Flujo pueden conectarse entre sí a través de Flujos de Secuencia. La flecha indica que el objeto en la fila se puede conectar al objeto en la columna.
- Estas reglas se aplican a conexiones dentro de un Proceso, dentro de los límites de una Piscina.
- Los Eventos Iniciales no tienen Flujos entrantes, y los Eventos Finales no tienen Flujos salientes.
- Los Objetos dentro de un Subproceso expandido no se pueden conectar con Objetos fuera de él.
- Los Flujos de Secuencia pueden cruzar los límites entre Carriles dentro de la Piscina.
- Piscinas, Carriles, Datos y Artefactos no pueden ser el origen o destino de Flujos de Secuencia.
| Desde/Hacia | Evento Inicial | Tarea | Subproceso | Compuerta | Evento Intermedio | Evento Final |
|---|---|---|---|---|---|---|
| Evento Inicial | ||||||
| Tarea | ||||||
| Subproceso | ||||||
| Compuerta | ||||||
| Evento Intermedio | ||||||
| Evento Final |
Tipos de Flujo de Secuencia
| Tipo | Notación | Descripción |
|---|---|---|
| Flujo Incondicional | Icons | No depende de ninguna condición para activarse. Un Token entra al Flujo y pasa inmediatamente. El ejemplo más simple es un Flujo de Secuencia único que conecta dos Actividades. |
| Flujo Condicional | Icons | Depende de una condición que se evalúa en tiempo de ejecución para determinar si se seguirá o no por él. Si sale de una Actividad, entonces tiene un minidiamante al comienzo del conector. Si sale de una Compuerta, entonces el conector no tiene el minidiamannte. |
| Flujo por Defecto | Icons | Si al activarse una Compuerta Exclusiva o Inclusiva ninguna de las condiciones de salida es verdadera, el Proceso no puede continuar. Para evitar esto, se puede agregar un Flujo por Defecto. Este no tiene condición y se dibuja con una barra diagonal al comienzo del conector. Se activa si todas las condiciones son falsas. |
Flujo Incondicional
Un Flujo de Secuencia Incondicional no depende de ninguna condición para activarse. Un Token entra al Flujo y continúa sin ningún tipo de restricción.
El ejemplo más simple es un Flujo de Secuencia único que conecta dos Actividades.
Si una Actividad o Evento tiene múltiples Flujos de Secuencia salientes incondicionales, todos ellos recibirán un Token cuando la actividad se complete. Es decir, múltiples Flujos de Secuencia salientes se comportan como una divergencia en paralelo. Equivale a que la Actividad o Evento tenga solo un Flujo de Secuencia de salida dirigido a una Compuerta Paralela.
Los Flujos de Secuencia que salen de una Compuerta Paralela son, por definición, todos incondicionales.
Si la actividad no tiene Flujos de Secuencia salientes, se comporta como un nodo final de un camino. La Actividad terminará sin producir ningún Token. Equivale a que la Actividad tenga solo un Flujo de Secuencia de salida dirigido a un Evento Final Vacío.
Nota: No es Buena Práctica que un camino termine en un Actividad o Evento no Final. El único caso permitido es cuando se usa un Subproceso Embebido para crear un "caja paralela".
Flujo Condicional
Un Flujo de Secuencia Condicional depende de una condición que se evalúa en tiempo de ejecución para determinar si se seguirá o no por él. Un Token pasará al Flujo de Secuencia solo si la condición es verdadera.
Si el Flujo de Secuencia Condicional sale de una Actividad, entonces tiene un minidiamante al comienzo del conector.
Si el Flujo de Secuencia Condicional sale de una Compuerta, entonces no tiene un minidiamante al comienzo del conector.
Si una Actividad tiene un Flujo de Secuencia Condicional saliente, entonces debe tener a lo menos otro Flujo de Secuencia Saliente (Incondicional, Condicional, o por Defecto). Esto porque si la Actividad solo tiene una salida condicional y esta es falsa, entonces el Proceso no puede continuar.
Si una Actividad tiene varios Flujos de Secuencia Condicionales de salida, se comporta como una Compuerta Inclusiva, es decir, se activarán todos los Flujos cuya condición sea verdadera. Equivale a que la Actividad tenga solo un Flujo de Secuencia de salida dirigido a una Compuerta Inclusiva.
Si una Actividad tiene Flujos de Secuencia de salida Condicionales e Incondicionales, se comporta como una combinación de una Compuerta Paralela y una Inclusiva (Figura 13.1).
Los Flujos de Secuencia que salen de una Compuerta de Eventos también son condicionales, aunque la mecánica de su funcionamiento es diferente. La condición es que ocurra o no el Evento. El Token queda en "espera" hasta que ocurre el Evento.
Un Evento no puede tener Flujos de Secuencia de salida Condicionales.
Flujo por Defecto
Si al activarse una Compuerta Exclusiva o Inclusiva ninguna de las condiciones de salida es verdadera, el Proceso no puede continuar. Para evitar esa posibilidad, uno y solo uno de los Flujos de Salida puede ser un Flujo por Defecto, que se activa cuando las condiciones de todos los demás Flujos salientes es falsa.
El Flujo de Secuencia por Defecto no debe tener una condición, y si la tiene, es ignorada.
El Flujo por Defecto se dibuja con una barra diagonal al comienzo del conector.
Como se indicó más arriba, si una Actividad tiene varios Flujos de Secuencia Condicionales de salida, se comporta como una Compuerta Inclusiva. Por lo tanto, también se puede usar un Flujo se Secuencia por Defecto.
Flujos de secuencia entrantes
Es posible controlar el inicio del Flujo de Secuencia, en el sentido de permitir o no que pase un Token. Pero una vez que el Token a pasado, llegará sin ninguna restricción a su destino. El Objeto que recibe los Flujos determina el comportamiento.
Cuando una Actividad o Evento recibe varios Flujos de Secuencia, se dice que participa en un "flujo no controlado". Esto significa que cada Token que llega por cualquiera de los Flujos instancia la Actividad o Evento, independientemente de la llegada de Tokens por otros o el mismo Flujo de Secuencia.
Se logra el mismo comportamiento si se coloca una Compuerta Exclusiva Convergente antes de la Actividad.
Si se necesita "controlar" el flujo de Tokens hacia la Actividad o Evento, entonces se deben usar compuertas que sicronicen los Tokens entrantes. Esto se logra con Compuertas Convergentes Paralelas, Inclusivas o Complejas.
Si la Actividad no tiene Flujos de Secuencia entrantes, se comporta como un nodo inicial de un camino y se instanciará cuando se instancia el Proceso o Subproceso que la contiene. Equivale a que la Actividad tenga solo un Flujo de Secuencia de entrada desde un Evento Inicial Vacío.
Nota: No es Buena Práctica que un camino comience con una Actividad o Evento no Inicial. El único caso permitido es cuando se usa un Subproceso Embebido para crear un "caja paralela".
Especificación BPMN
A Sequence Flow is used to show the order that Activities will be performed in a Process (see page 95) and in a Choreography (see page 320).
Normal flow refers to paths of Sequence Flow that do not start from an Intermediate Event attached to the boundary of an Activity. Uncontrolled flow refers to flow that is not affected by any conditions or does not pass through a Gateway. The simplest example of this is a single Sequence Flow connecting two Activities. This can also apply to multiple Sequence Flows that converge to or diverge from an Activity. For each uncontrolled Sequence Flows a token will flow from the source object through the Sequence Flows to the target object.
Normal flow refers to paths of Sequence Flow that do not start from an Intermediate Event attached to the boundary of an Activity. Conditional flow. A Sequence Flow can have a condition Expression that are evaluated at runtime to determine whether or not the Sequence Flow will be used (i.e., will a token travel down the Sequence Flow – see page 95). If the conditional flow is outgoing from an Activity, then the Sequence Flow will have a minidiamond at the beginning of the connector (see figure to the right). If the conditional flow is outgoing from a Gateway, then the line will not have a mini-diamond (see figure in the row above).
Normal flow refers to paths of Sequence Flow that do not start from an Intermediate Event attached to the boundary of an Activity. Default flow. For Data-Based Exclusive Gateways or Inclusive Gateways, one type of flow is the Default condition flow (see page 95). This flow will be used only if all the other outgoing conditional flow is not true at runtime. These Sequence Flows will have a diagonal slash will be added to the beginning of the connector (see the figure to the right).
Exception flow occurs outside the normal flow of the Process and is based upon an Intermediate Event attached to the boundary of an Activity that occurs during the performance of the Process (see page 286).
Sequence Flow Connections Rules
Table 7.3 displays the BPMN Flow Objects and shows how these objects can connect to one another through Sequence Flows. These rules apply to the connections within a Process Diagram and within a Choreography Diagram. The symbol indicates that the object listed in the row can connect to the object listed in the column. The quantity of connections into and out of an object is subject to various configuration dependencies are not specified here. Refer to the sub clauses in the next clause for each individual object for more detailed information on the appropriate connection rules.
Note that if a Sub-Process has been expanded within a Diagram, the objects within the Sub-Process cannot be connected to objects outside of the Sub-Process, nor can Sequence Flows cross a Pool boundary.
Only those objects that can have incoming and/or outgoing Sequence Flows are shown in the table. Thus, Pool, Lane, Data Object, Group, and Text Annotation are not listed in the table. Also, the Activity shapes in the table represent Activities and Sub-Processes for Processes, and Choreography Activities and Sub-Choreographies for Choreography.
A Sequence Flow is used to show the order of Flow Elements in a Process or a Choreography. Each Sequence Flow has only one source and only one target. The source and target MUST be from the set of the following Flow Elements: Events (Start, Intermediate, and End), Activities (Task and Sub-Process; for Processes), Choreography Activities (Choreography Task and Sub-Choreography; for Choreographies), and Gateways.
A Sequence Flow is line with a solid arrowhead that MUST be drawn with a solid single line (as seen in Figure 8.32).
A Sequence Flow can optionally define a condition Expression, indicating that the token will be passed down the Sequence Flow only if the Expression evaluates to true. This Expression is typically used when the source of the Sequence Flow is a Gateway or an Activity.
A conditional outgoing Sequence Flow from an Activity MUST be drawn with a mini-diamond marker at the beginning of the connector (as seen in Figure 8.33).
If a conditional Sequence Flow is used from a source Activity, then there MUST be at least one other outgoing Sequence Flow from that Activity.
Conditional outgoing Sequence Flows from a Gateway MUST NOT be drawn with a mini-diamond marker at the beginning of the connector. A source Gateway MUST NOT be of type Parallel or Event.
A Sequence Flow that has an Exclusive, Inclusive, or Complex Gateway or an Activity as its source can also be defined with as default. Such a Sequence Flow will have a marker to show that it is a default flow. The default Sequence Flow is taken (a token is passed) only if all the other outgoing Sequence Flows from the Activity or Gateway are not valid (i.e., their condition Expressions are false). A default outgoing Sequence Flow MUST be drawn with a slash marker at the beginning of the connector (as seen in Figure 8.34)
A Pool acts as the container for the Sequence Flows between Activities (of a contained Process). The Sequence Flows can cross the boundaries between Lanes of a Pool (see page 304 for more details on Lanes), but cannot cross the boundaries of a Pool. That is, a Process is fully contained within the Pool. The interaction between Pools is shown through Message Flows.
No Sequence Flows are associated with a “Black Box” Pool.
For a “White Box” Pool, the Activities within are organized by Sequence Flows. Message Flows can cross the Pool boundary to attach to the appropriate Activity (see Figure 9.4).
Default sequence flow: The Sequence Flow that will receive a token when none of the conditionExpressions on other outgoing Sequence Flows evaluate to true. The default Sequence Flow should not have a conditionExpression. Any such Expression SHALL be ignored.
Sequence Flows when applied to Activities
The nature and behavior of Sequence Flows is described in “Sequence Flow” on page 95. But there are special considerations relative to Sequence Flows when applied to Activities. An Activity that is the target of multiple Sequence Flows participates in “uncontrolled flow”.
Uncontrolled flow means that, for each token arriving on any incoming Sequence Flows into the Activity, the Task will be enabled independently of the arrival of tokens on other incoming Sequence Flows. The presence of multiple incoming Sequence Flows behaves as an exclusive gateway. If the flow of tokens into the Task needs to be ‘controlled,’ then Gateways (other than Exclusive) should be explicitly included in the Process flow prior to the Task to fully eliminate semantic ambiguities.
If an Activity has no incoming Sequence Flows, the Activity will be instantiated when the containing Process or Sub-Process is instantiated. Exceptions to this are Compensation Activities, as they have specialized instantiation behavior.
Activities can also be source of Sequence Flows. If an Activity has multiple outgoing Sequence Flows, all of them will receive a token when the Activity transitions to the Completed state. Semantics for token propagation for other termination states is defined below. Thus, multiple outgoing Sequence Flows behaves as a parallel split. Multiple outgoing Sequence Flows with conditions behaves as an inclusive split. A mix of multiple outgoing Sequence
Flows with and without conditions is considered as a combination of a parallel and an inclusive split as shown in the Figure 13.1.
If the Activity has no outgoing Sequence Flows, the Activity will terminate without producing any tokens and termination semantics for the container is then applied.
(Advanced) Token movement across a Sequence Flow does not have any timing constraints. A token might take a long or short time to move across the Sequence Flow. If the isImmediate attribute of a Sequence Flow has a value of false, or has no value and is taken to mean false, then Activities not in the model MAY be executed while the token is moving along the Sequence Flow. If the isImmediate attribute of a Sequence Flow has a value of true, or has no value and is taken to mean true, then Activities not in the model MAY NOT be executed while the token is moving along the Sequence Flow.