ProcessInstance代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。
package com.liuzm.activiti.day1; import java.util.List; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstanceQuery; import org.activiti.engine.task.Task; import org.junit.Test; //ProcessInstance(流程实例) : 按照某规则,一次实际的执行 public class ProcessInstanceTest { // 获取核心ProcessEngine类 private ProcessEngine processEngine = ProcessEngines .getDefaultProcessEngine(); // 1. 启动流程 @Test public void startProcess() throws Exception { // 获取服务对象 RuntimeService runtimeService = processEngine.getRuntimeService(); // 通过ID启动流程,可以指定启动一个流程 // runtimeService.startProcessInstanceById(processDefinitionId) // 通过key启动流程,可以自动启动最新版本的那一个规则 String processDefinitionKey = "myProcess"; ProcessInstance processInstance = runtimeService .startProcessInstanceByKey(processDefinitionKey); System.out.println(processInstance); } // 2. 查看任务(私有) @Test public void queryPersonalTask() throws Exception { // 获取服务 TaskService taskService = processEngine.getTaskService(); // String assignee = "范爷"; List<Task> list = taskService.createTaskQuery().taskAssignee(assignee) .list(); System.out.println("=================【" + assignee + "】的私有任务列表======================================"); for (Task task : list) { System.out.println("id:" + task.getId() + ",name:" + task.getName() + ",assignee:" + task.getAssignee() + ",createTime:" + task.getCreateTime()); } } // 共有任务查看 @Test public void queryCommonTask() throws Exception { TaskService taskService = processEngine.getTaskService(); // 查询 String candidateUser = "范爷助理"; List<Task> list = taskService.createTaskQuery() .taskCandidateUser(candidateUser).list(); System.out.println("=================【" + candidateUser + "】的公有任务列表======================================"); for (Task task : list) { System.out.println("id:" + task.getId() + ",name:" + task.getName() + ",assignee:" + task.getAssignee() + ",createTime:" + task.getCreateTime()); } } // 3. 认领任务 @Test public void claimTask() throws Exception { TaskService taskService = processEngine.getTaskService(); // String taskId = "504"; String userId = "范爷经纪人"; taskService.claim(taskId, userId); } // 4. 办理任务 @Test public void completeTask() throws Exception { TaskService taskService = processEngine.getTaskService(); // 办理任务 String taskId = "504"; taskService.complete(taskId); } // 5. 查看流程的状态 @Test public void viewProcessState() throws Exception { // 获取服务 RuntimeService runtimeService = processEngine.getRuntimeService(); // 获得流程实例 ProcessInstanceQuery query = runtimeService .createProcessInstanceQuery(); // 添加查询条件 String processDefinitionId = "1701"; query.processDefinitionId(processDefinitionId); // 查询 ProcessInstance singleResult = query.singleResult(); // 显示流程状态 if (singleResult != null) { System.out.println("当前流程在: " + singleResult.getActivityId()); } else { System.out.println("流程已经结束!"); } } }
相关推荐
Activiti(Flowable) 流程实例克隆解决方案1
流程部署完成后,每启动一次流程就是一个流程实例。 (一)根据流程定义key启动流程实例 (二)启动流程实例的时候指定businesskey(业务标识) (三)查询流程实例 (四)删除已经部署成功的流程 (五)删除...
03 - Activiti流程实例 1.构建学生请假审批流程 2.执行对象概念 3.判断流程实例状态 4.历史流程实例查询 5.历史活动查询 04 - Activiti流程变量 1.流程变量的概念 2.使用TaskService设置和获取流程变量 3....
课程简介 ...Activiti流程实例 Activiti个人任务处理 Activiti使用流程变量 Activiti处理任务候选人 Activiti网关的使用 章节三:Activiti整合 Activiti和Spring的整合 Activiti和SpringBoot的整合 案例
Activiti流程跟踪监控图路径线和节点高亮显示,本实例提供了两种方式,都可以生成png图片。
这个是Activiti开发的请假流程实例,可以作为用Activiti开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用oracle,其中 QingJia 和 QingJiaHis 是自己的业务表,分别表示 请假...
主要介绍了activiti获取流程图的方法,需要的朋友可以参考下
Activiti 学习笔记四:流程实例、任务的执行
主要介绍了Activiti流程图查看实例,需要的朋友可以参考下
NULL 博文链接:https://profound-accumulation.iteye.com/blog/2244881
2、activiti流程引擎版本号:7.1.0.M3.1; 3、已经对该流程引擎的activiti-engine-7.1.0.M3.1.jar进行了源码修改,下载直接使用即可,同时支持达梦数据库服务器多个数据库实例的场景,网上大多修改的方法只适合单个...
实现流程,让任务能够按拟定的流程自动的驱动下去,不再需要我们实现流程的驱动,记录流程的流转情况等等,提供流程生命周期的管理功能,Activiti就是一种工作流引擎。 工作流平台: 如果每一个系统(项目)都有...
为你提供activiti参考,通过网页实现请假流程的申请,启动,部署,管理等等
activiti 工作流实例-实现请假流程.zipactiviti 工作流实例-实现请假流程.zip
以一个简单流程实例,一步一步讲解activiti实现方法,通过该文档可以把activiti集成到自己项目中。本人亲测,简单实用,易于实现!
activiti系列第二期课程课程重点讲解中国式的常用流程,比如activiti中modler设计器扩展属性、activiti中xml扩展自定义属性、activiti任意节点跳转、activiti多实例、activiti任务节点跳转、activiti多实例、...
在用activiti的时候经常遇到取会签人员的问题,这个文档解决怎么获取会签人员。
什么是流程、工作流作用、Activiti背景简介、Activiti流程设计器安装、Activity环境搭建、通过HelloWorld掌握 Activiti操作流程的步奏、常见API使用、流程部署管理(发布流程、查看流程定义、删除流程、查看流程附件)...
Activiti工作流示例ActivitiDemo 本示例带有全部源码,详细使用Canvas动画演示了Activiti工作流引擎的使用。非常实用,非常先进和完整。希望您会喜欢。
activiti工作流详细讲解和实例,适合初学者学习,很有用,有收获。