Okay so here's my workflow
| <?xml version="1.0" encoding="UTF-8"?> | | <process name="process" xmlns="http://jbpm.org/4.0/jpdl"> | <start g="0,0,80,40"> | <transition to="parse request"/> | </start> | | <java class="org.tlg.workflow.ParseRequest" g="90,4,80,40" method="execute" name="parse request"> | <transition g="-27,-18" name="valid" to="find providers"/> | <transition g="-35,-18" name="invalid" to="error"/> | </java> | | <java class="org.tlg.workflow.FindProviders" g="276,7,80,40" method="execute" name="find providers"> | <transition to="fork"/> | </java> | | <fork g="298,85,80,40" name="fork"> | <on continue="exclusive" event="end"/> | <transition g="-62,-18" name="validate red" to="validate red request"/> | <transition g="-64,-18" name="validate exp" to="validate exp request"/> | <transition g="-63,-17" name="validate sys" to="validate sys request"/> | </fork> | | <custom name="validate red request" class="org.tlg.workflow.AlterObject" exp="#{myObj}"> | <transition g="-27,-18" to="join"/> | </custom> | | <custom name="validate exp request" class="org.tlg.workflow.AlterObject" exp="#{myObj}"> | <transition g="-27,-18" to="join"/> | </custom> | | <custom name="validate sys request" class="org.tlg.workflow.AlterObject" exp="#{myObj}"> | <transition g="-27,-18" to="join"/> | </custom> | | <join g="267,368,80,40" name="join"> | <transition name="check results" to="evaluate validation results" g="-47,-16"/> | </join> | | <decision name="evaluate validation results" expr="#{content}" > | <transition name="valid" to="construct message" /> | <transition name="invalid" to="error"/> | </decision> | | <java class="org.tlg.workflow.ConstructFraudRequest" g="505,168,80,40" method="execute" name="construct message"> | <transition to="send"/> | </java> | | <java class="org.tlg.workflow.SendRequest" g="501,78,80,40" method="execute" name="send"> | <transition to="get responses"/> | </java> | | <java class="org.tlg.workflow.GetResponse" g="372,84,80,40" method="execute" name="get responses"> | <transition to="process responses"/> | </java> | | <java class="org.tlg.workflow.ProcessResponse" g="431,6,80,40" method="execute" name="process responses"> | <transition g="-48,-18" name="complete" to="end"/> | <transition g="-42,-18" name="process" to="find providers"/> | </java> | | <end g="624,21,80,40" name="end" state="complete"/> | <end-error g="37,104,80,40" name="error"/> | | </process> | It is experimental at the moment so i know it may be a bit messy and i apologize. Here's my Unit test | public void testSimple() throws Exception { | Map<String, Object> variables = new HashMap<String, Object>(); | variables.put("content", "valid"); | | myObj = new MyObject(); | myObj.setName("A reusable fraud object"); | variables.put("myObj", myObj); | | ProcessInstance processInstance = executionService.startProcessInstanceByKey("process", variables); | String processInstanceId = processInstance.getId(); | | List<Job> jobs = managementService.createJobQuery() | .processInstanceId(processInstanceId) | .list(); | | for(Job job: jobs) { | managementService.executeJob(job.getId()); | System.out.println("Executing Job number " + job.getId()); | } | | MyObject myObjUpdated = (MyObject) variables.get("myObj"); | System.out.println(myObjUpdated.getName()); | } | And the class that amends the object | | public class AlterObject implements ActivityBehaviour{ | | private static final long serialVersionUID = 1L; | | public void execute(ActivityExecution execution) throws Exception { | MyObject myObject= (MyObject )execution.getVariable("myObj"); | | System.out.println(myObject.getName()); | fraudObject.setName("Name now changed"); | | execution.setVariable("myObj", myObject); | | } | | View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4250160#4250160 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4250160 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
