[jboss-user] [JBoss jBPM] - Re: Does JBPM Supports fully actor based taskList
csplrj
do-not-reply at jboss.com
Thu Jun 5 07:57:46 EDT 2008
The files as per below
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
| assignable.setActorId("b");
| }
|
| }
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
| import java.io.FileInputStream;
| import java.io.FileNotFoundException;
| import java.util.Set;
|
| import org.jbpm.JbpmConfiguration;
| import org.jbpm.JbpmContext;
| import org.jbpm.db.GraphSession;
| import org.jbpm.db.TaskMgmtSession;
| import org.jbpm.graph.def.ProcessDefinition;
| import org.jbpm.graph.exe.ProcessInstance;
| import org.jbpm.graph.exe.Token;
| import org.jbpm.taskmgmt.exe.PooledActor;
| import org.jbpm.taskmgmt.exe.TaskInstance;
|
| public class Test {
| static JbpmConfiguration jbpmConfiguration = null;
|
| public static void deployProcessDefinition()
| {
| try {
| ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(new FileInputStream("D:\\Cobra\\workspace\\WorkFlowAuthoringPOC\\src\\main\\jpdl\\authoring\\processdefinition.xml"));
| JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
| jbpmContext.deployProcessDefinition(processDefinition);
| jbpmContext.close();
| } catch (FileNotFoundException e) {
| // TODO Auto-generated catch block
| e.printStackTrace();
| }
| }
|
| /**
| * @param args
| */
| public static void main(String[] args) {
| // TODO Auto-generated method stub
| 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.findTaskInstances("b").get(0)).getToken().signal();
| System.out.println("a1 "+ ((TaskInstance)taskMgmtSession.findTaskInstances("a").get(0)).getToken().getNode().getName());
| System.out.println("b1 "+ ((TaskInstance)taskMgmtSession.findTaskInstances("b").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();
| }
| }
|
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4155943#4155943
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4155943
More information about the jboss-user
mailing list