[jboss-user] [JBoss jBPM] - how create swimlane
antitrust1982
do-not-reply at jboss.com
Fri Oct 6 03:53:27 EDT 2006
Hello,
I have created a jbpm portlet. For now I have use this code in order to do working the swimlane assigment:
package com.opensymphony.webwork.portlet.tutorial;
|
| import java.util.*;
|
|
| import org.jbpm.graph.def.ProcessDefinition;
| import org.jbpm.graph.exe.ExecutionContext;
| import org.jbpm.graph.exe.ProcessInstance;
| import org.jbpm.db.*;
| import org.jbpm.graph.exe.Token;
| import org.jbpm.taskmgmt.exe.*;
| import org.jbpm.taskmgmt.log.SwimlaneAssignLog;
| import org.jbpm.taskmgmt.log.SwimlaneCreateLog;
| import org.jbpm.taskmgmt.log.SwimlaneLog;
| import org.jbpm.taskmgmt.log.TaskAssignLog;
| import org.jbpm.graph.exe.*;
| import org.jbpm.graph.log.TokenCreateLog;
|
| import com.opensymphony.xwork.ActionContext;
| import com.opensymphony.xwork.ActionSupport;
| import org.jbpm.*;
|
| import org.jbpm.taskmgmt.def.*;
|
| import org.jbpm.ant.StartHsqldbTask;
| import org.jbpm.context.log.*;
|
| import java.util.Iterator;
|
| public class CreateProcessInstanceAction extends ActionSupport{
|
| TaskInstance taskinstance=null;
| static JbpmConfiguration jbpmConfiguration = null;
| static ProcessDefinition processDefinition= null;
| Date date;
|
| JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
| GraphSession graphSession = jbpmContext.getGraphSession();
| SwimlaneInstance si =null;
| ExecutionContext ec=null;
| private long processus;
|
| public long getProcessus() {
| return processus;
| }
| public void setProcessus(long processus) {
| System.out.println("set process");
| this.processus = processus;
| }
|
|
| @Override
| public String execute() throws Exception {
| Map session1 = (Map) ActionContext.getContext().get("session");
| String login=(String) session1.get("login");
| System.out.println("mon login:"+login);
| Collection processdefinstances= graphSession.findAllProcessDefinitions();
| Iterator itpro = processdefinstances.iterator();
| while (itpro.hasNext()){
| ProcessDefinition processdef =(ProcessDefinition) itpro.next();
| if(processus == processdef.getId()){
| ProcessInstance processinstance= processdef.createProcessInstance();
| jbpmContext.save(processinstance);
| jbpmContext.loadProcessInstanceForUpdate(processinstance.getId());
|
|
| Map swimlanes = processdef.getTaskMgmtDefinition().getSwimlanes();
| Iterator itr = swimlanes.keySet().iterator();
| while(itr.hasNext()) {
| Swimlane swimlane = (Swimlane)swimlanes.get(itr.next());
| swimlane.setPooledActorsExpression(login);
| ec= new ExecutionContext(processinstance.getRootToken());
| SwimlaneInstance swi = processinstance.getTaskMgmtInstance().getInitializedSwimlaneInstance(ec, swimlane);
|
| /*if(swi.getName().equals("Assurimo")){
| swi.setActorId("bert");
| }*/
|
| Set pooledActors = swi.getPooledActors();
| if(pooledActors != null) {
| Iterator paItr = pooledActors.iterator();
| while(paItr.hasNext()) {
| ((PooledActor)paItr.next() ).setSwimlaneInstance(swi);
| }
| }
|
| }
|
| if (processdef.getTaskMgmtDefinition().getStartTask() != null) {
|
| org.jbpm.taskmgmt.def.Task task = processdef.getTaskMgmtDefinition().getStartTask();
| String swimlaneName = task.getSwimlane().getName();
| SwimlaneInstance swi = processinstance.getTaskMgmtInstance().getSwimlaneInstance(swimlaneName);
| String originalActorId = swi.getActorId();
| Set originalPooledActors = swi.getPooledActors();
| System.out.println("taskinstance");
| TaskInstance startTask = processinstance.getTaskMgmtInstance().createStartTaskInstance();
| startTask.setActorId(login);
| startTask.setDueDate(date);
|
| if(startTask.getSwimlaneInstance() != null) {
| si = startTask.getSwimlaneInstance();
| startTask.getSwimlaneInstance().setActorId(login);
|
| if (startTask.getSwimlaneInstance().getPooledActors() != null) {
|
| }
| }
|
| }
| else {
| }
|
| jbpmContext.save(processinstance);
| jbpmContext.close();
| }
| }
|
| return SUCCESS;
| }
| }
Now I want create automatically my swimlane for processes, but how create a swimlane from the process definition.
thank you for your help
antitrust1982
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3976509#3976509
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3976509
More information about the jboss-user
mailing list