Activiti——HelloWorld-模拟流程执行(三)
1.流程图
【流程原图】 | 【注释图】 |
2.部署流程定义
/*** 部署流程定义*/@Testpublic void deploymentProcessDefinition() {Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service.createDeployment()// 创建一个部署对象.name("HelloWorld入门程序")// 添加部署的名称.addClasspathResource("diagrans/helloword.bpmn")// 从类路径(classpath)下加载文件,一次只能加载一个文件.addClasspathResource("diagrans/helloword.png")// 从类路径(classpath)下加载文件,一次只能加载一个文件.deploy();// 完成部署System.out.println("=======打印部署对象信息========");System.out.println("流程ID:" + deployment.getId());// 流程ID:2501System.out.println("流程部署名称:" + deployment.getName());// 流程部署名称:HelloWorld入门程序System.out.println(deployment);// DeploymentEntity[id=1,name=HelloWorld入门程序]}
这里使用RepositoryService部署流程定义
addClasspathResource 从类路径(classpath)下加载文件,一次只能加载一个文件
3.启动流程实例
/*** 启动流程实例*/@Testpublic void startProcessInstance() {// 流程定义的KeyString processDefinitionKey = "helloworld";ProcessInstance processInstance = processEngine.getRuntimeService()// 与正在执行的流程实例和执行对象相关的Service.startProcessInstanceByKey(processDefinitionKey);// 使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性System.out.println("流程实例ID:" + processInstance.getId());// 流程实例ID:5001System.out.println("流程定义ID:" + processInstance.getProcessDefinitionId());// 流程定义ID:helloworld:1:2504}
这里使用RuntimeService启动流程实例
4.查看个人任务
/*** 查看我的个人任务*/@Testpublic void queryMyTasks() {String assignee = "张三";List<Task> list = processEngine.getTaskService()// 获得任务相关的Service.createTaskQuery()// 创建任务查询对象.taskAssignee(assignee)// 指定个人任务查询:办理人.list();// 任务列表打印if (list != null && list.size() > 0) {for (Task task : list) {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());System.out.println("==============快乐分割线=================");}}/**打印预期效果:任务ID:5004任务名称:提交申请任务的创建时间:Mon Jun 05 16:16:47 CST 2017任务的办理人:张三流程实例ID:5001执行对象ID:5001流程定义ID:helloworld:1:2504==============快乐分割线=================*/}
这里使用TaskService完成任务查询
4.完成我的任务
/*** 完成我的任务*/@Testpublic void completeMyTasks() {String taskId = "5004";processEngine.getTaskService()//获取正在执行任务管理相关的Service.complete(taskId);System.out.println("完成的任务ID:"+taskId);}
备注:此时流程依次执行的顺序是
【张三】发起申请(启动流程实例)——> 【张三】查看个人任务并完成任务——> 【李四】查看个人任务并完成任务——>【王五】查看个人任务并完成任务——>流程结束。
源码下载
Activiti——HelloWorld-模拟流程执行(三)相关推荐
- Activiti——流程执行历史记录(七)
转自:http://blog.csdn.net/zjx86320/article/details/50363544 之前的几篇文章,为大家简单的介绍了部署流程定义.启动流程实例.查看和办理个人任务以及 ...
- Activiti——工作流之流程实例、任务的执行(五)
转自:http://profound-accumulation.iteye.com/blog/2244881 一.流程图 二.部署流程定义 /**部署请假流程(从zip)*/ @Test publ ...
- Activiti基础教程--07流程执行历史记录(历史任务、历史流程实例、历史活动)
相关代码参考gihub:https://github.com/changwensir/Activiti/tree/master/ActivitiDemo1 一.Activiti 历史任务查询 实际工作 ...
- Activiti流程执行历史数据查询
代码: HistoryQueryTest.java package com.ytdx.historyQuery;import java.util.List;import org.activiti.en ...
- 【Android 异步操作】AsyncTask 异步任务 ( FutureTask 模拟 AsyncTask 执行过程 | AsyncTask 执行过程回顾 | FutureTask 分析 )
文章目录 一.FutureTask 使用流程 二.FutureTask 模拟 AsyncTask 执行过程 三.AsyncTask 执行过程回顾 四.FutureTask 分析 一.FutureTas ...
- jeesite中activiti中的流程表梳理
最近在利用jeesite开发一个小系统,趁着这个机会整理了activiti中的相关表,跟踪流程,然后查看这几个表中数据的变化,可以更好地理解流程的开发.现在整理出来,希望可以帮助更多的人! 表结构 一 ...
- 【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)
[Activity学习五]--基于SSM整合Activiti之请假流程实现(二) 1.部署流程资源 2.查询流程定义信息 3.发布请假流程 4.查询用户任务 5.提出请假 6.老板查看请假任务 7.老 ...
- springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)
springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三) 例: package com.example.demo.service;import com.exa ...
- TCP协议通讯流程(三次握手及四次挥手)
TCP协议通讯流程(三次握手及四次挥手) 文章目录 TCP协议通讯流程(三次握手及四次挥手) 一.服务器端 二.客户端 三.三次握手四次挥手 三.具体流程 四.相关注意事项 一.服务器端 调用sock ...
最新文章
- Java 组合模式及其应用
- PowerShell导出共存环境下的Exchange数据库列表
- 8、SpringBoot-CRUD默认访问的首页以及thyleaf的静态文件引入/WebMvcConfigurer / WebMvcConfigurationSupport...
- git中的gitgnore是什么? 码云gitee
- UVALive 7143 Room Assignment(组合数学+DP)(2014 Asia Shanghai Regional Contest)
- 分块编码(Transfer-Encoding: chunked)
- Java基础知识梳理(五)从源码了解字符串
- 每日一道剑指offer-二叉树的镜像
- windows下载和安装gcc编译器(MinGW)及其环境配置(C语言编译环境配置)
- 驾校一点通电脑版客户端 v7.1 最新PC版
- resnet152训练_ResNet改进版来了!可训练网络超过3000层!相同深度精度更高
- Excel中去重并只保留最近n次日期/最大最小值的数据
- c语言编写用户注册程序,如何用c实现登录和注册的程序?
- hdu 5294 Tricks Device(最短路)
- postgresql 手动启动_PostGreSql 手动安装
- 计算机vb里代码里的双引号,在VB中使用字符串中的左双引号
- 董树义 近代微波测量技术_本土IC领域又一关键技术获得突破!
- 【ultraiso制作ubuntu启动盘(包括U盘和光盘)】
- 蜂鸟E200、E203的GPIO仿真demo
- SNS(社会性网络服务)
热门文章
- Python 常用内置函数map、zip、filter、reduce、enumerate
- 王道考研 计算机网络笔记 第四章:网络层
- 绝招消除电脑自动弹出垃圾广告和网页
- 物联网安全只有最薄弱的环节才有保障
- 2021年大数据Flink(二十六):​​​​​​​State代码示例
- 2021年大数据Spark(十九):Spark Core的​​​​​​​共享变量
- Python:爬虫框架Scrapy的安装与基本使用
- Android AlertDialog设置宽度显示不正常的问题
- Java中的对象和包
- 多媒体音量条显示异常跳动