• activiti的简单查询


    1  启动流程

      RuntimeService rts = processEngine.getRuntimeService();   

       ProcessInstance   pinstance = rts.startProcessInstanceByKey("myProcessId");  

     //使用流程定义Key启动流程 按照最新版本启动

       System.out.println(pinstance.getActivityId());   // usertask1
       System.out.println(pinstance.getId());   // 5001

    查看数据:

    SELECT *  FROM  act_ru_execution

    SELECT *  FROM  act_ru_task

    2  完成当前已启动的任务

     this.processEngineCfg.getTaskService().complete("5004");   // 5004 为 act_ru_task 的主机id

     查看流程情况: SELECT *  FROM   act_hi_taskinst

    3 查询流程定义

    List<ProcessDefinition> pDeflist = this.processEngineCfg.getRepositoryService()
    .createProcessDefinitionQuery()
    .orderByProcessDefinitionVersion().asc().list();

    if(pDeflist!=null && pDeflist.size()>0){

    for(ProcessDefinition pdef:pDeflist){
    System.out.println("------------------------------------------------");
    System.out.println("流程定义id "+pdef.getId());
    System.out.println("流程定义的名称 "+pdef.getName());
    System.out.println("流程定义的Key "+pdef.getKey());
    System.out.println("流程定义的版本 "+pdef.getVersion());
    System.out.println("资源名称bpmn文件 "+pdef.getResourceName());
    System.out.println("资源名称png文件 "+pdef.getDiagramResourceName());
    System.out.println("部署id "+pdef.getDeploymentId());

    }


    }

    输出结果如下:

    ------------------------------------------------
    流程定义id myProcessId:1:2504
    流程定义的名称 Myprocess
    流程定义的Key myProcessId
    流程定义的版本 1
    资源名称bpmn文件 diagrams/MyProcess.bpmn
    资源名称png文件 diagrams/MyProcess.png
    部署id 2501
    ------------------------------------------------
    流程定义id myProcessId:2:12504
    流程定义的名称 Myprocess
    流程定义的Key myProcessId
    流程定义的版本 2
    资源名称bpmn文件 diagrams/MyProcess.bpmn
    资源名称png文件 diagrams/MyProcess.png
    部署id 12501

    4  删除流程定义:

    删除前,已经启动两个流程,表task中也有对应的数据


    RepositoryService repositoryService = this.processEngineCfg.getRepositoryService();

    repositoryService.deleteDeployment("12501");   //执行删除 或者  repositoryService.deleteDeployment("12501",true); 级联删除

    删除后数据如下:

    表task中相对应的数据也删除

    5 设置流程变量 

     方式1:以在流程启动,和任务执行的时候设置

    RuntimeService rts = this.processEngineCfg.getRuntimeService();
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("ids", "ids-v");
    map.put("nams", "nams-v");
    map.put("others", "others-v");
    ProcessInstance pinstance = rts.startProcessInstanceByKey("myProcessId",map);

     

     方式二   通过taskService或者runtimeService设置

    SELECT *  FROM act_ru_task  WHERE execution_id_='15001'  得到 taskid 为 15007

    TaskService taskService = this.processEngineCfg.getTaskService();

    String taskid="15007";

    taskService.setVariable(taskid, "请假天数", "7天");
    taskService.setVariable(taskid,"请假原因", "事假");
    taskService.setVariable(taskid,"请假日期", new Date());

    Person person = new Person();
    person.setAge(30);
    person.setName("张三丰");
    person.setPid("00002");
    taskService.setVariable(taskid,"相对人信息", person);

     

    查询操作结果:

    其中 

    可以在表 act_ge_bytearray 中进行数据查询:

     5 设置流程变量 

    TaskService taskService = this.processEngineCfg.getTaskService();

    String taskid="15007";

    System.out.println("请假天数 : "+ taskService.getVariable(taskid, "请假天数"));

    System.out.println("请假日期 : "+ taskService.getVariable(taskid, "请假日期"));

    Person person = (Person) taskService.getVariable(taskid, "相对人信息");

    System.out.println("请假人信息 年龄:"+person.getAge()+" 姓名:"+person.getPid());

    输出结果如下:

    请假天数 : 7天
    请假日期 : Thu Feb 09 15:42:37 CST 2017
    请假人信息 年龄:30 姓名:00002

  • 相关阅读:
    深度学习大牛Yoshua Bengio
    mysql select简单用法
    CF 191 div2
    MySQL 讨厌哪种类型的查询
    Python 中的list小结
    定时器常用的两种工作方式及编程要点
    Linux下which、whereis、locate、find 区别
    Dalvik虚拟机的优化机制
    [leetcode]Partition List
    tomcat:Could not publish to the server. java.lang.IndexOutOfBoundsException
  • 原文地址:https://www.cnblogs.com/Ruiwy/p/6382600.html
Copyright © 2020-2023  润新知