[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