Bonjour,J'automatise mes workflows via Java et j'ai un souci pour utiliser la méthode leave de l'API TaskNode.En effet, lorsque je veux terminer une tâches ou une node quelconque, il me retourne l'erreur suivante :org.jbpm.JbpmException: can't leave node 'TaskNode(jbpm$44526)' without leaving transition
at org.jbpm.graph.def.Node.leave(Node.java:460)
at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:213)
at org.jbpm.graph.def.Node.leave(Node.java:438)
at src.gestionWorkflows.WorkflowDefinition.$$Workflow.returnWorkflowEnvironnementByUser($$Workflow.java:391)
at src.gestionWorkflows.WorkflowDefinition.$$Workflow.execute($$Workflow.java:169)
at src.interfaceAltiva.IHM_Principale.jBAddWorkflowsMouseClicked(IHM_Principale.java:232)
at src.interfaceAltiva.IHM_Principale.access$0(IHM_Principale.java:207)
at src.interfaceAltiva.IHM_Principale$1.mouseClicked(IHM_Principale.java:80)
at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Peut importe que j'utilise l'une des 3 méthodes leave il me retourne cette erreur ou alors la suivante " " toAcompteL " n'est pas une leaving node ".Je vous fais par de mon code correspondant à mon problème + le bout de mon processus concerné :Code Java :
ProcessDefinition processDef = new ProcessDefinition("jbpm$44598");
…
ProcessInstance process = new ProcessInstance(processDef);
List list = process.findAllTokens();
System.out.println("Size liste token : " + list.size());
System.out.println(list.get(0));
Token token = new Token(process);
ExecutionContext exec = new ExecutionContext(token) ;
taskNode.leave(exec);
Le problème doit surement venir de mon token, car ma liste de token en contient à chaque fois qu'un seul, peut importe le workflow choisis "jbpm$44598" ou autres etc..Je ne trouve pas comment correctement initialiser mon token..Voici la node en question : <task-node name="Devis Signé">
<task name="mywf:DevisSigne" swimlane="admin" />
<event type="node-enter">
<action name="action" class="src.gestionWorkflows.ActionHandler.MessageActionHandler">
</action>
</event>
<transition to="Bon de Livraison" name="toAcompteL"></transition>
</task-node>
EDIT : Après quelques Test, j'en ai conclu que j'ai mal initialisé mon Procces définition :ProcessDefinition processDef = new ProcessDefinition("jbpm$44598");Je ne sais pas pourquoi car si je passe son id, name ou title il me retourne toujours l'erreur.Mon workfloService me retourne bien tout mes workflows définis et sous l'interface share je peux très bien exécuter mon workflow, passer les étapes etc etc..Merci