jbpm4.4整合自己的用户体系 【转】

虽然jbpm4中已经有用户体系,但实际项目中也会有自己的用户体系,我们肯定希望在jbpm4中用我们自己系统的用户体系,那这要怎样整呢,当然jbpm4已经提供了接口,我用一个简单的例子来说下。

      jbpm中有分组的概念,但我们系统中也许没有分组,不过角色总该有吧,那我就用角色来当jbpm中的分组好了,具体步骤如下。

      1、找到角色实体类,比如类名叫Role,我们让它实现org.jbpm.api.identity.Group接口,这个接口中有几个方法需要实现, 其中getId方法我们返回Role的id,getName可以返回Role的name,getType返回"candidate",这里起到作用的也就 getId方法,其余返回null也可以。

    
      2、新建类,比如类名叫UserSession,实现 org.jbpm.pvm.internal.identity.spi.IdentitySession接口,这个接口也有一些方法需要实现,先不管怎 么实现这些方法,有返回值的给它返回null,没有的就空着吧。然后找到public List<Group> findGroupsByUser(String userId)这个方法,这方法的作用是通过用户ID查询并返回角色列表,那我们就通过传入的用户ID查询到对应的Role呗,之前我们已经让Role实 现org.jbpm.api.identity.Group接口了,所以将查到的Role加如List返回即可。

      3、编码工作就到这里,接下来在源文件夹新建文件命名为jbpm.identity.cfg.xml,内容如下:

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < jbpm-configuration >   
  3.   < transaction-context >   
  4.      < object   class = "com.shine.jbpm.UserSession" />   
  5.   </ transaction-context >   
  6. </ jbpm-configuration >   

其中class改成你的UserSession类。


      OK,现在在你的jpdl流程xml中的assignee和candidate-groups属性值写系统的用户ID和角色ID即可。

猜你喜欢

转载自nhy520.iteye.com/blog/1318492