Saltar al contenido principal

Flujos de trabajo (Workflow Manager)

¿Para qué sirve?​

Un flujo de trabajo convierte una columna en el estado de un proceso: en vez de escribir "listo" a mano, el usuario ve botones con las únicas acciones válidas desde donde está.

Es el motor de estados del sistema. Otros plugins (notificaciones, tableros Kanban, formularios) se enganchan aquí.

¿Cuándo lo necesitas?​

Si tus registros pasan por etapas que tienen un orden y reglas de quién puede avanzarlas. Ejemplos:

  • Pedidos: recibido → en preparación → listo → entregado (con anular disponible desde cualquiera).
  • Visitas: programada → en proceso → completada (con reprogramar como desvío).
  • Solicitudes: nueva → en revisión → aprobada / rechazada.

Si tus datos son planos (se crean y no cambian de estado), no lo necesitas.

Cómo activarlo​

  1. Registra workflow-manager.
  2. Aparece Flujos de trabajo en el menú.

Configuración inicial​

Pantalla de estados y transiciones

Estados y transiciones de un módulo. Cada transición define desde qué estados sale, a cuál llega, qué roles pueden ejecutarla y si exige un formulario.

  1. En la tabla, crea una columna de tipo Workflow (por convención se llama estado).
  2. Ve a Flujos de trabajo en el menú. Tu módulo aparece en la lista de la izquierda; haz clic en él.
  3. En Estados define cada situación posible: un color, un identificador interno (recibido, preparacion, listo, entregado, anulado) y una etiqueta visible (Recibido, En preparación, Listo, Entregado, Anulado).
  4. En Transiciones define los caminos permitidos:
    • Nombre interno (preparar, entregar, anular).
    • Desde qué estados se puede (uno o varios).
    • Hacia cuál lleva.
    • Etiqueta del botón (Preparar, Entregar, Anular).
    • Qué roles pueden ejecutarla.
  5. Si quieres pedir datos al cambiar de estado, elige un formulario en Formulario requerido.
Los roles que puedes elegir son los tuyos

La lista de «Qué roles pueden ejecutarla» son los roles que creaste en Roles y Permisos: Cajero, Supervisor, Bodeguero, los que sean. Antes solo ofrecía la opción «todos», así que una transición no se podía restringir a nadie en concreto. Los flujos que ya tenías siguen funcionando igual.

Para editar un flujo hace falta permiso de edición

Un flujo decide quién aprueba qué, así que cambiarlo exige tener marcada la casilla Editar sobre esta sección. Con solo Leer se puede mirar la configuración, no modificarla.

Cómo se usa día a día​

Al abrir un pedido, el usuario ve su estado actual como pastilla de color, y solo los botones que corresponden desde ese estado.

Ejemplo — pedido en Recibido solo ofrece Preparar y Anular. Nadie puede saltarse pasos ni escribir un estado inventado.

Ejemplos reales del sistema:

MóduloFlujo
Pedidosrecibido → en preparación → listo → entregado, con anular disponible desde cualquiera.
Visitasprogramada → en proceso → completada, con reprogramar como desvío.

Formularios requeridos en transiciones​

Cada transición puede exigir un formulario del Form Builder que el usuario debe llenar antes de confirmar el cambio de estado.

Ejemplo: para "Rechazar solicitud", exigir un formulario con "Razón del rechazo" (obligatorio) y "Notas internas".

Se conecta con​

  • Notification Manager — envía email/campana cuando una transición se ejecuta.
  • Form Builder — exigir formulario antes de una transición.
  • Board Manager — tablero Kanban donde arrastrar una tarjeta ejecuta la transición correspondiente.
  • Task Boards — tiene su propio sistema de transiciones dentro de sus columnas Estado.

Preguntas frecuentes​

¿Puedo tener varios workflows en la misma tabla? No en la misma columna. Puedes tener varias columnas tipo Workflow si necesitas dos "líneas de estado" independientes (ej. estado del pedido + estado del pago).

¿Puedo cambiar los estados después de tener registros? Sí, pero con cuidado: los registros que ya están en un estado que decides eliminar quedarán huérfanos. Mejor agregar estados nuevos y solo desactivar los viejos.

¿Se guarda historial de cambios? Sí. Cada transición queda registrada con quién la ejecutó y cuándo. Se consulta desde el registro o desde Logs.

¿Puedo automatizar transiciones por tiempo? La automatización basada en tiempo (ej. "después de 24h en nuevo pasa a vencido") no viene de fábrica — requiere script programado (cron) o desarrollo custom.

¿Qué sigue?​