当前位置: 首页 > news >正文

activiti学习--05流程实例:部署流程定义+部署流程定义+查询当前人的个人任务+完成我的任务...

流程实例的一些表

Execution   执行对象
 按流程定义的规则执行一次的过程.
 对应的表:
  act_ru_execution: 正在执行的信息
  act_hi_procinst:已经执行完的历史流程实例信息
  act_hi_actinst:存放历史所有完成的活动
ProcessInstance  流程实例
 特指流程从开始到结束的那个最大的执行分支,一个执行的流程中,流程实例只有1个。

注意
    (1)如果是单例流程,执行对象ID就是流程实例ID
    (2)如果一个流程有分支和聚合,那么执行对象ID和流程实例ID就不相同
    (3)一个流程中,流程实例只有1个,执行对象可以存在多个。

Task 任务
 执行到某任务环节时生成的任务信息。
 对应的表:
  act_ru_task:正在执行的任务信息
  act_hi_taskinst:已经执行完的历史任务信息

部署流程定义

    /**部署流程定义*/
    @Test
    public void deploymentProcessDefinition1(){
        InputStream inputStreamBpmn = this.getClass().getResourceAsStream("askForLeave.bpmn");
        InputStream inputStreamPng = this.getClass().getResourceAsStream("askForLeave.png");
        Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service
                .createDeployment()// 创建一个部署对象
                .name("请假申请流程定义")// 添加部署的名称
                .addInputStream("askForLeave.bpmn", inputStreamBpmn)
                .addInputStream("askForLeave.png", inputStreamPng)
                .deploy();// 完成部署
        System.out.println("部署ID:"+deployment.getId());
        System.out.println("部署名称:"+deployment.getName());  
        System.out.println("部署时间:"+deployment.getDeploymentTime()); 
//        输出:
//        部署ID:1301
//        部署名称:请假申请流程定义
//        部署时间:Tue Sep 05 22:02:46 CST 2017
    }

启动流程实例


    @Test
    public void startProcessInstance(){
        //流程定义的key.,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动
        String processDefinitionKey = "askForLeave";
        ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service
                        .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例,
        System.out.println("流程实例ID:"+pi.getId());// 
        System.out.println("流程定义ID:"+pi.getProcessDefinitionId());// 
//      输出:
//      流程实例ID:1401
//      流程定义ID:askForLeave:8:1304
    }

影响的表
ACT_RE_PROCDEF:流程定义表
这里写图片描述
ACT_RU_TASK(只有节点为UserTask该表才会有数据):正在执行的任务表
这里写图片描述
ACT_RU_EXECUTION:正在执行的执行对象表
这里写图片描述
ACT_HI_PROCINST:流程实例历史表
这里写图片描述
ACT_HI_TASKINST(只有节点为UserTask该表才会有数据):任务历史表
这里写图片描述

ACT_HI_ACTINST:所有活动的历史表
这里写图片描述

注意:PROC_INST_ID_为流程实例id

查询当前人的个人任务

    /**查询当前人的个人任务*/
    @Test
    public void findMyPersonalTask(){
        String assignee = "小黄";
        List<Task> list = processEngine.getTaskService()//与正在执行的任务管理相关的Service
                        .createTaskQuery()//创建任务查询对象
                        /**查询条件(where部分)*/
                        .taskAssignee(assignee)//指定个人任务查询,指定办理人
//                      .taskCandidateUser(candidateUser)//组任务的办理人查询
//                      .processDefinitionId(processDefinitionId)//使用流程定义ID查询
//                      .processInstanceId(processInstanceId)//使用流程实例ID查询
//                      .executionId(executionId)//使用执行对象ID查询
                        /**排序*/
                        .orderByTaskCreateTime().asc()//使用创建时间的升序排列
                        /**返回结果集*/
//                      .singleResult()//返回惟一结果集
//                      .count()//返回结果集的数量
//                      .listPage(firstResult, maxResults);//分页查询
                        .list();//返回列表
        if(list!=null && list.size()>0){
            System.out.println("--关联表:  ACT_RU_TASK----");
            for(Task task:list){
                   System.out.println("--------"+task.getAssignee()+"任务:"+task.getName()+"-----------------");
                    System.out.println("任务ID:"+task.getId());
                    System.out.println("任务名称:"+task.getName());
                    System.out.println("任务的创建时间:"+task.getCreateTime());
                    System.out.println("任务的办理人:"+task.getAssignee());
                    System.out.println("流程实例ID:"+task.getProcessInstanceId());
                    System.out.println("执行对象ID:"+task.getExecutionId());
                    System.out.println("流程定义ID:"+task.getProcessDefinitionId());
            }
        }

    }

输出:
--关联表:  ACT_RU_TASK----
--------小黄任务:请假申请-----------------
任务ID:1404
任务名称:请假申请
任务的创建时间:Tue Sep 05 22:09:10 CST 2017
任务的办理人:小黄
流程实例ID:1401
执行对象ID:1401
流程定义ID:askForLeave:8:1304

完成我的任务

    /**完成我的任务*/
    @Test
    public void completeMyPersonalTask(){
        //任务ID
        String taskId = "1404";
        processEngine.getTaskService()//与正在执行的任务管理相关的Service
                    .complete(taskId);
        System.out.println("完成任务:任务ID:"+taskId);
//      输出:
//      完成任务:任务ID:1404
    }

影响的表:

ACT_HI_ACTINST:所有活动的历史表
有变化

ACT_HI_TASKINST(只有节点为UserTask该表才会有数据):任务历史表
小黄记录:结束时间变为有数据
添加陈经理的任务记录


ACT_HI_PROCINST:流程实例历史表
没有变化



ACT_RU_EXECUTION:正在执行的执行对象表
act_id 改变(下一节点的id)



ACT_RU_TASK(只有节点为UserTask该表才会有数据):正在执行的任务表
名称和代理人变了(变为下一人任务节点的名称和代理人)

转载于:https://www.cnblogs.com/feiZhou/p/9344116.html

相关文章:

  • will-change
  • 京东研发编程马拉松 从实践出发历练人才
  • SUSE 磁盘分区表格式
  • 难受!!!!!!!被歧视了
  • 高德地图发布上海迪士尼出行攻略 独家上线智慧景区解决方案
  • 从尾到头打印链表
  • UI组件库jQWidgets更新至v5.2.0,新增Angular枢轴网格丨附下载
  • 干净的架构The Clean Architecture_软件架构系列
  • SEO优化:网站优化的swot介绍分析
  • Eclipse基金会发布Eclipse Photon IDE
  • win10下安装mysql5.7
  • 通过示例来学习ES2016, 2017, 2018的新特性
  • 从团队级到企业级 Worktile推动企业转型、升级
  • jupyter notebook常用快捷键
  • Java代码性能优化总结
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • HashMap剖析之内部结构
  • js操作时间(持续更新)
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Mithril.js 入门介绍
  • Netty 4.1 源代码学习:线程模型
  • Node项目之评分系统(二)- 数据库设计
  • PHP 小技巧
  • Promise面试题,控制异步流程
  • Tornado学习笔记(1)
  • 机器学习学习笔记一
  • 浏览器缓存机制分析
  • 实习面试笔记
  • 小程序button引导用户授权
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​ubuntu下安装kvm虚拟机
  • ​人工智能书单(数学基础篇)
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (Forward) Music Player: From UI Proposal to Code
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法)Travel Information Center
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)EOS中账户、钱包和密钥的关系
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .bat批处理(一):@echo off
  • .net mvc部分视图
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .netcore 获取appsettings
  • .NET连接MongoDB数据库实例教程
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @ModelAttribute 注解
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解