利用JBPM4.4的AssignmentHandler实现用户角色整合另一种构思
Jbpm4提供的IdentitySession接口并不是一种很好的处理方式,鉴于我们每个业务系统都有一套自己的用户及权限认证管理机制,需要与jbpm4.4集成的话,就比较周折了,我们经常需要查询的就是用户自己的任务。jbpm4的任务里有一个比较好的任务人员指派定义方式,就是使用AssignmentHandler接口,其定义如下所示:
?
?以上的userIds的1,以及roleIds的1,2则代表我们系统中的用户id与角色的id,其值由后台用户在后面通过界面来设置。
?
其设置后,就生成以上的代码写至jbpm4_lob表中的blobvalue字段中去则可,这是持久化的处理。
?
也可以临时调用类似以下的代码动态实现以上效果:
?
?
不过该方式没有持久久,重启系统后,保存的用户及角色设置并不会生效。
?
UserAssignHandler类代码如下:
?
?
?
</field>
</assignment-handler>
你好,请问如果我在定义中这样写,又想在代码中也可以动态给org.jbpm.examples.task.assignmenthandler.AssignTask传递参数,该怎样做?
(如果在表单选了指派人,则只分派给所选的人,否则默认分派给johndoe)//在表单提交中指定了固定的执行人员
if(StringUtils.isNotEmpty(assignId)){
assignable.setAssignee(assignId);
return;
}
这样的话如果execution.getVariable(Constants.FLOW_ASSIGN_ID)获取到的值不为空,那该流程的后面每一步都能取到该值?
如果在流程的第一个表单选择指派一个人,然后之后的环节又不指派人,那不是后面的环节都只有这个指派的人有权限么?