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("流程已经结束!"); } } }
相关推荐
流程部署完成后,每启动一次流程就是一个流程实例。 (一)根据流程定义key启动流程实例 (二)启动流程实例的时候指定businesskey(业务标识) (三)查询流程实例 (四)删除已经部署成功的流程 (五)删除...
### Activiti多实例任务实现会签功能详解 #### 一、多实例用户任务的基本概念与配置 ...综上所述,通过Activiti提供的多实例任务功能,我们可以轻松地实现复杂的会签逻辑,极大地提高了业务流程的灵活性和效率。
总结起来,"activiti流程图查看demo"是一个学习和实践Activiti流程图查看功能的实例。它涵盖了BPMN 2.0标准、Activiti Engine的部署与查询、以及diagram-viewer的使用。通过这个demo,开发者能够更好地理解和掌握...
总之,Activiti流程图的部署和操作涉及到流程定义的生命周期管理,包括创建、部署、查询和更新等步骤。正确地部署和操作流程图能够确保业务流程在系统中按照预期执行,从而提升企业的运营效率和自动化水平。熟悉并...
Activiti(Flowable) 流程实例克隆解决方案1
本"Activiti流程演示Demo"旨在帮助用户了解并实践如何在实际项目中应用Activiti。 1. **Activiti核心概念** - **流程定义(Process Definition)**:是流程的蓝图,定义了任务的顺序和逻辑。通常使用BPMN 2.0标准...
Activiti流程跟踪任务节点和线高亮显示 Activiti是Activiti BPMN 2.0流程引擎的Java实现,提供了强大的流程管理和自动化功能。在Activiti中,我们可以通过流程跟踪功能来追踪和监控流程的执行情况。流程跟踪任务...
Activiti 是一个开源的工作流和业务自动化引擎,它允许开发者设计、执行和管理业务流程。在 Activiti 中,流程图是流程定义的核心部分,用于可视化地表示...理解这些步骤对于理解和调试 Activiti 流程实例至关重要。
【标题】"Activiti工作流之流程实例、任务的执行" 在企业级应用开发中,工作流管理系统(Workflow Management System, WfMS)扮演着重要角色,它负责自动化业务流程,确保任务按照预定义的规则有序进行。Activiti是...
例如,可以直接从IDE启动和监控Activiti流程实例。 8. **离线安装**:描述中提到在线安装可能遇到问题,此时可以使用提供的zip文件手动安装插件。Eclipse 允许通过“Install New Software”功能导入本地更新站点,...
03 - Activiti流程实例 1.构建学生请假审批流程 2.执行对象概念 3.判断流程实例状态 4.历史流程实例查询 5.历史活动查询 04 - Activiti流程变量 1.流程变量的概念 2.使用TaskService设置和获取流程变量 3....
总结来说,"Activiti多实例任务实现会签"是通过Activiti引擎和BPMN 2.0的多实例任务特性,构建出一个需要多人同时审批的业务流程,以满足企业中的并行决策需求。开发者需要了解BPMN 2.0的语法,以及如何利用Activiti...
在Activiti中,所有流程实例和相关数据都存储在数据库中,包括流程定义、流程实例、任务、变量等。这个脚本可能创建了必要的表结构,比如ACT_RU_TASK(任务表)、ACT_RE_PROCDEF(流程定义表)等,以及初始化了一些...
课程简介 ...Activiti流程实例 Activiti个人任务处理 Activiti使用流程变量 Activiti处理任务候选人 Activiti网关的使用 章节三:Activiti整合 Activiti和Spring的整合 Activiti和SpringBoot的整合 案例
2. **创建流程实例**:后台接收到请求后,创建一个Activiti流程实例,关联用户提交的信息。 3. **审核任务分配**:在流程模型中设定一个“审核”任务,分配给后台管理员。 4. **管理员审核**:管理员登录后台,查看...
1. 获取流程实例和任务信息:首先,我们需要查询数据库获取流程实例和相关任务的信息,包括任务的状态(如未完成、进行中、已完成)。 2. 遍历流程图元素:遍历流程图的各个元素,包括任务节点和连接线,然后根据...
它支持流程定义、流程实例管理、任务管理、事件处理和规则集成等多种功能。 2. BPMN 2.0: BPMN 2.0 是一种业务流程建模语言,提供了图形化的表示方法来描述业务流程。在这个请假流程中,可能包括开始事件、结束...
这个是Activiti开发的请假流程实例,可以作为用Activiti开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用oracle,其中 QingJia 和 QingJiaHis 是自己的业务表,分别表示 请假...
这个压缩包中的“activiti流程管理的几个小例子”旨在帮助用户更深入地理解和应用Activiti。通过这些实例,我们可以探索以下几个关键知识点: 1. **流程定义(Process Definition)**:在Activiti中,流程定义是...
六、Activiti 流程实例的生命周期 流程实例从启动到结束,会经历一系列状态变化,包括等待、并发、分支、合并等。Activiti 引擎负责管理这些状态,确保流程按照预设规则执行。 七、Activiti 工作流最佳实践 1. 明确...