Activiti(工作流)如何關聯業務表


 注(version:5.15.1)

1.部署流程(定義流程)

1 InputStream in = new FileInputStream(file);
2 ZipInputStream zipInputStream = new ZipInputStream(in);
3 processEngine.this.getRepositoryService()
4              .createDeployment()
5              .name(processName)
6              .addZipInputStream(zipInputStream)
7              .deploy();
View Code

 

2.啟動流程(所定義流程的一個實例)

1 processEngine().getRuntimeService()
2          /**第二個參數是businesskey:業務工單的主鍵,作為區分,一般流程名+id,當然如果id為uuid則無所謂 */
3          .startProcessInstanceByKey("leave", "leaveBill", variables);
View Code

這樣,業務表就與activiti的表關聯起來了(一般為了方便,業務表里也會存一個processId)

其內部表之間關聯如下

 

3.查看某人的任務

 1 /**
 2      * 當前登錄人登錄系統以后要執行的任務(包含個人任務+組任務)
 3      */
 4     public List<Task> getTasksByAssignee(String userId){
 5         List<Task> assigneeTasks =  this.getTaskService()
 6                 .createTaskQuery()
 7                 .taskAssignee(userId)//參與者,個人任務查詢 
 8                 .orderByTaskCreateTime()
 9                 .desc()
10                 .list();
11         List<Task> candidateTasks = this.getTaskService() 
12                 .createTaskQuery()  
13                 .taskCandidateUser(userId)//參與者,組任務查詢  
14                 .orderByTaskCreateTime()
15                 .desc()
16                 .list();
17         assigneeTasks.addAll(candidateTasks);
18         return assigneeTasks;
19     }
View Code

 

4.根據task -》 processInstance  -》 businessKey -》 業務表

 1     /**
 2      * 根據taskId查找businessKey
 3      */
 4     public String getBusinessKeyByTaskId(String taskId){
 5         Task task = this.processEngine
 6                 .getTaskService()
 7                 .createTaskQuery()
 8                 .taskId(taskId)
 9                 .singleResult();
10         ProcessInstance pi = this.getRuntimeService()
11                 .createProcessInstanceQuery()
12                 .processInstanceId(task.getProcessInstanceId())
13                 .singleResult();
14         return pi.getBusinessKey();
15     }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM