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
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to