hi all,
i've defined a process like this:
A_a ------------------------------\
/ \
start(waitstate) -> main_fork main_join
-> end
\ /
\ B_C_a /
\ / \ /
B_a -> B_fork B_join
\ /
B_D_a
fork and join activity are using the classes of
'org.jbpm.jpdl.internal.activity.ForkActivity' and
'org.jbpm.jpdl.internal.activity.JoinActivity'
ClientProcessDefinition process =
ProcessDefinitionBuilder.startProcess("simpleNestedBranch")
|
| .startActivity("start", WaitState.class)
| .initial()
| .transition("main_fork", "to_main_fork")
| .endActivity()
|
| .startActivity("main_fork", ForkActivity.class)
| .transition("A_a", "to_A_a")
| .transition("B_a", "to_B_a")
| .endActivity()
|
| .startActivity("A_a", AutomaticActivity.class)
| .transition("main_join", "to_main_join")
| .endActivity()
|
| .startActivity("B_a", AutomaticActivity.class)
| .transition("B_fork", "to_B_fork")
| .endActivity()
|
| .startActivity("B_fork", ForkActivity.class)
| .transition("B_C_a", "to_B_C_a")
| .transition("B_D_a", "to_B_D_a")
| .endActivity()
|
| .startActivity("B_C_a", AutomaticActivity.class)
| .transition("B_join", "to_B_join")
| .endActivity()
|
| .startActivity("B_D_a", AutomaticActivity.class)
| .transition("B_join", "to_B_join")
| .endActivity()
|
| .startActivity("B_join", JoinActivity.class)
| .transition("main_join", "to_main_join")
| .endActivity()
|
| .startActivity("main_join", JoinActivity.class)
| .transition("end", "to_end")
| .endActivity()
|
| .startActivity("end", EndState.class) // EndState: implementation of
ActivityBehaviour, call execution#end in the #execute
| .endActivity()
|
| .endProcess();
then i deploy and run the testcase with
executionService.startProcessInstanceById("simpleNestedBranch:1",
"yyyy2");
| executionService.signalExecutionById("simpleNestedBranch/yyyy2",
"to_main_fork");
the result is not as i expected.
the console print out by this order:
start -> main_fork (execution id: simpleNestedBranch/yyyy2)
-> A_a -> main_join (execution id: simpleNestedBranch/yyyy2/to_A_a)
-> B_a -> B_fork (execution id: simpleNestedBranch/yyyy2/to_B_a)
-> B_C_a -> B_join (execution id: simpleNestedBranch/yyyy2/to_B_C_a)
-> B_D_a -> B_join (execution id: simpleNestedBranch/yyyy2/to_B_D_a)
-> main_join (execution id: simpleNestedBranch/yyyy2/48)
-> end (execution id: simpleNestedBranch/yyyy2/49)
-> B_C_a -> B_join (execution id: simpleNestedBranch/yyyy2/to_B_a)
then i checked the table 'jbpm_execution' in database, the recrods like this:
dbid dbversion act name key id state
47 2 null null yyyy2 simpleNestedBranch/yyyy2 inactive
48 1 69(main_join) null null simpleNestedBranch/yyyy2/48 ended
49 1 70(end) null null simpleNestedBranch/yyyy2/49 ended
50 0 74(B_join) to_B_a null simpleNestedBranch/yyyy2/to_B_a inactive
the process does not ended as i expected, i suppose that the process would be ended when
the activity 'end' finished.
need some help... any suggestion would be appreciate!!
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4214741#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...