zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    19.SimLogin_case07
    19.SimLogin_case06
    19.SimLogin_case05
    19.SimLogin_case04
    19.SimLogin_case03
    闲说性能测试
    iostat命令详解
    Linux vmstat命令实战详解
    RAC集群节点故障模拟测试
    Oracle RAC功能测试
  • 原文地址:https://www.cnblogs.com/peak-c/p/5692589.html
Copyright © 2011-2022 走看看