Saltar al contenido

Procesos por mensajes

No todos los pasos de un proceso son una tarea que espera en la bandeja de entrada de una persona. Muchas veces un proceso necesita pausarse y esperar a que algo le suceda a un registro, y dejar que quien esté trabajando con ese registro decida qué pasa después.

Un flujo de trabajo puede pausarse en una compuerta basada en eventos, que espera una de varias señales con nombre en lugar de una sola tarea asignada. Mientras espera, wasabi registra suscripciones duraderas ligadas a esa ejecución específica del proceso, correlacionadas por la ejecución, el documento al que se refiere o una clave que tú defines. Nada se pierde si el proceso espera minutos o meses.

Esas señales pendientes aparecen como acciones sobre el propio documento. Cualquiera con acceso, sujeto a permisos, puede actuar, y al hacerlo publica la señal correspondiente y reanuda el proceso en espera por el camino que corresponde. Estas acciones también se pueden declarar por adelantado en la vista de detalle de un browser, y pueden enviar una señal a un proceso en marcha o iniciar un flujo de trabajo nuevo.

yaml
# en la vista de detalle de un browser: dos formas de avanzar el proceso
item:
  actions:
    aprobar: { label: Aprobar, message: aprobar }
    rechazar: { label: Rechazar, message: rechazar, confirm: true }

El efecto es que los procesos avanzan al actuar sobre el objeto de negocio, con independencia de la bandeja de entrada de cualquier persona. Esto refleja cómo funcionan en realidad las aprobaciones, el surtido y otras máquinas de estado del mundo real: el registro lleva consigo sus siguientes pasos disponibles, y el proceso reacciona a ellos. wasabi correlaciona cada señal con precisión en lugar de adivinar, y una vez que se toma un camino, las opciones alternativas se retiran.