2017-02-16 1 views
0

Je flux de travail simple:set/get paramètres d'entrée/sortie d'une tâche utilisateur Camunda en utilisant l'API Java

[start_workflow] -> [user_task] -> 
-> [exclusive_gateway] -> (two routes see below) -> [end_workflow] 

Le [exclusive_gateway] a deux itinéraires sortants:

1.) ${if user_task output paramterer == null} -> [NULL_service_task] -> [end_workflow] 

2.) ${if user_task output paramterer != null} -> [NOT_null_service_task] -> [end_workflow] 

Dans Camunda Modeler, J'ai ajouté un paramètre de sortie (nommé) à la [user_task].

Q: Comment régler Thet paramètre de sortie via l'API Java avant remplir la tâche via:

taskService.complete(taskId); 

Sur les [exclusive_gateway] flèches, je l'ai mis ceci:

Condition type = expression 
Expression = ${out != null} 

Mais il y a plus:

Si je supprime paramètre e de sortie du [user_task] et définir une variable de runtimeService avant de terminer la tâche:

runtimeService.setVariable(processInstanceId, "out", name); 

Le [exclusive_gateway] ne gère le paramètre, et achemine le flux comme prévu. sans supprimer le paramètre de sortie du [user_task] il semble que: 1. il est jamais défini (si == null) 2. cette valeur nulle remplace la valeur définie par

runtimeService.setVariable(processInstanceId, "out", name); 

Alors puis-je configurer Le paramètre de sortie d'une tâche via Java API ou je ne peux utiliser que des variables de processus?

Répondre

1

Je suppose que vous cherchez

taskService.complete(<taskId>, Variables.putValue("out", <name>); 

la communication entre la tâche et la passerelle (transmission de la valeur) passe par la mise en processus variable « out » sur complète.

Pour plus d'informations, consultez le javadoc.

+0

Merci beaucoup;) – Kumite