zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    て和で用法的总结
    假如程序员上热搜是什么样的?网友:毫无违和感!
    一年精通,三年熟悉,五年了解,十年用过!C++真的这么难吗?
    新手上路,“hello word”其实是在告诉计算机又有菜鸟来了!
    从原理到方法,一步到位,教你如何应对C语言内存泄露!
    冰冷的英语字母,枯燥的编程教程,果断选择了放弃!真的吗?
    只有了解程序员的黑话,和他们打成一片获得buff加成,产品才能尽早上线!
    C语言编程小游戏「石头剪刀布」!源码分享~
    一行代码卖出570美元,什么样的代码能这么值钱?带你揭秘天价代码的内幕!
    源码解剖HashMap
  • 原文地址:https://www.cnblogs.com/Ruiwy/p/6382600.html
Copyright © 2011-2022 走看看