Tasklist¶
Aplicacion web para la gestion de user tasks BPMN. Permite a los usuarios humanos ver, reclamar, completar y buscar tareas asignadas, con soporte para formularios integrados y snapshots de variables.
Contexto¶
Mientras entities/operate se enfoca en la observabilidad del sistema para operadores, Tasklist esta disenado para los participantes del proceso de negocio — las personas que deben ejecutar tareas manuales dentro de un workflow. Cada vez que un proceso BPMN llega a un User Task, Tasklist lo presenta al usuario correspondiente.
Entity model: TaskEntity¶
La entidad central es TaskEntity con los siguientes atributos clave:
- key: identificador unico del task (generado por el broker)
- processInstanceKey: referencia a la instancia de proceso que genero el task
- bpmnProcessId + flowNodeBpmnId: identifican que proceso y que elemento BPMN origino el task
Estados del task¶
| Estado | Descripcion |
|---|---|
CREATED |
Task creado, disponible para ser reclamado o asignado |
COMPLETED |
Task completado por un usuario |
CANCELED |
Task cancelado (la instancia fue cancelada o el flujo tomo otro path) |
FAILED |
Task fallo durante su procesamiento |
Asignacion¶
- assignee: usuario especifico asignado al task
- candidateGroups: lista de grupos cuyos miembros pueden reclamar el task
- candidateUsers: lista de usuarios especificos que pueden reclamar el task
- La asignacion puede venir predefinida en el modelo BPMN o hacerse dinamicamente via API
API¶
Tasklist expone operaciones REST para el ciclo de vida de los tasks:
- Assignment: asignar un task a un usuario (
POST /v2/tasks/{key}/assign) - Unassignment: liberar un task asignado (
POST /v2/tasks/{key}/unassign) - Completion: completar un task con variables de resultado (
POST /v2/tasks/{key}/complete) - Update: actualizar candidatos o datos del task
- Search: buscar tasks con filtros por estado, assignee, grupo, proceso, fecha
Integracion de formularios¶
Tasklist soporta tres modalidades de formularios para los user tasks:
formKey (externo)¶
- El task referencia un formulario externo via
formKey(ej:embedded:deployment:myForm.html) - La aplicacion cliente es responsable de renderizar el formulario
- Maximo flexibilidad pero requiere desarrollo custom
formId + formVersion (deployed)¶
- El formulario se despliega como recurso en Zeebe junto con el proceso
formIdidentifica el formulario,formVersionla version especifica- Tasklist renderiza estos formularios automaticamente usando el schema JSON desplegado
isFormEmbedded¶
- Formularios embebidos directamente en la definicion BPMN
- Schema del formulario almacenado como propiedad del user task element
- Conveniente para formularios simples sin necesidad de despliegue separado
Variables: snapshots y audit¶
- Al crear un task, Tasklist captura un snapshot de las variables visibles en el scope del task
- Las variables se presentan al usuario como contexto para completar la tarea
- Al completar, el usuario puede enviar variables de retorno que se propagan al proceso
- El historial de cambios de variables queda registrado para auditoria
Relaciones¶
- Consume datos de: entities/zeebe-broker (via concepts/exporter-system)
- Relacionado con: entities/operate (ambos consumen del exporter)
- Formularios desplegados via: API de deployment de Zeebe
Abierto / gaps¶
- Mecanismo de notificaciones en tiempo real (WebSocket vs polling)
- Soporte para task listeners y lifecycle hooks
- Integracion con sistemas de email para notificar tareas pendientes