Ausente Inbox Workflow
Contenido
Ausente Inbox Workflow
Contenido
Objetivo
Metas
No metas
Background
Overview
Diseño detallado
Solución desarrollada
Botón de ausencias
Interfaz de reasignaciones
Estatus ausente
Estatus no ausente
Modificaciones al BPMN Engine
Consideraciones
Objetivo
Permitir al usuario que recibe las tareas de workflow poder cambiar su estatus a ausente y todas las tareas creadas y futuras reasignadas a nuevos usuarios responsables mientras está activa la ausencia.
Metas
- Cambiar estatus a ausente / presente de un usuario de tareas de workflow desde Inbox
- Reasignar las tareas ya creadas
- Asignar las nuevas tareas al suplente elegido por el usuario
No metas
- No será automático ni se asignan reglas
- Esta reasignación estará fuera del flujo del diagrama y no podrá ser trackable desde el mismo
Background
Cuando un usuario se ausenta y no puede usar la aplicación y no se diseñan los diagramas de workflow esperando tal situación se le seguirá creando tareas que quedarán pendientes de ser completadas deteniendo el flujo de trabajo.
Una forma de evitarlo es usando el concepto de BPMN de tabla de decisiones que se puede implementar en Ebavel con una forma en la cual se incluya al usuario responsable y los posibles suplentes y diseñando el diagrama para utilizar un script para poder decidir si debe usar el usuario responsable o el suplente en base a ciertas reglas ya establecidas que pueden ser tan sencillas o complejas como se requiera.
Overview
Permitiremos a Task Inbox que es la herramienta donde los usuarios ven sus tareas pendientes poder marcarse a sí mismos como ausentes y poder elegir a su suplente o suplentes.
Se mostrará una interfaz donde podrá seleccionar para cada flujo de trabajo a un usuario determinado que será su suplente o reasignar todas sus tareas a un mismo suplente.
Diseño detallado
Botón de ausencias
Se agrega en el task inbox un nuevo botón llamado Ausente que servirá para marcar al usuario como ausente y mostrar la interfaz para reasignar las tareas actuales a sus suplentes.
Interfaz de reasignaciones
En la parte superior aparece un botón Check Box que al activarse permitirá seleccionar un usuario default para todos los diagramas que aparezcan en la lista de workflow y/o por el contrario al estar desactivada permitirá seleccionar un usuario diferente para cada diagrama.
Nota: Aun estando desactivado el Check Box se deberá establecer un usuario default de lo contrario no se permitirá guardar la configuración y se mostrará la leyenda “Este campo es requerido” en color rojo.
Esta configuración permitirá que todos aquellos flujos que no hayan estado activos a través de alguna tarea al momento de realizar la ausencia puedan ser reasignados al usuario default, de esta manera no quedaran tareas acumuladas para el usuario ausente.
Se muestran dos campos tipo fecha donde se podrá seleccionar el periodo por el cual se realizará la ausencia, además, un campo de texto donde se podrá anexar un mensaje para la persona o personas que sean reasignadas.
En caso de no establecer la fecha de primer y/o último día, mostrará la siguiente leyenda “Este campo es requerido” en color rojo y no permitirá avanzar para realizar la ausencia.
En la parte inferior en tres columnas se muestra un listado de todos los flujos en el que el usuario tenga alguna tarea pendiente en donde en la primera columna tendrá el nombre del flujo compuesto por el nombre de la forma y el nombre del diagrama, el segundo el número de tareas pendientes y la tercera columna un selectlist que contendrá la lista de usuarios para escoger el suplente de dicho flujo, siempre y cuando este desactivada la opción de “reasignar todas las tareas a un solo usuario” ya que cuando se encuentra activada solo permitirá asignar un solo responsable default. Así mismo cabe mencionar que “de no tener tareas pendientes no aparecerán los diagramas en el listado”.
Configuración de la ausencia asignando a un solo responsable.
Configuración de la ausencia asignando a varios responsables.
Estatus ausente
Una vez que de OK se marcará al usuario como ausente para el BPMEngine y todas las futuras tareas serán asignadas a sus suplentes y las tareas actuales reasignadas según lo elegido por el usuario. Sin embargo de existir un diagrama que asigne tareas por “role” y la persona que se va ausentar se encuentra dentro de este role esas tareas no serán reasignadas al usuario suplente en el entendido de que cualquiera dentro de ese role puede reclamarlas.
Visualización de la tarea
En la tarea enviada al usuario designado aparecerá un mensaje que describe al usuario asignado anterior y al usuario designado establecido.
Por correo electrónico llegaran las notificaciones correspondientes a las tareas reasignadas donde se verá el mensaje escrito al momento de realizar la ausencia, esto servirá para entender por qué le están llegando las tareas al usuario designado.
Estatus no ausente
Para marcar al usuario como no ausente sólo tiene que volver a dar click al mismo botón Ausente y se mostrará una ventana modal confirmando la acción, una vez confirmada todas las futuras tareas serán asignadas al usuario responsable.
Las tareas asignadas al suplente que no hayan sido resueltas no se volverán a reasignar al usuario principal, en caso de requerir reasignarse se tendrá que hacer por los mecanismos ya establecidos de reasignación de tareas.
Modificaciones al BPMN Engine
Al momento de crear una tarea y ser asignada a un usuario se verificará si este usuario está marcado como ausente, de ser así se utilizará a su usuario suplente al cual se le notificará por los mecanismos tradicionales de Ebavel Workflow y continuará el flujo de forma normal.
Al ser una asignación por ausencia el BPMN Engine no seguirá la secuencia actual de creación de tareas y asignación. Primero revisa si el usuario responsable de la tarea está ausente y entonces en caso de estarlo lanzará un comando para asignar la tarea al usuario ausente y después ejecutar la notificación para crear un registro en la bitácora que la asignación de la tarea fue para un usuario suplente del usuario asignado.
Consideraciones
La funcionalidad de ausencia es una herramienta fuera de flujo no controlada por el diagrama y utiliza la herramienta interna de reasignaciones del BPMN Engine para asignar las tareas a los usuarios suplentes.
Una vez que el usuario cambie su estatus a No Ausente las tareas asignadas no volverán a ser responsabilidad del usuario. La reasignación será manual de cada usuario responsable.
No será necesario realizar deployment en los diagramas para el funcionamiento de la herramienta.
Teniendo una tarea a un usuario que no está ausente al reasignarle la tarea al ausente esta no se reasignara al suplente.
La herramienta de ausencia y la reasignación de tareas al ser procesos asíncronos pueden tardar hasta un máximo de 5 minutos en verse reflejadas las tareas en la cuenta del usuario suplente.
La ausencia programada para después del día actual entrara en vigor a las 12 Pm del día anterior al que se programó.
Para ejecutar la ausencia de inmediato y para solo el día actual se debe establecer como periodo la fecha actual, ejemplo: 20/04/2023 – 20/04/2023.