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#4214741

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4214741
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to