Modificar las condiciones de transiciones de un proceso en ejecución

Hola todos,

Mi pregunta es la siguiente:

Quisiera saber si es posible modificar las condiciones (expresiones de condicion) de una o varias transiciones de en un proceso en tiempo de ejecución.

De ser lo anterior posible, quisiera saber si se puede hacer con la ProcessAPI o de alguna otra manera

Gracias por su atención y por su ayuda

Saludo Cordial

Esteban

Javi,

Hay muchos escenarios que cuadrarían con tu pregunta, puedes especificar un poco más?

  • Quieres tomar la decision basado en información previa?

  • Quieres modificar las condiciones a evaluar debido a algún valor previo?

  • Quieres modificar las condiciones a evaluar en un proceso de ahora en adelante?

Gracias!

Hola Pablo

Si es que recientemente un cliente nos preguntó si por API él podría modificar las condiciones de transiciones que salen de una compuerta XOR, así que de las opciones que recientemente me diste creo que esta inquietud se encuadra más en “modificar las condiciones a evaluar en un proceso de ahora en adelante”. Yo estuve revisando el API y tengo acceso a la definición de aquellas transiciones y respectivas condiciones que se hayan implementado en el diseño del proceso pero no se si se puedan modificar, es decir, para indicarle al flujo que ahora es necesario evaluar una condición distinta.

Gracias por la respuesta y cualquier cosa estoy atento

Saludo Cordial
Esteban

Hola Pablo

Si es que recientemente un cliente nos preguntó si por API él podría modificar las condiciones de transiciones que salen de una compuerta XOR, así que de las opciones que recientemente me diste creo que esta inquietud se encuadra más en “modificar las condiciones a evaluar en un proceso de ahora en adelante”. Yo estuve revisando el API y tengo acceso a la definición de aquellas transiciones y respectivas condiciones que se hayan implementado en el diseño del proceso pero no se si se puedan modificar, es decir, para indicarle al flujo que ahora es necesario evaluar una condición distinta.

Gracias por la respuesta y cualquier cosa estoy atento

Saludo Cordial
Esteban

Esteban,

No hay un metodo del API para realizar ese cambio pero hay varias formas de hacerlo dependiendo de la versión de subscripción (o comunidad) de BonitaBPM que uses.

Con BonitaBPM Subscription Performance:

  • Puedes cambiar parametros en caliente que afectaria a todas las instancias que lleguen a esa condición a partir de ese mismo momento (en ejecución o recién instanciadas). Con el cambio de parámetro podrías por ejemplo:

    • Elegir de una serie de condiciones a evaluar predefinidas cual ejecutar
    • Cambiar un valor para la condicion, ej. "importe >= ‘MiParametro’ " valiendo por defecto 10, y cambiandolo a otro valor como 20
  • Puedes cambiar la implementación de un conector en caliente que afectaria a todas las instancias que lleguen a esa conector a partir de ese mismo momento (en ejecución o recién instanciadas). De esta manera ejecutarias un nuevo trozo de codigo java el cual te daria el resultado de la condición en un paso previo

Con Community y el resto de versiones de suscripción Teamwork y Efficiency [Nota, Obviamente este escenario tambien es valido con Performance]:

  • Podrías ejecutar un subproceso que evalue las condiciones y retorne el resultado justo antes de la condición. Puedes generar una nueva versión del subproceso para cambiar el resultado. Tiene la limitación que los casos que estén ejecutando dicho subproceso no se actualizarán, solo los recién instanciados y los que no hayan ejecutado aún el call activity

  • Puedes externalizar la evaluación de las condiciones a un sistema externo tipo Drools

Un saludo

Hola Pablo Gracias por la respuesta y las posibles soluciones vamos a analizar con cual podemos irnos. Cualquier cosa estaré comentando.

Cordial Saludo
Esteban