`

jbpm 各个节点的说明

    博客分类:
  • JBPM
阅读更多
1、task-node
   一个task-node可以包含一个或多个task,这些task分配给特定的user。当流程执行到task-node时,task instance将会被创建,一个task对应一个task instance。task instances 创建后,task-node就处于等待状态。当所有的task instances被特定的user执行完毕后,将会发出一个新的signal 到token,即流程继续执行。
   2、state
   state是一个纯粹的wait state(等待状态)。它和task-node的区别就是它不会创建task instances。很典型的用法是,当进入这个节点时(通过绑定一个action到node-enter event),发送一条消息到外部的系统,然后流程就处于等待状态。外部系统完成一些操作后返回一条消息,这个消息触发一个signal 到token,然后流程继续执行。(不常用)
   3、decision
   当需要在流程中根据不同条件来判断执行不同路径时,就可以用decision节点。两种方法:最简单的是在transitions里增加 condition elements(条件),condition是beanshell script写的,它返回一个boolean。当运行的时候,decision节点将会在它的 leaving transitions里循环,同时比较 leaving transitions里的condition,最先返回'true'的condition,那个leaving transitions将会被执行;作为选择,你可以实现DecisionHandler接口,它有一个decide()方法,该方法返回一个 String(leaving transition的名字)。
   4、fork
   fork节点把一条执行路径分离成多条同时进行(并发)的执行路径,每条离开fork节点的路径产生一个子token。
   5、join
   默认情况下,join节点会认为所有到达该节点的token都有着相同的父token。join 节点会结束每一个到达该节点的token,当所有的子token都到达该节点后,父token会激活。当仍然有子token处于活动状态时,join 节点是wait state(等待状态)。
   6、node
   node节点就是让你挂自己的action用的(注意:不是event触发!!),当流程到达该节点时,action会被执行。你的action要实现ActionHandler接口。同样,在你的action里要控制流程!


jPDL包含各种活动(activity)和活动之间的流转(transition)。用jPDL定义的xml流程文件的最外层节点为process(流程),process(流程)可包含以下活动类型:

control flow activities控制流活动
start
流程的开始,一个流程有且仅有一个开始活动。
state
等待活动,需要等到外部触发才执行。
concurrency(4.3)
并行活动,通过fork/join实现。可理解为组合活动(非原子活动)。
task
任务活动,需要人参与的活动(assignee/candidates等)。
sub-process
子过程,可将流程中一些可重用的子流程抽取出来作为子过程。
custom
用户自定义活动。(用户自己编码实现)
end
结束活动,jbpm4支持多个结束活动。
end-cancel
取消活动。
end-error
出错结束活动。
decision
决策活动,有多个分支。
fork
流程分支。
join
流程联合。
automatic activities自动活动
自动活动即不需人干预的活动,由系统根据程序代码或配置自动执行。
java
script
hql
sql
mail 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics