jbpm4.3中的节点有很多种
常见的有:
state、task、decision
(我列出来的都是最基本的)
可以这样理解
流程实例碰到
state就会自己停下来,但是这个任务不属于那个人,而且知道有任何人驱动了向下,
流程才会流转
task就是也会停下来,但是这个任务会分派给一个人或者一个组
知道这个人或者这个组中的某个人(需要以“竞争”的方式领取任务,说白了就是抢)
完成了这个任务,然后流程才会向下
decision就是不会停下来的,它会自己根据流程变量选择往哪个流程分支前进
也就是相当于判断的意思,没有人干预的...
今天搞了decision ,非常郁闷 !
...网上大多数人都是让decision去搞出一个 handler 处理类...
这个...
顺便说一句...网上那些例子,几乎全部是写死的!
靠,decision需要依靠一个Java类,那么当你发布一个流程的时候还要附带上一个编译好的类?
... 那么这样工作流引擎的发布流程功能还有什么用呢?
按照网上的例子写,基本上可以说,你开发的使用已经限定了你可以发布什么流程
然后审批人是什么,表单传递的内容是什么...
这样,工作流引擎的意义就没多大了...
所以,我自己考虑了一下,不应该让流程定义依赖于handler类处理,而是使用
expression 表达式方式
而且,而且表单中的参数,也不该在流程处理的Action中定死,而是自动获取
表单的key和value放入流程变量...
当流程发布的时候,需要有流程定义文件,流程图片,流程所有的表单
我们需要上传这几个文件,然后才能 定义任意流程!
个人觉得,这样才发挥了工作流引擎的意义...
具体怎么写,篇幅问题,我只能等我彻底完成后再单独发一篇博客才能分享了...
回到正题:
<decision name="b" expr="#{action}">
<transition to="c" name="abc"/>
<transition to="d" name="def"/>
</decision>
这个是我的decision 标签
expr是表达式
#{action}
是判断 流程变量中的 action ,如果action的值为 abc 那么就
流程流转向 c 节点
如果是 def 那么就流向 d 节点
当然,这些表达式还有很多
具体参照
贩卖你168那个文档
http://www.family168.com/tutorial/jbpm4.0/html/jpdl.html#decision
转自:eMavaj的小窝