1. 程式人生 > >jbpm4.4整合自己的使用者體系

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. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <jbpm-configuration>
  3.   <transaction-context>
  4.      <objectclass="com.shine.jbpm.UserSession"/>
  5.   </transaction-context>
  6. </jbpm-configuration>
其中class改成你的UserSession類。


      OK,現在在你的jpdl流程xml中的assignee和candidate-groups屬性值寫系統的使用者ID和角色ID即可。