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
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
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
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
Bonitasoft empowers development teams with Bonita, the open-source and extensible platform to solve the most demanding process automation use cases. The Bonita platform accelerates delivery of complex applications with clear separation between capabilities for visual programming and for coding. Bonita integrates with existing solutions, orchestrates heterogeneous systems, and provides deep visibility into processes across the organization.