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
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user