一个关于Fork/Join的问题

akteo 2008-07-04
代码:
       <?xml version="1.0" encoding="GBK"?>

<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="convertor15">

  <!-- START-STATE -->
  <start-state name="start">
    <transition to="startFork" name="start to startFork"/>
  </start-state>

  <!-- NODES -->
  <end-state name="end"/>
  <task-node name="a">
    <transition to="b" name="to b"/>
    <task name="a's Task">
      <assignment actor-id="a"/>
    </task>
  </task-node>
  <task-node name="b">
    <transition to="b Fork" name="b to Fork"/>
    <task name="b's Task">
      <assignment actor-id="b"/>
    </task>
  </task-node>
  <task-node name="c">
    <task name="c's Task">
      <assignment actor-id="c"/>
    </task>
		<transition to="join1"></transition>
  </task-node>
  <task-node name="d">
    <task name="d's Task">
      <assignment actor-id="d"/>
    </task>
		<transition to="join2"></transition>
  </task-node>
  <task-node name="e">
    <transition to="f" name="to f"/>
    <task name="e's Task">
      <assignment actor-id="a"/>
    </task>
  </task-node>
  <task-node name="f">
    <task name="f's Task">
      <assignment actor-id="b"/>
    </task>
		<transition to="join2"></transition>
  </task-node>
  <task-node name="g">
    <task name="g's Task">
      <assignment actor-id="a"/>
    </task>
		<transition to="join1"></transition>
  </task-node>
  <fork name="startFork">
    <transition to="a" name="startForka"/>
    <transition to="e" name="startForke"/>
  </fork>
  <fork name="b Fork">
    <transition to="c" name="to c"/>
    <transition to="d" name="to d"/>
  </fork>
	<join name="join1">
		<transition to="end"></transition>
	</join>

	<join name="join2">
		<transition to="g"></transition>
	</join>

</process-definition>

根据上面构建的模型,当任务节点f和d的任务都完成以后,整个过程就停在Join2上了,任务节点g就不能够到达
jBPM好像不支持Join和多个Fork分支相连的情况
但是现实中的流程就会出现这样的情况,不知道有没有好的办法解决此类问题?
请教大家了
richmond 2008-07-12
token层次不对吧
/
|-a--
|   |-c
|   |
|   |-d
|-e

估计jbpm只能join同一层的token

就这个例子看来,c、d做完先join了,再跟f join再做g其实都是一样的...
反正就是保证d、f先做完才能做g,然后c和g完成了才能结束