jbpm4.4学习总结(三)常用接口使用说明
?
在jbpm4.4开发过程中,我们需要使用其提供的接口来完成任务,为什么我们要心甘情愿的被jbpm绑架呢?主要是因为它简单呗……
?
?
AssignmentHandler是jbpm为我们提供的一个绑定用户,分配任务的接口,我们可以通过实现这个接口来指定Task 的执行者,必须配合jpdl.xml下的标签和程序来使用,web环境下一般都是session中的用户。
?
举个例子:
?
一个员工提交一个请假申请,如果我们给这个Task添加一个AssignmentHandler,把员工的姓名绑定进去,那么jbpm就会知道,这个流程是这个员工创建的……
?
?按正常逻辑请假单已经提交到了领导那,我们可以通过再实现一个AssignmentHandler接口,通过AssignmentHandler动态的对流程实例定义Actor,将领导设置成task的执行者。这样做的好处就是灵活……
?
当领导登录时,session中是领导的姓名,领导查自己的任务列表就会看到那份员工提交的请假单了。
?
?
?
?
?
?
?
其中parentId是请假单提交的时候设定的,解释一下:员工提交请假单当然是提交到自己领导那了,于是我在提交请假单的方法中查找了一下自己领导的id,存在这个parentId中,到这里面在寻找这个人的姓名(领导的名字)通过assignable.setAssignee(e.getE_name_cn());??将这个Task的执行者设置成领导……于是乎当领导查自己的任务列表时,就能查到自己下属提交的请假单了
?
?
?
主要接收:流程实例id,创建人姓名,请假人id,本次总结我只想把jbpm的接口总结一下,关于流程的部分请看下部分。
?
?
?
到这里,有关AssignmentHandler的问题都差不多了
?
?
DecisionHandler接口的作用就是根据你给传入的条件进行判断,然后返回一条让你往下继续执行的线,就跟做决定一样。
?
?
获取前面流过来的"days" 然后返回那条线的名字就OK,XML配置见上文,so easy
?
这两个接口还是比较常用的,我用的方式是比较简单的,但是jbpm比我们想象的灵活多了,尤其是AssignmentHandler,可以加上权限等等,一个实现服务多个用户我觉得应该也是能实现的,唉~~设计模式没学好,晚上继续看!!!
?
?