Task instance

Récupérer les étapes en cours d’une IWorkflowInstance

Il s’agit de connaitre la/les tâche(s) en cours sur une IWorkflowInstance pour faire des traitements en fonction de cette dernière.

Toutes les ITaskInstance (parallélisme) :

// le contexte ne doit pas être null
Collection<? extends ITaskInstance> startedTaskInstances = getWorkflowModule().getStartedTaskInstances(context, getWorkflowInstance());

La 1ère ITaskInstance où le contexte est opérateur :

ITaskInstance instance = getWorkflowInstance().getCurrentTaskInstance(context);
// Alternative :
ITaskInstance instance2 = getOneTaskInstance(context, getWorkflowInstance());

Récupérer les intervenants d’une étape

Il s’agit de connaitre les opérateurs d’une ITaskInstance.

Collection<? extends IOperator> operators = taskInstance.getOperators();

Info

L’interface IOperator extends IUser ce qui permet de manipuler simplement les IOperator comme des IUser.

Récupérer les intervenants potentiels sur une future étape

Ici ce sont les objets de définition du workflow (Studio) qui sont manipulés.

Note

Les utilisateurs de ce IOperatorRole ne seront pas obligatoirement présents dans les opérateurs de la ITaskInstance, par exemple dans le cas où un champ rôle permet de modifier les utilisateurs qui devront intervenir.

IWorkflow workflow = getWorkflowInstance().getWorkflow();
ITask task = getWorkflowModule().getTask(context, workflow, "nom_de_la_tache");
IOperatorRole operatorRole = task.getOperatorRole();
Collection<? extends IUser> operators = operatorRole.getAllMembers();

C’est une collection de IUser qui est récupérée, et non de IOperator, car ces IUser ne seront pas forcément opérateur.

Source : https://wiki.myvdoc.net/xwiki/bin/view/Dev+Floor/FAQWorkflowReservoirsDonnees partie 2.1