Este tema sólo se aplica a la configuración de IBM Business Process Manager Advanced.

Ciclo de vida de subtareas

Las subtareas proporcionan soporte a las personas que quieren delegar partes de su trabajo asignado en otras personas pero desean conservar el control sobre el resultado general. También se pueden utilizar para invocar los servicios de soporte para ayudar a las personas a llevar a cabo las tareas en las que están trabajando.

Cuando se inicia la primera subtarea, la tarea padre entra en el subestado esperando subtarea. Permanece en este subestado hasta que todas las subtareas alcanzan uno de los estados finales finalizado, anómalo, caducado o terminado. Algunas operaciones del ciclo de vida (cambios de estado) de la tarea padre se propagan a sus subtareas. De modo que, cuando se suspende, reanuda, termina, suprime o caduca la tarea padre, todas sus subtareas también se suspenden, reanudan, terminan, suprimen o caducan. El subestado escalado de una tarea padre no se propaga; las subtareas no se escalan cuando se escala la tarea padre. Las subtareas tienen sus propias escaladas y su subestado escalado sólo se establece cuando se desencadena una de sus propias escaladas.

Se pueden realizar las operaciones siguientes con subtareas:
  • Siempre se da soporte a operaciones que no entran en conflicto con la tarea padre. Estas son operaciones como reclamar, cancelar reclamación, completar, creación e inicio de subtareas o nuevas tareas de continuación.
  • Las subtareas pueden caducar.
  • Se pueden suspender o reanudar las subtareas porque puede que se tenga que detener el trabajo en una subtarea aunque el trabajo en la tarea padre continúe.
  • Se pueden terminar las subtareas.
  • Las subtareas pueden tener sus propias escaladas para que el propietario de la tarea padre y el originador de la subtarea puedan controlar mejor el progreso de la subtarea.

Algunas operaciones del ciclo de vida de una subtarea pueden entrar en conflicto con las operaciones del ciclo de vida de la tarea padre y por lo tanto no se permiten. Estas son principalmente operaciones que influyen en el final del ciclo de vida de una subtarea y necesitan coordinación con la tarea padre. Los valores de supresión automática se pasan por alto para las tareas que se han iniciado como subtareas. Las subtareas se suprimen cuando su tarea padre se suprime o reinicia. No se soporta la supresión de subtareas individuales utilizando las API de Business Process Choreographer.

Ejemplo: interacción entre una tarea padre y una tarea de colaboración

En la figura siguiente se muestra un proceso de publicación de un libro con subtareas para la actividad de tarea de usuario.

El proceso de publicación de libro tiene una actividad de tarea de usuario, Revisar libro. Esta tarea tiene 3 subtareas para las revisiones de la parte 1, la parte 2 y del apéndice.

En un proceso de publicación de libro, Linda reclama la tarea "Revisar libro". Se da cuenta de que el libro es demasiado largo para revisarlo ella sola y que es necesario un conocimiento especializado para algunas partes de éste. Decide desviarse del proceso de publicación estándar y asigna partes de su tarea a algunos de sus colegas. Crea tres tareas adicionales, a partir de la plantilla "Revisar sección del libro": "Revisar parte 1", "Revisar parte 3" y "Revisar anexo". Ella misma revisará la parte 2 del libro.

Incluye el libro completo como entrada a las subtareas de modo que sus colegas tengan suficiente información de contexto, pero añade una nota a la descripción de la tarea para indicar a sus colegas que solamente revisen las partes del libro que tengan asignadas. Asigna las tareas a sus colegas: Juan para revisar la parte 1, Silvia la parte 3 y María el anexo. Luego inicia las tres tareas como subtareas de su propia tarea "Revisar libro". Su tarea que estaba en el estado reclamado se pone en el subestado esperando subtarea hasta que se completen las tres subtareas.

Silvia, Juan y María reclaman sus subtareas y comienzan a revisar las partes que les corresponde del libro. Mientras tanto, Linda revisa la parte 2 del libro. Cuando finaliza su parte de la revisión, comprueba el progreso de sus colegas. Silvia y Juan han terminado la revisión, pero María todavía está revisando el largo anexo. La tarea de Linda todavía está en el subestado esperando subtarea. Aunque Linda no puede completar su tarea, comienza a consolidar los comentarios de revisión basándose en los resultados de las subtareas de Silvia y Juan.

Mientras tanto, María finaliza su subtarea también y la tarea "Revisar libro" de Linda abandona el subestado esperando subtarea. Ahora, Linda consolida los comentarios de revisión de María con el resto del libro y completa su tarea. El proceso de publicación del libro continúa. Debido a que la tarea "Revisar libro" es una tarea de usuario incorporada, se suprime con sus subtareas cuando se suprime la instancia de proceso BPEL.

Ejemplo: interacción entre una tarea padre y una tarea de invocación

La interacción entre una tarea padre y una tarea de invocación es similar a la de una tarea padre y una tarea de colaboración. El propietario de la tarea crea una tarea a partir de una plantilla de invocación existente y la inicia como una subtarea de su propia tarea. La tarea padre entra en el subestado esperando subtarea y espera a que termine la subtarea de invocación. Cuando finaliza la subtarea, la tarea padre abandona el subestado esperando subtarea y se puede completar.