一、因为加入了不同的分支流向,所以当审批不通过要驳回时JBPM应该能够得到当初提交任务的参与者,
而这个工作通过直接用actor-id=#{}来实现并不合适,因为如果有很多这样的指定的话,
可能会乱套,JBPM提供了一个专门能解决该问题的机制。
解决方法:使用泳道,它是定义流程中的多个任务由相同参与者完成的一种机制,这使的泳道正好能够完成任务。
在第一个任务实例为指定泳道创建后,参与者将被流程记住,以被在同一泳道中的后续任务所使用。
泳道有一个分配,因此所有引用泳道的任务不需要再指定分配。
**注意:可以在<start-state>开始节点添加一个任务<task>,用swimlane机制来记录流程的启动者
**实现:这里实现了泳道机制
用法:一般放到流程定义文件顶部的位置定义<swimlane>
<swimlane name="swimlane名字供task应用">
<assignment class="处理类名字"/>
</swimlane>
或
<swimlane name="swimlane名字供task应用">
<!--当然这里也可以写死,即actor-,我们又加入了一个人力资源经理,也就是登陆界面加入了一个下拉框选项,这样增加一个参与者。
三、对流程定义中的分配任务参与者机制再次修改:将部门经理审批中通过actor-id写死的值,改成通过class类来动态指定actor-id的值,
即指定一个类名,然后该类要实现AssignmentHandler接口,实现类中的方法会在执行到对应的任务之前被调用,以便顺利分配任务
的参与者