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-模拟流程执行(三)相关推荐

  1. Activiti——流程执行历史记录(七)

    转自:http://blog.csdn.net/zjx86320/article/details/50363544 之前的几篇文章,为大家简单的介绍了部署流程定义.启动流程实例.查看和办理个人任务以及 ...

  2. Activiti——工作流之流程实例、任务的执行(五)

    转自:http://profound-accumulation.iteye.com/blog/2244881 一.流程图   二.部署流程定义 /**部署请假流程(从zip)*/ @Test publ ...

  3. Activiti基础教程--07流程执行历史记录(历史任务、历史流程实例、历史活动)

    相关代码参考gihub:https://github.com/changwensir/Activiti/tree/master/ActivitiDemo1 一.Activiti 历史任务查询 实际工作 ...

  4. Activiti流程执行历史数据查询

    代码: HistoryQueryTest.java package com.ytdx.historyQuery;import java.util.List;import org.activiti.en ...

  5. 【Android 异步操作】AsyncTask 异步任务 ( FutureTask 模拟 AsyncTask 执行过程 | AsyncTask 执行过程回顾 | FutureTask 分析 )

    文章目录 一.FutureTask 使用流程 二.FutureTask 模拟 AsyncTask 执行过程 三.AsyncTask 执行过程回顾 四.FutureTask 分析 一.FutureTas ...

  6. jeesite中activiti中的流程表梳理

    最近在利用jeesite开发一个小系统,趁着这个机会整理了activiti中的相关表,跟踪流程,然后查看这几个表中数据的变化,可以更好地理解流程的开发.现在整理出来,希望可以帮助更多的人! 表结构 一 ...

  7. 【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

    [Activity学习五]--基于SSM整合Activiti之请假流程实现(二) 1.部署流程资源 2.查询流程定义信息 3.发布请假流程 4.查询用户任务 5.提出请假 6.老板查看请假任务 7.老 ...

  8. springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)

    springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三) 例: package com.example.demo.service;import com.exa ...

  9. TCP协议通讯流程(三次握手及四次挥手)

    TCP协议通讯流程(三次握手及四次挥手) 文章目录 TCP协议通讯流程(三次握手及四次挥手) 一.服务器端 二.客户端 三.三次握手四次挥手 三.具体流程 四.相关注意事项 一.服务器端 调用sock ...

最新文章

  1. Java 组合模式及其应用
  2. PowerShell导出共存环境下的Exchange数据库列表
  3. 8、SpringBoot-CRUD默认访问的首页以及thyleaf的静态文件引入/WebMvcConfigurer / WebMvcConfigurationSupport...
  4. git中的gitgnore是什么? 码云gitee
  5. UVALive 7143 Room Assignment(组合数学+DP)(2014 Asia Shanghai Regional Contest)
  6. 分块编码(Transfer-Encoding: chunked)
  7. Java基础知识梳理(五)从源码了解字符串
  8. 每日一道剑指offer-二叉树的镜像
  9. windows下载和安装gcc编译器(MinGW)及其环境配置(C语言编译环境配置)
  10. 驾校一点通电脑版客户端 v7.1 最新PC版
  11. resnet152训练_ResNet改进版来了!可训练网络超过3000层!相同深度精度更高
  12. Excel中去重并只保留最近n次日期/最大最小值的数据
  13. c语言编写用户注册程序,如何用c实现登录和注册的程序?
  14. hdu 5294 Tricks Device(最短路)
  15. postgresql 手动启动_PostGreSql 手动安装
  16. 计算机vb里代码里的双引号,在VB中使用字符串中的左双引号
  17. 董树义 近代微波测量技术_本土IC领域又一关键技术获得突破!
  18. 【ultraiso制作ubuntu启动盘(包括U盘和光盘)】
  19. 蜂鸟E200、E203的GPIO仿真demo
  20. SNS(社会性网络服务)

热门文章

  1. Python 常用内置函数map、zip、filter、reduce、enumerate
  2. 王道考研 计算机网络笔记 第四章:网络层
  3. 绝招消除电脑自动弹出垃圾广告和网页
  4. 物联网安全只有最薄弱的环节才有保障
  5. 2021年大数据Flink(二十六):​​​​​​​State代码示例
  6. 2021年大数据Spark(十九):Spark Core的​​​​​​​共享变量
  7. Python:爬虫框架Scrapy的安装与基本使用
  8. Android AlertDialog设置宽度显示不正常的问题
  9. Java中的对象和包
  10. 多媒体音量条显示异常跳动