Below is the code for the experiment I have assigned the process to pool of actors After that task there is another task which is assigned to a single actor on reaching that task Node I try to get the remaining tasks for c but when i try the following code System.out.println("c1 "+ taskMgmtSession.findPooledTaskInstances("c").size());
it gives output as 1 and it reaches stage task2 even though through the assignment of task 2 its only applicable to actor "a". System.out.println("c2 "+ ((TaskInstance)taskMgmtSession.findPooledTaskInstances("c").get(0)).getToken().getNode().getName()); gives output as task2 Thanks in advance CSJakharia processdefinition.xml <?xml version="1.0" encoding="UTF-8"?> | | <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="authoring"> | <start-state name="start-state1"> | <task> | </task> | <transition to="task1"></transition> | </start-state> | | | <task-node name="task1"> | <description> | task1 | </description> | <task> | <assignment class="com.workflow.AssignTask"></assignment> | </task> | <transition to="task2"></transition> | </task-node> | | <task-node name="task2"> | <description> | task2 | </description> | <task> | <assignment class="com.workflow.AssignTask1"></assignment> | </task> | <transition to="end"></transition> | </task-node> | | <node name="end"> | <action class="com.workflow.HandleAction"> </action> | <transition to="end-state1"></transition> | </node> | | | <end-state name="end-state1"> | | </end-state> | | | </process-definition> AssignTask.java public class AssignTask implements AssignmentHandler { | | public void assign(Assignable assignable, ExecutionContext executionContext) | throws Exception { | // TODO Auto-generated method stub | String actors[]=new String[]{"a","b","c"}; | assignable.setPooledActors(actors); | } | | } AssignTask1.java public class AssignTask1 implements AssignmentHandler { | | public void assign(Assignable assignable, ExecutionContext executionContext) | throws Exception { | // TODO Auto-generated method stub | assignable.setActorId("a"); | } | | } Test.java | public class Test { | static JbpmConfiguration jbpmConfiguration = null; | | public static void deployProcessDefinition() | { | try { | ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(new FileInputStream("D:\\WorkFlowAuthoringPOC\\src\\main\\jpdl\\a\\processdefinition.xml")); | JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); | jbpmContext.deployProcessDefinition(processDefinition); | jbpmContext.close(); | } catch (FileNotFoundException e) { | // TODO Auto-generated catch block | e.printStackTrace(); | } | } | public static void main(String[] args) { | try { | jbpmConfiguration = JbpmConfiguration.parseInputStream(new FileInputStream("D:\\Cobra\\workspace\\WorkFlowAuthoringPOC\\src\\main\\config\\jbpm.cfg.xml")); | jbpmConfiguration.createSchema(); | deployProcessDefinition(); | JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); | System.out.println("jbpmContext.getActorId() "+jbpmContext.getActorId()); | GraphSession graphSession = jbpmContext.getGraphSession(); | ProcessDefinition processDefinition = | graphSession.findLatestProcessDefinition("authoring"); | ProcessInstance processInstance = new ProcessInstance(processDefinition); | Token token=processInstance.getRootToken(); | // Let's start the process execution, leaving the start-state | // over its default transition. | token.signal(); | TaskInstance taskInstance = (TaskInstance) | processInstance | .getTaskMgmtInstance() | .getTaskInstances() | .iterator().next(); | | System.out.println("size "+processInstance.getTaskMgmtInstance().getTaskInstances().size()); | System.out.println("taskInstance.getActorId() " +taskInstance.getActorId()); | System.out.println("taskInstance.getPooledActors() " +taskInstance.getPooledActors()); | TaskMgmtSession taskMgmtSession= jbpmContext.getTaskMgmtSession(); | System.out.println(taskMgmtSession.findPooledTaskInstances("a").size()); | System.out.println(taskMgmtSession.findPooledTaskInstances("b").size()); | ((TaskInstance)taskMgmtSession.findPooledTaskInstances("a").get(0)).getToken().signal(); | | System.out.println("a1 "+ taskMgmtSession.findPooledTaskInstances("a").size()); | System.out.println("b1 "+ taskMgmtSession.findPooledTaskInstances("b").size()); | System.out.println("c1 "+ taskMgmtSession.findPooledTaskInstances("c").size()); | System.out.println("a1 "+ ((TaskInstance)taskMgmtSession.findPooledTaskInstances("a").get(0)).getToken().getNode().getName()); | System.out.println("c2 "+ ((TaskInstance)taskMgmtSession.findPooledTaskInstances("c").get(0)).getToken().getNode().getName()); | System.out.println("a1 "+ taskMgmtSession.findTaskInstances("a").size()); | System.out.println("b1 "+ taskMgmtSession.findTaskInstances("b").size()); | System.out.println("c1 "+ taskMgmtSession.findTaskInstances("c").size()); | | | } catch (FileNotFoundException e) { | // TODO Auto-generated catch block | e.printStackTrace(); | } | } | | } | part of Sysout output a1 1 b1 1 c1 1 a1 task2 c2 task2 a1 1 b1 0 c1 0 View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4155553#4155553 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4155553 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user