jBPM5 - Componentes del flujo de trabajo

La siguiente captura de pantalla muestra los distintos componentes de flujo de trabajo disponibles en jBPM 5. Con estos componentes, puede crear un flujo de trabajo para orquestar su proceso.

También puede crear sus tareas personalizadas, pero eso se tratará más adelante. Además, hay tareas de servicio disponibles que se pueden utilizar para orquestar un proceso.

  • Start Event- Este es el primer nodo que se ejecuta en cada proceso. Solo puede haber un nodo de inicio en su proceso.

  • End Event- Este nodo señala el final del proceso. Puede haber más de una aparición de este tipo de nodo en un proceso.

  • Rule Task - Es un nodo que evalúa un grupo RuleFlow, que es un grupo de Reglas Drools bajo el mismo alcance con nombre.

  • Gateway (diverge) aka Split- Este nodo en particular crea nuevas rutas / caminos en el proceso. Tiene dos o más conexiones salientes. Puede elegir entre tres tipos diferentes de divisiones / puertas disponibles.

    • AND GATE - Donde el flujo del proceso continúa hacia todas las conexiones salientes al mismo tiempo.

    • XOR GATE - Que va a una única ruta de salida de acuerdo con algunas restricciones predefinidas definidas en el flujo de trabajo.

    • OR GATE - Donde el flujo procede en base a la evaluación de todas las restricciones salientes y esa ruta está habilitada donde la restricción se evalúa como verdadera.

  • Gateway (converge) aka Join- Esta unión es la inversa de la división. Une múltiples caminos en uno. Puede haber cuatro tipos diferentes de Joins / puertas:

    • AND - El flujo continúa cuando todas las ramas están completas.

    • XOR - El flujo continúa cuando se completa al menos una rama.

    • Discriminator- Como XOR, continúa si se ha completado una de sus ramas. Pero a diferencia de XOR, registra las finalizaciones de las otras ramas hasta que se hayan completado todas las conexiones. Cuando sucede, el nodo se reinicia y se puede ingresar nuevamente cuando se activa una rama entrante y el ciclo comienza de nuevo.

    • N-of-M - El flujo continúa cuando n número de mramas completa. Necesita especificar eln (número) al configurar la puerta en cuanto a cuántas ramas deben completarse antes de que salga el flujo.

  • Reusable Sub-Process- Llama a otro proceso. Esto es muy útil para componer varios procesos más pequeños en uno más grande. Este más grande puede ser un proceso de coordinación. Puede configurar el proceso de llamada para esperar a que se complete la llamada y también para que tenga un ciclo de vida independiente de su padre.

    • Script Task - Un nodo que puede ejecutar una simple pieza de código.

    • Timer Event- Este tipo de nodo inicia un temporizador y se activa cuando expira el temporizador. Permite procesos relacionados con el tiempo y tareas repetitivas.

    • Error Event- Este tipo de nodo señala una condición de error en el proceso. No tiene conexiones salientes. Especifica un FaultName y una FaultVariable. El motor buscará un manejador de excepciones que coincida con FaultName y almacene la información de la falla en la variable definida por FaultVariable.

  • Message Event- Se dispara cuando se emite un evento de un tipo predefinido. Puede ser un evento interno (señalado dentro del proceso) o externo (señalado por una entidad externa que no sea el motor del proceso).

  • User Task- Un nodo que crea una tarea humana. Esta tarea humana es una actividad que debe ser completada por un actor humano.

  • Embedded Sub-Process- Ayuda a crear un subproceso dentro de un proceso padre. Puede tener su propio alcance. Esto es útil para procesos más grandes en los que desea mantener aisladas algunas ramas complejas. Puede tener sus propias variables y manejadores de excepciones.

  • Multiple Instances aka for Each- Permite introducir una colección de elementos en un subproceso. Muy útil cuando se combina con un subproceso reutilizable para componer y coordinar procesos más pequeños.