jbpm知识点——swimlane

来源:互联网 发布:淘宝新店刷流量 编辑:程序博客网 时间:2024/05/01 10:57

swimlane一般是为了task准备的,任务总是要分配到某个人头上的。如果在流程定义文件中任务没有指定对应的泳道如:<task name="bank"/>,那么就需要在程序代码中分配相关的处理人taskInstance.setActorId("jeffen")。如果程序都是这样来搞那其实是很麻烦的,而且分配代码分散到各个地方,很容易出错。于是引进了泳道,我们可以在流程定义文件中统一指定swimlane和处理人的关系、task和swimlane的关系,只需要维护这一个文件就好了,(有点像struts的配置文件)如下:

<swimlane name="banker">
        
<assignment expression="user(jeffen)"/>
</swimlane>
......

<task name="bank"  swimlane="banker">

这样就将任务实例和处理人松耦合了,对于多任务对应相同的处理人,这种方式的好处显而易见。

当然还可以在程序中动态指定处理人,如上taskInstance.setActorId("jeffen"),也可以通过泳道实例swimlaneInstance.setActorId("jeffen")指定。