Diseño de un flujo de trabajo basado en Durable Functions

Completado

Puede usar Durable Functions para orquestar un flujo de trabajo de larga ejecución como un conjunto de actividades. Puede asignar cada paso del proceso a un tipo de función y cada tarea a una actividad. Tener un proceso automatizado significa que no debe preocuparse de supervisar manualmente ni de escalar una tarea si no se ha realizado.

A medida que seguimos pensando en automatizar el proceso de aprobación de la propuesta, es necesario tener en cuenta los casos en los que un paso del proceso no se completa en el tiempo y se debe escalar. Por ejemplo, ¿qué ocurre si se necesita la aprobación de un administrador para un determinado tamaño de propuesta, pero la respuesta del administrador se retrasa?

Los pasos de escalación son útiles para la empresa, porque avanzan junto con una tarea cuando se alcanzó una fecha límite. Permiten garantizar que las tareas se completan y no se olvidan. Un paso de escalación podría implicar enviar recordatorios o incluso reasignar una tarea a alguien que se encuentra más arriba en la jerarquía de administración.

En esta unidad, diseñará un flujo de trabajo de proceso de aprobación basado en Durable Functions. En el ejercicio siguiente, aplicará este conocimiento para crear una aplicación con Azure Durable Functions.

Descripción del proceso de aprobación de diseño

El flujo de trabajo empieza cuando un diseño de proyecto se envía para aprobación. La propuesta se asigna a un administrador como una tarea de aprobación. El administrador aprobará o rechazará la propuesta. En el mundo real, este evento probablemente generaría y enviaría una notificación al autor de la propuesta para informarles del resultado de la solicitud de aprobación o rechazo. En este ejemplo, simplemente cambiará el estado de la tarea a approved o a rejected.

Los pasos del flujo de trabajo son los siguientes:

  1. Se envía un diseño de proyecto.
  2. Se asigna una tarea de aprobación a un administrador para que este pueda revisar la propuesta de diseño de proyecto.
  3. La propuesta de diseño de proyecto se rechaza o se aprueba.
  4. Se asigna una tarea de escalación si la tarea de aprobación no se completa dentro de un límite de tiempo definido previamente.

La imagen siguiente es una representación visual del flujo de trabajo donde se muestran las tres funciones de la orquestación: la aprobación de la solicitud, la aprobación del proceso y una función de escalación.

Visual representation of workflow showing the three functions in our orchestration.

En la tabla siguiente se muestra cómo los pasos del flujo de trabajo se pueden asignar a los tipos de función que usamos en un flujo de trabajo de Durable Functions.

Función de flujo de trabajo Tipo de función durable
Envío de una propuesta de diseño de proyecto para aprobación Función de cliente
Asignación de una tarea de aprobación a un miembro pertinente del personal Función de orquestación
Tarea de aprobación Función de actividad
Tarea de escalación Función de actividad

La función de orquestación administrará una regla en el flujo de trabajo que inicia la actividad de escalación si la actividad de aprobación no devuelve ningún resultado dentro de un tiempo especificado.

Ahora que sabemos qué se necesita para el flujo de trabajo, vamos a escribirlo en el código en la unidad siguiente.