Conceptos
Ciclo de vida de la tarea
A continuación se muestra un diagrama de estados simplificado, de camino feliz, para el ciclo de vida de la tarea, con una breve explicación del ciclo de vida.
Algunos aspectos del ciclo de vida de la tarea se han omitido o no se han detallado completamente en el diagrama para mantenerlo más claro. Para profundizar en estos aspectos, revise las siguientes secciones: Creación de tareas, Asignación de tareas, Cancelación de la tarea, Revisión de ejecución de la tarea y Notificación de tarea cerrada.
-
Cuando se crea una tarea se inicializa con el estado "Registered". Más información sobre la creación de tareas se puede ver en la sección Creación de tareas.
-
Una vez que la tarea ha sido asignada a un operador, transiciona a "Allocated". En el estado "Allocated", es posible volver a "Registered". Esto se detalla en la sección Asignación de tareas.
-
Después de que un operador haya ejecutado la tarea, los resultados de la ejecución se registran en el task manager. Si la tarea se registró con
approvalsRequired > 0, entonces la tarea transiciona a "In Approval"; de lo contrario, transiciona al estado terminal, "Complete". -
La ejecución de la tarea puede aprobarse o rechazarse. Si la tarea ha recibido menos aprobaciones de las requeridas, entonces la tarea permanece en el estado "In Approval" hasta que alcance el umbral; de lo contrario, transiciona al estado terminal, "Complete". Esto se explica con más detalle en la sección Revisión de ejecución de la tarea.
Creación de tareas
La creación de tareas requiere algunos parámetros de entrada que están definidos en Human Task Manager API.
La creación de tareas es idempotente, lo que significa que si la misma solicitud de creación de tareas se repite varias veces, entonces solo se creará una tarea para la primera solicitud. En cada solicitud posterior, se devolverá el ID de la tarea existente. La propiedad de la solicitud que se utiliza para determinar solicitudes repetidas es idempotencyKey.
Al crear una tarea, el usuario puede proporcionar posibles resultados de esa tarea.
Asignación de tareas
Las tareas solo pueden ser ejecutadas por el operador que ha reclamado la tarea. La asignación se realiza inicialmente proporcionando un operator ID desde el estado "Registered", lo que transiciona la tarea a "Allocated".
Desde el estado "Allocated", una tarea puede reasignarse a otro operador o desasignarse. Para reasignar, se proporciona un nuevo operator ID y la tarea permanece en el estado "Allocated", aunque con un nuevo operator ID. Para desasignar una tarea, se puede proporcionar un operator ID nulo, y la tarea transiciona nuevamente a "Registered".
El siguiente diagrama muestra las posibles transiciones de estado para el aspecto de asignación.
-
Se proporciona un operator ID desde el estado "Registered"; la tarea transiciona a "Allocated" con
claimedByigual al operator ID. -
Se proporciona un operator ID desde el estado "Allocated"; la tarea permanece en "Allocated" con
claimedByigual al nuevo operator ID. -
La tarea se asigna a un operator ID
null; la tarea transiciona a "Registered".
Revisión de ejecución de la tarea
Si una tarea se registra con requiredApprovals > 0, entonces transicionará a "In Approval" cuando la tarea sea ejecutada. La tarea debe recibir la cantidad requerida de aprobaciones para transicionar a complete. Si una tarea es rechazada, entonces se envía de vuelta al estado "Allocated", donde puede volver a ejecutarse.
Rechazar una tarea reinicia recievedApprovals. Por ejemplo, una tarea tiene requiredApprovals == 2. Recibe una aprobación y luego es rechazada, lo que provoca que el conteo receievedApprovals se restablezca a cero. Cuando la tarea se vuelve a ejecutar, debe recibir dos nuevas aprobaciones antes de que la tarea complete.
Si se proporciona possibleOutcomes, entonces al ejecutar una tarea, el operador debe seleccionar uno de los resultados proporcionados.
Si no se proporciona possibleOutcomes, entonces el resultado de la ejecución no puede ser proporcionado por el operador.
Cuando la tarea está siendo ejecutada, el operador puede dejar una nota que, además de agregarse al historial de tareas, también se proporcionará en la tarea como executionNote.
-
La tarea fue rechazada; la tarea transiciona de nuevo a "Allocated" donde puede volver a ejecutarse.
-
La tarea fue aprobada;
receivedApprovalsse incrementa yreceivedApprovals < requiredApprovals; la tarea permanece en "In Approval". -
La tarea fue aprobada;
receivedApprovalsse incrementa yreceivedApprovals == requiredApprovals; la tarea transiciona a "Complete".
Cancelación de la tarea
Mientras esté en cualquier estado no terminal, una tarea puede ser cancelada. Esto transiciona la tarea al estado "Cancelled" y cierra la tarea.
Notificación de tarea cerrada
Cuando la tarea alcanza un estado terminal ("Cancelled" o "Completed"), se envía una notificación de tarea cerrada al kafka topic configurado (HTM_TASK_CLOSED_NOTIFICATION). Si la tarea fue "Cancelled", la notificación de tarea cerrada contiene información sobre el task ID y el estado terminal. Si la tarea ha alcanzado el estado "Completed", también proporcionamos información sobre el resultado de la tarea y los datos del resultado.