Hello.
We have installed JBPM 3.3.0 for evaluation purposes.
During testing we ran into some problems when using subprocesses.
According to the documentation, a variable defined in a subprocess should be
saved in the "main"process when the subprocess ended.
This does not seems to be the case in this version.
Is there somthing we overlooked or is this a bug?
After the process-state "Ontvankelijkheidstoets" has ended, the variable
"subProcessResult" is on the process instance is null despite the fact that
this variable has been set in the sub process, the decision node "Resultaat OT"
however does the correct thing !
| public String decide(ExecutionContext arg0) throws Exception
| {
| System.out.println(" Decide which flow to follow depending on process
decision node.");
| String result = (String) arg0.getVariable("subProcessResult");
| if (Constants.SUCCESS.equalsIgnoreCase(result))
| {
| System.out.println("////// subProcess exection was succesfull, keep
following the yellowbrick road");
| return Constants.SUCCESS;
| } else if (Constants.FAIL.equalsIgnoreCase(result))
| {
| System.out.println("////// subProcess exection was no good, FAIL");
| return Constants.FAIL;
| } else {
| throw new Exception("Unexpected value in subProcessResult
variable : " + result);
| }
| }
Can someone tell me what is wrong? Is it a bug or am I doing something wrong??
Any help will be greatly appreciated!!
Jan van de Klok
By the way: In version 3.2.3 the decision node "Resultaat OT" does not react
on changes of the variable at all.
This is (a part of) the process definition.
<process-definition xmlns="" name="studentRegistrationUL" >
|
| <start-state name="start-student-registratie">
| <transition to="Invoer registratie gegevens door Student"></transition>
| </start-state>
|
| <task-node name="Invoer registratie gegevens door Student">
| <description>
| Student voert zijn persoons-, adres-,
vooropleidinggegevens in en eventuele andere gegevens welke nodig zijn voor de
instelling in kwestie.
| </description>
| <task name="Invoer persoonsgegevens">
| <description>
| Voer persoonsgegevens zoals naam, geboorte
datum, e.d. in
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Invoer woonadres">
| <description>
| Voer gegevens van het huidige woonadres in. Het
woonadres is je officieel verblijfsplaats (waar je bent ingeschreven).
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Opsturen paspoort">
| <description>
| Stuur kopie paspoort op of upload kopie van je
paspoort
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Invoer vooropleiding">
| <description>
| Vooropleidingen invoeren en sturen of uploaden
van een kopie van het diploma
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Inschrijfgeld betalen">
| <description>
| Inschrijfgeld overmaken naar de instelling
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Invoer taalvaardigheid">
| <description>
| Invoeren van de taalvaardigheid
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <transition to="Verstuur registratie gegevens naar
instelling"></transition>
| </task-node>
|
| <task-node name="Verstuur registratie gegevens naar instelling">
| <description>
| Student stuurt zijn registratie gegevens naar de
instelling en start daarmee het instellings registratie process
| </description>
| <task name="Versturen registratie gegevens">
| <description>
| Verstuur de ingevoerde registratie gegevens
naar de instelling #{chosenInstitution}
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| <controller></controller>
| </task>
| <transition to="Ontvankelijkheidstoets"></transition>
| </task-node>
|
| <process-state name="Ontvankelijkheidstoets">
| <description>
| In deze fase wordt bepaald of de aangeleverde gegevens
compleet en bruikbaar zijn. Eventueel wordt er gewacht op documenten die
middels de post worden aangeleverd.
| </description>
| <sub-process name="preConditionCheckUL" binding="late"/>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="pasportSendMethod" access="read" />
| <variable name="pooledActors" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat OT" name="success"></transition>
| </process-state>
|
| <process-state name="Diploma waardering">
| <description>
| De aangeleverde vooropleidinggegevens en kopieen van
diploma s worden getoetst en beoordeeld of deze volledig en voldoende zijn.
| </description>
| <sub-process name="diplomaCheck" binding="late"></sub-process>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat DW"></transition>
| </process-state>
|
| <process-state name="Beoordeling toelatingscommissie">
| <description>
| Een commissie bepaald of de student toelaatbaar is
(voor Masters studenten).
| </description>
| <sub-process name="acceptanceCommitee"
binding="late"></sub-process>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat BT"></transition>
| </process-state>
|
| <process-state name="Toelaten">
| <description>
| Medewerker controleert alle tot dan verzamelde
informatie en besluit wel of geen toelating tot het inschrijfproces.
| </description>
| <sub-process name="acceptanceCheck"
binding="late"></sub-process>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat T"></transition>
| </process-state>
|
| <decision name="Resultaat OT">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Niet ontvankelijk" name="fail"></transition>
| <transition to="Diploma waardering" name="success"></transition>
| </decision>
|
| <decision name="Resultaat DW">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Beoordeling toelatingscommissie"
name="success"></transition>
| <transition to="Diploma voldoet niet" name="fail"></transition>
| </decision>
|
| <decision name="Resultaat BT">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Afgewezen" name="fail"></transition>
| <transition to="Toelaten" name="success"></transition>
| </decision>
|
| <decision name="Resultaat T">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Afgewezen" name="fail"></transition>
| <transition to="Toegelaten" name="success"></transition>
| </decision>
|
| <end-state name="Toegelaten">
| <description>
| Gefeliciteerd de instelling heeft besloten dat u
toelaatbaar bent tot de gekozen opleiding. U kunt nu verder door het indienen
van een verzoek tot inschrijven.
|
| </description>
| </end-state>
|
| <end-state name="Afgewezen">
| <description>
| De instelling heeft de registratie gegevens beoordeeld
en besloten dat deze geen toegang geven tot de gekozen opleiding.
| </description>
| </end-state>
|
| <end-state name="Niet ontvankelijk">
| <description>
| Een medewerker van de instelling heeft bepaald dat de
registratie aanvraag niet ontvankelijk is. Zie de toelichting voor nadere
informatie met betrekking tot de reden.
| </description>
| </end-state>
|
| <end-state name="Diploma voldoet niet">
| <description>
| Een medewerker van de instelling heeft de opgestuurde
diploma's beoordeeld en besloten dat deze geen toegang geven tot de gekozen
opleiding. Voor meer informatie zie mededelingen.
| </description>
| </end-state>
|
|
| </process-definition>
<process-definition xmlns="" name="preConditionCheckUL">
|
| <start-state name="start-state1">
| <transition to="3fork"></transition>
| </start-state>
|
| <task-node name="Controleer student gegevens">
| <description>
| De verzamelde gegevens van student worden gecontroleerd
| </description>
| <task name="Invoer resultaat controle student gegevens">
| <description>
| Taak voor controle juistheid gegevens en invoer resultaat
| </description>
| <assignment pooled-actors="#{actor.groupActorIds}"></assignment>
| </task>
| <transition to="end-state1"></transition>
| </task-node>
|
| <fork name="3fork">
| <transition to="Registratie ontvangst paspoort" name="to reg Pasport">
| </transition>
| <transition to="Registratie ontvangst diploma" name="to Registratie
ontvangst diploma">
| </transition>
| <transition to="Registratie ontvangst inschrijfgeld" name="to
Registratie ontvangst inschrijfgeld">
| </transition>
| </fork>
|
| <task-node name="Registratie ontvangst paspoort">
| <description>
| Registratie ontvangst paspoort #{studentStatus.actorId}
| </description>
| <task name="Registreren ontvangst paspoort">
| <description>
| Registreren dat kopie paspoort is ontvangen per post
#{studentStatus.actorId}
| </description>
| <assignment
pooled-actors="#{contextUtil.processPooledActors}"></assignment>
| </task>
| <transition to="join1"></transition>
| </task-node>
|
| <task-node name="Registratie ontvangst diploma">
| <description>
| Registratie ontvangst diploma
| </description>
| <task name="Registreren ontvangst diploma">
| <description>
| Registreren dat kopie diploma is ontvangen per post voor
#{studentStatus.actorId}
| </description>
| <assignment
pooled-actors="#{contextUtil.processPooledActors}"></assignment>
| </task>
| <transition to="join1" name="from reg diploma"></transition>
| </task-node>
|
| <task-node name="Registratie ontvangst inschrijfgeld">
| <description>
| Registratie ontvangst inschrijfgeld voor #{studentStatus.actorId}
| </description>
| <task name="Registreren ontvangst inschrijfgeld">
| <description>
| Registreren dat inschrijfgeld is betaald voor
#{studentStatus.actorId}
| </description>
| <assignment
pooled-actors="#{contextUtil.processPooledActors}"></assignment>
| </task>
| <transition to="join1" name="from inschrijfgeld"></transition>
| </task-node>
|
| <join name="join1">
| <transition to="Controleer student gegevens"></transition>
| </join>
|
| <end-state name="end-state1">
| </end-state>
|
| </process-definition>
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196474#4196474
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196474
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user