hello,
I ask me a question. as I have a list of tasks (the new ones and the old ones) when I execute this lines:
Iterator itr1 = taskinstances.iterator();
System.out.println("iterator ok");
while(itr1.hasNext()) {
System.out.println("creation taskinstance");
taskinstance=(TaskInstance)itr1.next();
// taskinstance = processInstance.getTaskMgmtInstance().createTaskInstance();
taskinstance.isSignalling();
if("ernie"==taskinstance.getActorId()){
System.out.println("TASK ERNIE ARE:.ERNIE................:"+taskinstance.getName());
}
else if("bert"==taskinstance.getActorId()){
System.out.println("task BERT ARE:.BERT....................:"+taskinstance.getName());
}
else{
System.out.println("THE TASK ARE NOT ALLOWED TO YOUR USER .. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
taskinstance.getSwimlaneInstance().setActorId("bert");
System.out.println("Changement effectué.. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
}
I think that perhaps I create a new swimlane each time.
So I will put my file code in order to see you if you see why I have the task already signal and the new one.
thank you for you help in advance
antitrust 1982
my code:
(this is a java file which is executed when I pass from a jsp to an another one)
package com.opensymphony.webwork.portlet.tutorial;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Date;
import java.util.Set;
import org.jbpm.db.JbpmSession;
import org.jbpm.db.JbpmSessionFactory;
import org.jbpm.graph.exe.*;
import org.jbpm.taskmgmt.def.*;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.taskmgmt.exe.Assignable;
import org.jbpm.taskmgmt.exe.PooledActor;
import org.jbpm.taskmgmt.exe.SwimlaneInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
import org.jbpm.taskmgmt.log.SwimlaneLog;
import javax.naming.InitialContext;
import org.hibernate.SessionFactory;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;
import org.jbpm.*;
import org.jbpm.identity.hibernate.IdentitySession;
import javax.rmi.PortableRemoteObject;
public class Renseignement extends ActionSupport{
private String currentNode;
private String date;
private String societe;
private String redacteur;
private String tdemand;
ExecutionContext ec=null;
static JbpmConfiguration jbpmConfiguration = null;
static ProcessDefinition processDefinition= null;
JbpmContext jbpmContext=null;
TaskInstance taskinstance=null;
Token token=null;
public void setCurrentNode(String currentNode) {
System.out.println("set currentNode");
this.currentNode = currentNode;
}
public String getCurrentNode() {
System.out.println("get currentNode");
return currentNode;
}
public void setDate(String date) {
this.date = date;
}
public String getDate() {
return date;
}
public void setSociete(String societe) {
this.societe = societe;
}
public String getSociete() {
return societe;
}
public void setRedacteur(String redacteur) {
this.redacteur = redacteur;
}
public String getRedacteur() {
return redacteur;
}
public void setTdemand(String tdemand) {
this.tdemand = tdemand;
}
public String getTdemand() {
return tdemand;
}
@Override
public String execute() throws Exception {
ProcessInstance processInstance = null;
Map session = (Map) ActionContext.getContext().get("session");
JbpmContext jbpmContext1= (JbpmContext) session.get("jbpmContext");
processInstance=(ProcessInstance) session.get("process");
System.out.println("actorid: "+jbpmContext1.getActorId());
System.out.println("processdefiniton from session");
ProcessDefinition pd = (ProcessDefinition)session.get("processDefiniton");
System.out.println("ok");
SwimlaneInstance si= (SwimlaneInstance)session.get("si");
System.out.println( si.getName());
System.out.println("avant la création du collection");
System.out.println("NOM DU SWIMLANE : "+si.getName());
Collection taskinstances = (Collection) si.getTaskMgmtInstance().getTaskInstances();
System.out.println("ca fonctionne le MAP");
Iterator itr1 = taskinstances.iterator();
System.out.println("iterator ok");
while(itr1.hasNext()) {
System.out.println("creation taskinstance");
taskinstance=(TaskInstance)itr1.next();
taskinstance.isSignalling();
if("ernie"==taskinstance.getActorId()){
System.out.println("TASK ERNIE ARE:.ERNIE................:"+taskinstance.getName());
}
else if("bert"==taskinstance.getActorId()){
System.out.println("task BERT ARE:.BERT....................:"+taskinstance.getName());
}
else{
System.out.println("THE TASK ARE NOT ALLOWED TO YOUR USER .. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
taskinstance.getSwimlaneInstance().setActorId("bert");
System.out.println("Changement effectué.. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
}
}
try{
token = taskinstance.getToken();
token.signal();
token.signal();
}
finally{
}
System.out.println("############## save token good#######");
// jbpmContext.save(processInstance);
System.out.println("############## save process good#######");
System.out.println("USER .........................."+jbpmContext1.getActorId());
this.setCurrentNode(currentNode);
Date date1 = new Date();
this.setDate(date1.toGMTString());
//session.put("tdemand",this.getTdemand());
//session.put("societe",this.getSociete());
//session.put("date",this.getDate());
//session.put("redateur", this.getRedacteur());
// session.put("processName",nameProcess);
//session.put("processDefiniton",processDefinition);
session.put("ec",ec);
session.put("si",si);
session.put("process",processInstance);
//session.put("jbpmContext",jbpmContext);
return SUCCESS;
}
}
It appear in my console these lines:
actorid: ernie
processdefiniton from session
ok
FONCIA
avant la cr?®ation du collection
NOM DU SWIMLANE : FONCIA
ca fonctionne le MAP
iterator ok
creation taskinstance
task BERT ARE:.BERT....................:DeclarationSinistre
creation taskinstance
task BERT ARE:.BERT....................:ControlePrime
creation taskinstance
TASK ERNIE ARE:.ERNIE................:start
creation taskinstance
TASK ERNIE ARE:.ERNIE................:EnregistrementSinistre
############## save token good#######
############## save process good#######
USER ..........................ernie
set currentNode
#### execute
firstNAmle : null
get currentNode