fork的使用有一些小的地方需要注意。
1 fork节点出去的transition必须有name属性,因为Fork要用该属性来构建子token,如果不指定的话,那么所有的transition的name都为null,则只有一个transition会被调用。
2 fork的行为是依次调用transition,所以在底层它并不是一个并发的模型,如果需要使用并发模型的话,可以考虑jbpm的异步调用,当然,也可以自己起一个Thread去完成一些task。
3 token的name是和transition的name相关的,如下例所示,rootToken的fullName为'/',fork出来的两个子token分别为'/t2','/t1'。
4 join的token必须是兄弟token。
<process-definition name='TestForkProcess'>
<start-state>
<transition to='fork'></transition>
</start-state>
<fork name='fork'>
<transition name ='t1' to='node0'></transition>
<transition name ='t2' to='node1'></transition>
</fork>
<node name='node0'>
<script>
System.out.println("this script is entering node "+node);
token.signal();
</script>
<transition to='joinNode'></transition>
</node>
<node name='node1'>
<script>
System.out.println("this script is entering node "+node);
token.signal();
</script>
<transition to='joinNode'></transition>
</node>
<join name='joinNode'>
<script>
System.out.println("this script is entering node "+node);
</script>
<transition to='end' />
</join>
<end-state name='end' />
</process-definition><process-definition name='TestForkProcess'>
<start-state>
<transition to='fork'></transition>
</start-state>
<fork name='fork'>
<transition name ='t1' to='node0'></transition>
<transition name ='t2' to='node1'></transition>
</fork>
<node name='node0'>
<script>
System.out.println("this script is entering node "+node);
token.signal();
</script>
<transition to='joinNode'></transition>
</node>
<node name='node1'>
<script>
System.out.println("this script is entering node "+node);
token.signal();
</script>
<transition to='joinNode'></transition>
</node>
<join name='joinNode'>
<script>
System.out.println("this script is entering node "+node);
</script>
<transition to='end' />
</join>
<end-state name='end' />
</process-definition>
分享到:
相关推荐
几个JBPM例子,全部原代码
jbpm分支fork & 聚合join 操作例子,可应用于会签操作。
这是本人学习jbpm以来看过的写的最有条理的一个例子,基于现在网上jbpm的例子比较的少,所以上传上来和大家一起分享
jbpm例子其他地方弄来得。jbpm例子其他地方弄来得。jbpm例子其他地方弄来得。jbpm例子其他地方弄来得。jbpm例子其他地方弄来得。jbpm例子其他地方弄来得。
jbpm5完整的例子,用户任务,单元测试,
是一个可以在tomcat运行的例子,是ssh架构,共三部分,解压后里面又说明文档
本例子网上也有,只是有点问题,本人经过修改后想留给第一次学习jbpm的人,希望不让他们为一个问题而花费很长时间. 由于所有的jar包已上传,所以不在用QQ发jar包给各位下载的朋友, 请在以下页面下载本项目的jar包: ...
jbpm5 web整合例子, 可直接导入eclipse运行,内涵多组流程设计,代码完整。
jbpm演示demo例子
一个jbpm工作流的例子。一个jbpm工作流的例子。
jbpm4的例子 在myeclipse7.5+eclipse3.42 jbpm4的包与mycelipse的包有几个冲突。 要包含lib包的,到jamin.cnblogs.com给我留言。
JBPM4.3WEB应用,里面有一个关于请假流程的例子,基本上包含了JBPM4.3的一些常用的方法及服务类,也把它的新特性展现出来了。
JBPM4.4入门例子(jsp+servlet)纯粹了解接口和基本操作。 jar包请到官网下载 另外项目部署之后可能会有问题,见里面的《部署说明》 希望对刚接触的朋友有用
该文件是Jbpm工作流基本例子。流程的创建,流程实例的产生和获取等等,每个步骤都写成一个类,可以直接运行。
JBPM 例子 Hello World 例子 希望对大家有用
NULL 博文链接:https://sunlujing.iteye.com/blog/914429
JBPM5.4例子,已经能够运行。使用MYSQL数据库。
JBPM5.5例子程序 使用TOMCAT数据库
NULL 博文链接:https://java-lxm.iteye.com/blog/1158306
一个JBPM工作流例子,JBPM实现销售批复