task variable in java @endtask function
turpin_vincent Mar 20, 2009 12:51 PMHi, i'm using Seam 2.1 and i'm in trouble with task variable gestion
In the third taskInstance of a processInstance i want to get a variable (witch is in Process scope) in a function but i dont find how...
In this part:
` <h:column>
<f:facet name="plop">
<h:outputText value="Voiture"/>
</f:facet>
<h:outputText value="#{task.variables['sinistre'].typeVoiture}"/> <br />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="type de Voiture"/>
</f:facet>
<h:inputText id="typeVoiture" value="#{Saisie_1.sinistre.typeVoiture}"/>
</h:column>
<h:column>
<s:button value="ajouter" taskInstance="#{task}" action="#{Saisie_1.Ajout_Mat}" />
</h:column>`
I update task variable {task.variables['sinistre'].typeVoiture} with a value from the input text {Saisie_1.sinistre.typeVoiture}
and it works but then i want to get this value in my function in order to persist this value.
` @StartTask
@EndTask(transition="toJoin2")
public void Ajout_Mat()
{
System.out.println("ajout du type de voiture");
System.out.println("voiture avant set: "+ sinistre.getTypeVoiture());
sinistre.setTypeVoiture(sinistre.getTypeVoiture());
System.out.println("voiture apres set: "+sinistre.getTypeVoiture());
this.ajouterInfoMat();
System.out.println("Sinistre mat maj et transmis");
}
`
but i dont find how
I give you all the files needed
`package org.domain.Mutant.session;
import java.util.List;
import javax.persistence.EntityManager;
import org.domain.booking.entity.Sinistre;
import org.jboss.seam.annotations.bpm.CreateProcess;
import org.jboss.seam.annotations.bpm.EndTask;
import org.jboss.seam.annotations.bpm.ResumeProcess;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.bpm.StartTask;
import org.jboss.seam.annotations.*;
import org.jboss.seam.bpm.TaskInstancePriorityList;
import org.jboss.seam.ScopeType;
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
@Name("Saisie_1")
public class Saisie_1
{
@In EntityManager entityManager;
ExecutionContext executionContext;
@Out(scope=ScopeType.BUSINESS_PROCESS)
private static Sinistre sinistre;
public Sinistre getSinistre()
{
if(sinistre == null)
{
sinistre = new Sinistre();
}
return sinistre;
}
public void setSinistre(Sinistre sinistre)
{
Saisie_1.sinistre = sinistre;
}
@CreateProcess(definition="simple")
public String startProcess()
{
System.out.println("process straté");
sinistre = new Sinistre(getSinistre());
System.out.println("Sinistre crée avec les parametres suivants et sinistre: ");
System.out.println("id: " + sinistre.getIdSinistre());
System.out.println("nom: " + sinistre.getNomClient());
System.out.println("prénom: " +sinistre.getPrenomClient());
System.out.println("Corporel: " +sinistre.isSinistreCorporel());
System.out.println("Materiel: " +sinistre.isSinistreMateriel());
System.out.println("voiture: " +sinistre.getTypeVoiture());
System.out.println("blessure: " +sinistre.getTypeblessure());
return "Mat";
}
@ResumeProcess
@StartTask
@EndTask(transition="toFork")
public void valider()
{
this.register();
System.out.println("Sinistre Sauvé et transmis");
}
@StartTask
@EndTask(transition="toJoin2")
public void Ajout_Mat()
{
System.out.println("ajout du type de voiture");
System.out.println("voiture avant set: "+ sinistre.getTypeVoiture());
sinistre.setTypeVoiture(sinistre.getTypeVoiture());
System.out.println("voiture apres set: "+sinistre.getTypeVoiture());
this.ajouterInfoMat();
System.out.println("Sinistre mat maj et transmis");
}
@StartTask
@EndTask(transition="toJoin1")
public void Ajout_Corp()
{
System.out.println("ajout du type de blessure");
System.out.println("blessure avant set: " +sinistre.getTypeblessure());
sinistre.setTypeblessure(sinistre.getTypeblessure());
System.out.println("blessure apres set: " +sinistre.getTypeblessure());
this.ajouterInfoCorp();
System.out.println("Sinistre mat maj et transmis");
}
@StartTask
@EndTask(transition="toFin")
public void validFinal()
{
System.out.println("Sinistre saisie mis en base et clos");
}
public String register()
{
System.out.println("Sinistre mis en base avec les parametres suivants et sinistre: ");
System.out.println("id: " + sinistre.getIdSinistre());
System.out.println("nom: " + sinistre.getNomClient());
System.out.println("prénom: " +sinistre.getPrenomClient());
System.out.println("Corporel: " +sinistre.isSinistreCorporel());
System.out.println("Materiel: " +sinistre.isSinistreMateriel());
entityManager.persist(getSinistre());
return "sinistre_created";
}
public String ajouterInfoMat()
{
System.out.println("Voiture: " +sinistre.getTypeVoiture());
entityManager.merge(sinistre);
return "voiture_ajoutée";
}
public String ajouterInfoCorp()
{
System.out.println("Voiture: " +sinistre.getTypeblessure());
entityManager.merge(sinistre);
return "blessure_ajoutée";
}
`
`
package org.domain.booking.entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;