Hi,
i've a little problem with join node during the step from my join node to the next
node.
In particular if i have 3 transitions (ex. tr1, tr2, tr3) but only the last one leave the
join node, the others 2 are stopped on join node, so when i finished my flow i can see the
"end state" on the end node and on the join node.
Are these two transitions stored in the database or create a problem of memory and
performance ?
This is an image that shows my flow:
http://www.flickr.com/photos/31362199@N03/2966198345/
This is the code that forwards the flow:
| public Step[] forwardWF(User user, Step step, Long idWF) {
| JbpmContext jbpmContext = null;
| JbpmConfiguration jbpmConfiguration = null;
| ProcessInstance processInstance = null;
| Step[] steps = null;
| try {
| jbpmConfiguration =
JbpmConfiguration.getInstance("WEB-INF/jbpm.cfg.xml");
| jbpmContext = jbpmConfiguration.createJbpmContext();
| processInstance = jbpmContext.getProcessInstance(idWF.longValue());
| if (!processInstance.hasEnded()){
| Token token = processInstance.getRootToken();
| TaskMgmtSession taskSession = jbpmContext.getTaskMgmtSession();
| List listaTask = taskSession.findTaskInstancesByProcessInstance(processInstance);
| Field[] fields = step.getFields();
| boolean trovato = false;
| for (int i = 0; i < listaTask.size()&&!trovato; i++) {
| TaskInstance ti = (TaskInstance)listaTask.get(i);
| if(ti.getId()==Long.parseLong(step.getStepID())){
| for (int j = 0; j < fields.length ; j++) {
| ti.setVariable(fields[j].getId(), fields[j].getValue());
| }
| ti.start("utentegenerico");
| ti.end();
| trovato=true;
| }
| }
| jbpmContext.save(processInstance);
| token = processInstance.getRootToken();
| listaTask = taskSession.findTaskInstancesByProcessInstance(processInstance);
| if(listaTask!=null&& listaTask.size()>0){
| steps = new Step[listaTask.size()];
| for(int i=0; i<steps.length;i++){
| TaskInstance ti = (TaskInstance)listaTask.get(i);
| Step st = new Step();
| st.setStepID(""+ti.getId());
| st.setLocked(false);
| st.setDescrizioneStep(ti.getName());
| st.setFields(getVariables(ti));
| steps=st;
| }
| }else{
| log.info("non ci sono più task");
| steps=new Step[0];
| }
| }
| } catch (Exception e) {
| log.error("errore nel avanzamento del flusso");
| log.error(e,e);
| } finally {
| jbpmContext.close();
| }
| return steps;
| }
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184193#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...