Maestro

Un motor de orquestación de flujos de trabajo completo para Drupal que permite la creación, gestión y ejecución de plantillas de flujo de trabajo complejas con lógica condicional, ejecución de tareas en paralelo/serie y asignaciones de tareas basadas en roles.

maestro
632 sites
91
drupal.org

Install

Drupal 11, 10 v4.3.0
composer require 'drupal/maestro:^4.3'

Overview

Maestro es un sistema de automatización de flujos de trabajo de nivel empresarial para Drupal que proporciona una solución completa para la gestión de procesos de negocio (BPM) y la orquestación de flujos de trabajo. El módulo permite a los administradores del sitio y desarrolladores diseñar, implementar y ejecutar flujos de trabajo complejos a través de un constructor visual de plantillas con arrastrar y soltar.

En su núcleo, Maestro cuenta con un motor de orquestación que procesa continuamente instancias de flujo de trabajo, ejecutando tareas, evaluando condiciones y enrutando flujos de trabajo basándose en acciones del usuario o lógica automatizada. El sistema admite múltiples tipos de tareas, incluyendo tareas interactivas que requieren entrada del usuario, funciones por lotes para procesamiento automatizado, tareas de Content Type para la creación/edición de Node, y puertas de lógica condicional (IF, AND, OR) para la bifurcación de flujos de trabajo.

Los flujos de trabajo pueden asignarse a usuarios o roles, con soporte para asignación dinámica a través de variables. El módulo incluye capacidades de notificación completas, funciones de reasignación de tareas, gestión de variables de proceso y seguimiento detallado del flujo de trabajo para propósitos de auditoría. Una Consola de Tareas dedicada proporciona a los usuarios finales una interfaz centralizada para ver y ejecutar sus tareas asignadas.

Features

  • Constructor visual de plantillas de flujo de trabajo basado en SVG utilizando la librería Raphael.js para diseño de flujos de trabajo con arrastrar y soltar
  • 11 tipos de tareas integrados: Start, End, Interactive, Batch Function, Content Type, If (condicional), And (puerta de sincronización), Or (puerta de primero en llegar), Manual Web, Set Process Variable y Spawn Sub Flow
  • Motor orquestador en segundo plano que procesa instancias de flujo de trabajo, evalúa condiciones y enruta tareas automáticamente
  • Consola de Tareas para que los usuarios finales vean las tareas asignadas y ejecuten flujos de trabajo interactivos
  • Asignación de tareas basada en roles y usuarios con soporte para asignación dinámica mediante variables de proceso
  • Sistema de variables de proceso para almacenar y manipular datos del flujo de trabajo durante la ejecución
  • Seguimiento del flujo de trabajo y barra de estado de línea de tiempo para monitorear el progreso del proceso
  • Sistema de notificaciones completo con notificaciones de asignación, recordatorio y escalamiento
  • Ejecución segura de tareas basada en tokens para acceso externo a las tareas del flujo de trabajo
  • Submódulo de integración con Webform para incorporar envíos de formularios web en los flujos de trabajo
  • Integración de tareas de Content Type para crear y editar Node de Drupal dentro de los flujos de trabajo
  • Capacidad Spawn Sub Flow para crear instancias de flujo de trabajo hijas con herencia de variables
  • Views preconstruidas para tareas pendientes, todas las tareas en producción, tareas completadas y todas las instancias de flujo de trabajo
  • Sistema extenso de hooks para personalizar el comportamiento del flujo de trabajo, notificaciones, ejecución de tareas y visualización de la consola
  • Sistema de validación de plantillas para verificar la configuración del flujo de trabajo antes del despliegue

Use Cases

Flujo de trabajo de aprobación de documentos

Crea un proceso de aprobación de documentos en múltiples etapas donde el contenido se envía, es revisado por uno o más aprobadores, potencialmente se revisa y finalmente se publica. Usa tareas Content Type para la edición de documentos, tareas Interactive para decisiones de aprobación y tareas IF para enrutar según el estado de aprobación.

Incorporación de empleados

Automatiza la incorporación de nuevos empleados con tareas asignadas a recursos humanos, TI y gerencia. Las rutas de tareas paralelas pueden manejar el aprovisionamiento de equipos, la creación de cuentas y la documentación simultáneamente, con compuertas AND para sincronizar antes de completar.

Procesamiento de solicitudes de compra

Enruta las solicitudes de compra a través de las cadenas de aprobación apropiadas según el monto. Usa variables de proceso para almacenar los montos de las solicitudes, tareas IF para enrutar a diferentes aprobadores según los umbrales y notificaciones para mantener informados a los solicitantes sobre el estado.

Pipeline de publicación de contenido

Implementa un flujo de trabajo de publicación de contenido en múltiples etapas con creación de borradores, revisión editorial, verificación de cumplimiento legal y publicación final. Usa la tarea Spawn Sub Flow para activar flujos de trabajo relacionados como la promoción en redes sociales.

Escalamiento de soporte al cliente

Crea flujos de trabajo de soporte por niveles donde los problemas pueden escalarse a través de los niveles de soporte. Usa compuertas OR para manejar la resolución en cualquier nivel y tareas Set Process Variable para rastrear el historial de escalamiento.

Procesos impulsados por Webform

Usa la integración con Webform para crear flujos de trabajo activados por envíos de formularios. Ideal para procesamiento de solicitudes, recopilación de comentarios o solicitudes de servicio donde los datos del formulario impulsan el flujo de trabajo.

Tips

  • Comienza con el módulo 'Maestro Form Approval Flow Example' para entender los conceptos de flujo de trabajo antes de construir templates personalizados.
  • Usa variables de proceso extensivamente para pasar datos entre tareas y tomar decisiones de enrutamiento.
  • La función de validación de templates ayuda a detectar errores de configuración antes de desplegar flujos de trabajo a producción.
  • Considera usar la tarea Spawn Sub Flow para dividir flujos de trabajo complejos en subflujos manejables y reutilizables.
  • Usa Views para crear visualizaciones de tareas personalizadas filtradas por tipo de proceso, rol de usuario u otros criterios.
  • Implementa batch handlers personalizados para tareas automatizadas que se integren con sistemas externos o realicen lógica compleja.
  • Aprovecha los hooks para personalizar la visualización de Task Console, las notificaciones y el comportamiento del flujo de trabajo sin modificar el código principal de Maestro.
  • Para flujos de trabajo de alto volumen, configura el orquestador para ejecutarse frecuentemente vía cron y ajusta el tiempo de bloqueo de ejecución apropiadamente.

Technical Details

Admin Pages 6
Configuración del módulo Maestro Engine /admin/config/workflow/maestro

Configura los ajustes principales del motor de flujo de trabajo Maestro, incluyendo el token del orquestador, configuración de notificaciones y opciones del modo de desarrollo.

Configuración del módulo editor de plantillas de Maestro /admin/config/workflow/maestro_template_builder

Configura los ajustes del constructor visual de plantillas de flujo de trabajo, particularmente la ubicación de la biblioteca Raphael JS utilizada para la edición de flujos de trabajo basada en SVG.

Plantillas de Maestro /maestro/templates/list

Lista todas las plantillas de flujo de trabajo definidas en el sistema. Desde aquí los administradores pueden ver, editar, iniciar, validar y eliminar plantillas de flujo de trabajo.

Constructor de plantillas /template-builder/{templateMachineName}

Editor visual de flujos de trabajo con arrastrar y soltar usando gráficos SVG. Añade, edita y conecta tareas del flujo de trabajo para diseñar el flujo. Configura propiedades de tareas, asignaciones, notificaciones y enrutamiento del flujo de trabajo.

Consola de tareas /taskconsole

Interfaz de usuario final para ver y ejecutar tareas de flujo de trabajo asignadas. Los usuarios pueden ver todas las tareas asignadas a ellos, expandir los detalles de la tarea, ver el estado del flujo de trabajo y ejecutar o rechazar tareas.

Seguimiento /maestro/trace/{processID}

Interfaz de seguimiento de flujo de trabajo que muestra el historial completo de ejecución de un proceso de flujo de trabajo. Visualiza todas las tareas que se han ejecutado, su estado de finalización, quién las completó y cuándo.

Permissions 14
Administrar plantillas de Maestro

Permite acceso al editor de tareas de plantillas de Maestro y operaciones administrativas, incluyendo crear, editar y eliminar plantillas.

Iniciar un proceso de Maestro

Permite a los usuarios iniciar nuevas instancias de flujo de trabajo desde plantillas.

Permitir acceso a la consola de tareas

Otorga a los usuarios acceso para ver la consola de tareas y sus tareas asignadas.

Administrar entidades de cola de Maestro

Permite acceso a formularios de administración para configurar y gestionar entidades de cola de Maestro, incluyendo la reasignación de tareas.

Crear nuevas entidades de cola de Maestro

Permite la creación de nuevas entradas de cola.

Eliminar entidades de cola de Maestro

Permite la eliminación de entradas de cola.

Editar entidades de cola de Maestro

Permite la edición de propiedades de entradas de cola.

Ver entidades de cola de Maestro

Permite ver entradas de cola en Views y otras visualizaciones.

Crear nuevas entidades de proceso de Maestro

Permite la creación de nuevas instancias de proceso.

Eliminar entidades de proceso de Maestro

Permite la eliminación de instancias de proceso de flujo de trabajo.

Editar entidades de proceso de Maestro

Permite la edición de propiedades del proceso.

Ver entidades de proceso de Maestro

Permite ver información del proceso.

Administrar entidades de asignación de producción de Maestro

Permite acceso a la funcionalidad de reasignación de tareas.

Administrar entidades de identificador de entidad de Maestro

Permite la gestión de mapeos entre entidades y flujos de trabajo.

Hooks 17
hook_maestro_post_variable_save

Se dispara después de guardar una variable de proceso, permitiendo a los módulos reaccionar a los cambios de variables.

hook_maestro_post_fetch_assigned_queue_tasks

Permite a los módulos añadir IDs de tareas de cola adicionales a la lista de tareas asignadas a un usuario.

hook_maestro_can_user_execute_task_alter

Hook de alteración para modificar si un usuario puede ejecutar una tarea específica.

hook_maestro_template_validation_check

Permite a los módulos añadir comprobaciones de validación personalizadas durante la validación de plantillas.

hook_maestro_post_production_assignments

Se dispara después de realizar una asignación de tarea de producción, permitiendo la personalización posterior a la asignación.

hook_maestro_pre_task_save

Se dispara antes de guardar una tarea, permitiendo la modificación de la configuración de la tarea.

hook_maestro_production_NOTIFICATIONTYPE_notification

Crea o altera notificaciones de tipos específicos (asignación, recordatorio, escalamiento).

hook_maestro_zero_user_notification

Gestiona las notificaciones cuando un rol no tiene usuarios asignados. Permite mecanismos de notificación personalizados.

hook_maestro_task_console_interactive_link_alter

Altera el texto de los enlaces de ejecución de tareas en la consola de tareas.

hook_maestro_task_console_interactive_url_alter

Altera la URL de ejecución para tareas en la consola de tareas.

hook_maestro_task_console_custominformation_alter

Añade información personalizada a las filas de tareas en la consola de tareas.

hook_maestro_task_console_taskdetails_alter

Altera el contenido de expansión de detalles de tarea en la consola de tareas.

hook_maestro_interactive_handlers

Registra manejadores de formularios de tareas interactivas que aparecen en la lista de autocompletado.

hook_maestro_batch_handlers

Registra manejadores de funciones por lotes que aparecen en la lista de autocompletado.

hook_maestro_process_status_alter

Altera la visualización del estado del proceso en el bloque de estado.

hook_maestro_task_console_status_bar_alter

Altera la visualización de la barra de estado del flujo de trabajo.

hook_maestro_get_entity_token_value

Proporciona resolución personalizada de valores de tokens para tokens de entidad.

Troubleshooting 6
El orquestador no se ejecuta - las tareas permanecen en cola

Asegúrate de que el token del orquestador esté configurado en la configuración de Maestro. Para pruebas, habilita 'Run Orchestrator on Task Console Refreshes'. Para producción, verifica que cron o las llamadas HTTP externas a /orchestrator/{token} estén funcionando.

Las tareas no aparecen en Task Console

Verifica que el usuario tenga el permiso 'view maestro task console' y que las tareas estén correctamente asignadas al usuario o sus roles. Verifica que el orquestador se haya ejecutado para crear las entradas en la cola.

La validación del template falla

Usa la función Validity Check en el constructor de templates para identificar problemas de configuración. Los problemas comunes incluyen handlers faltantes, tareas no conectadas o asignaciones faltantes en tareas interactivas.

El flujo de trabajo se detiene en la compuerta AND

La compuerta AND espera a que TODAS las ramas entrantes se completen. Verifica que todas las rutas paralelas se estén ejecutando y completando. Revisa si hay tareas que puedan estar esperando indefinidamente.

Las notificaciones no se envían

Asegúrate de que 'Send out notifications' esté habilitado en la configuración de Maestro. Verifica que los usuarios asignados a las tareas tengan direcciones de correo electrónico válidas. Para asignaciones de rol, verifica que el rol tenga miembros.

El canvas del constructor de templates no se muestra

Verifica que la biblioteca Raphael.js sea accesible. Revisa la configuración del Template Builder para la URL correcta de la biblioteca o la ruta de la biblioteca local. Limpia la caché de Drupal después de cambiar la configuración de la biblioteca.

Security Notes 4
  • El token del orquestador debe ser un valor único y fuerte para prevenir la ejecución no autorizada de flujos de trabajo.
  • Los usuarios con el permiso 'administer maestro templates' pueden crear flujos de trabajo que ejecuten código PHP a través de batch handlers - restringe este permiso cuidadosamente.
  • Las URLs de ejecución de tareas basadas en token pueden usarse para completar tareas externamente - asegura una validación adecuada en los handlers personalizados.
  • El permiso 'administer maestro queue entities' permite la reasignación de tareas, lo cual podría usarse para redirigir tareas del flujo de trabajo.