Activiti之第一个程序以及Activiti插件的使用和Activiti表的解释

  • 目录
    • 概 述
      • 流程定义ZIp部署:`在这里插入代码片`
      • 相关流程如下:
    • 分析:
  • 小结:
  • 参考资料和推荐阅读

LD is tigger forever,CG are not brothers forever, throw the pot and shine forever.
Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people.
talk is cheap, show others the code and KPI, Keep progress,make a better result.
Survive during the day and develop at night。

目录

概 述

流程定义ZIp部署:在这里插入代码片

一、实现学生请假流程
用activiti插件生成bpmn和png文件:

ublic class StudentLeaveProcess {/*** 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件*/private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();/*** 部署流程定义*/@Testpublic void test_Deploy() {Deployment deployment = processEngine.getRepositoryService() // 获取部署相关Service.createDeployment()  创建部署.addClasspathResource("diagrams/StudentLeaveProcess.bpmn") // 加载资源文件.addClasspathResource("diagrams/StudentLeaveProcess.bpmn") // 加载资源文件.name("学生请假流程") // 流程名称.deploy(); // 部署System.out.println("流程部署ID:" + deployment.getId());System.out.println("流程部署Name:" + deployment.getName());}
}

更新流程部署表
更新流程定义表
更新资源文件表
更新系统配置表

相关流程如下:

1.2  启动流程实例:

 @Testpublic void start() {ProcessInstance instance=processEngine.getRuntimeService() // 运行时Service.startProcessInstanceByKey("StudentLeaveProcess");   // 流程定义表act_re_procdef的KEY字段值System.out.println("流程实例ID:"+instance.getId());System.out.println("流程定义ID:"+instance.getProcessDefinitionId()); }

此时流程学生请假这个节点,等待张三完成任务:
更新执行对象表
更新身份联系表,
更新 用户任务表,这里是张三的任务
更新活动节点历史表,如下图可知,张三的任务还没完成,所以END_TIME为空
更新历史身份联系表,流程走到这里暂时
更新历史任务表,目前只有张三的任务只有张三这个用户需要完成任务。
更新历史流程实例表,因为张三还没完成任务,所以END_TIME为空。
更新历史任务表,目前只有张三的任务。

1.3  查看张三的任务

/*** 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskAssignee("张三").list();for(Task task:taskList){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());}}

1.4  张三完成学生请假任务:
@Test
public void test_completeTask() {
processEngine.getTaskService().complete(“2504”);
}

分析:

更新执行对象表
更新身份联系表 ,这个流程走到现在需要张三和李四两个用户,张三已经完成任务
更新 用户任务表,这里是李四的任务
更新活动节点历史表,如下图可知,李四的任务还没完成,所以END_TIME为空
更新历史身份联系表
更新历史流程实例表
更新历史任务表:

  /*** 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskAssignee("李四").list();for(Task task:taskList){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());}}

1.6  李四完成班长审批任务

  /*** 完成任务*/@Testpublic void test_completeTask() {processEngine.getTaskService().complete("5002");}

更新执行对象表
更新身份联系表
更新 用户任务表,这里是王五的任务
更新活动节点历史表,如下图可知,王五的任务还没完成,所以END_TIME为空
更新历史身份联系表
更新历史流程实例表
更新历史任务表

1.7  查看王五任务

 * 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskAssignee("王五").list();for(Task task:taskList){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());}}

/**
* 完成任务
*/
@Test
public void test_completeTask() {
processEngine.getTaskService().complete(“7502”);
}
当流程结束的时候,运行时的表(以act_ru开头的表)数据全部清空,历史表(以act_hi开头的表)数据修改 或者增加了数据

小结:

参考资料和推荐阅读

1.链接: 参考资料.

(六)Activiti之实现学生请假流程相关推荐

  1. activiti+testng批量测试用例-请假流程

    介绍 本文以请假流程为例,演示一个activiti流程的流转.从而熟悉activiti核心的api调用 请假流程定义 待测试的流程路径 流程定义xml <?xml version="1 ...

  2. Activiti的Hello World——请假流程

    首先,eclipse添加activiti插件,操作自行百度. 新建一个activiti project,添加activiti.cfg.xml,设置数据库连接,注意MySQL中应已有activiti数据 ...

  3. 构建学生请假审批流程

    构建学生请假审批流程 标签(空格分隔): activiti 1.绘制流程图:start->学生请假申请->班长审批->班主任审批->end,对这个流程图文件命名为:Studen ...

  4. 基于 Spring Boot 2.x 使用 Activiti 创建一个简易的请假流程

    文章目录 1 摘要 2 准备工作 3 请假流程图 3 核心代码 3.1 数据库表 3.2 流程管理工具类 3.3 流程的使用 4 推荐参考资料 5 Github 源码 ​ ​ ​ 1 摘要 工作流是需 ...

  5. (附源码)基于SpringBoot的在线学生请假管理系统的设计与实现 毕业设计060935

    Springboot在线学生请假管理系统 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们 ...

  6. 基于SpringBoot的在线学生请假管理系统的设计与实现 毕业设计-附源码060935

    Springboot在线学生请假管理系统 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们 ...

  7. Activiti工作流(一):OA 上的那些请假流程如何快速实现呢?

    大家好,我是 杰哥 在公司中,每个人都需要经常创建或者审批一些流程,比如说转正申请.请假流程.出差申请等等 那么,你有没有想过,要是你,你会如何实现这些流程的控制逻辑呢? 比如说请假申请,首先需要提前 ...

  8. 【Activiti工作流】5. 简单请假流程

    1. 画出流程图 使用之前安装的Eclipse的流程设计器,画出如下流程图: 1.1 设置开始节点 在properties中选中Main config:设置如下: 然后选中Form,设置如下: 具体操 ...

  9. Activiti(二)简单请假流程实现

    在SpringBoot2集成Activiti6的环境中,实现简单的请假流程.编写请假业务流程.流程业务为: 1,员工请假,先创建请假流程 2,员工填写请假申请,也可以不填写,直接结束流程 3,提交给直 ...

最新文章

  1. 教程 | 如何在手机上使用TensorFlow
  2. 面试者让金山负责webgame的高管崩溃了!
  3. Java高级特性:clone()方法
  4. 简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
  5. 分布式事务中间件 Fescar - 全局写排它锁解读 1
  6. [转载] python类运算符的重载
  7. mysql 队列存储_GitHub - hongliangbest/QueueTask: 一个轻量级可拓展的队列任务、暂时支持mysql、redis等存储方式...
  8. vue img src 动态赋值_一个基于Vue的开源延迟加载插件——vuelazyload
  9. How to create a angular2 project process
  10. 鼎利软件测试终端刷机,你怎样把鼎利路测设备调试好?
  11. matlab小船渡河物理模型,高中物理 | 小船渡河模型和斜拉船模型
  12. 【C语言入门游戏】三子棋的实现———【保姆级教学】
  13. echarts 使用zoom属性的影响
  14. springboot 问题记录
  15. django 快速实现文件上传(django2.0)
  16. Abaqus GUI程序开发之常用的Abaqus内核指令(一)
  17. 怎样用matlab建立igbt的仿真分析模型,基于MATLAB/Simulink的IGBT导通模型研究
  18. Python建模常用代码
  19. java购书管理系统代码_Java Web 网上书店管理系统
  20. linux网卡速率和双工模式的配置

热门文章

  1. C# flash player 制作
  2. lol云顶之奕助手_LOL云顶之弈助手app下载-LOL云顶之弈助手官网版下载v1.1.2-FC游戏网...
  3. 决定局域网特性的三要素是什么
  4. vue实现视频播放器功能,你学会了吗
  5. NAND flash 基础知识
  6. graylog+kafka+zookeeper(单机测试及源码),graylog收集kafka(脚本创建发布订阅方式)存储的消息(四)
  7. 两台电脑如何直接用一根网线传数据(终极篇)
  8. 嵌入式arm板linux路由表设置
  9. 过流保护的几种实现方式
  10. 【51单片机】 ULN2003模块 驱动步进电机(5线)正反转 代码以及接线图(简单教学,一看就会)