Saltar a contenido

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
  • formId identifica el formulario, formVersion la 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

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