`
Algernoon
  • 浏览: 23643 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

activiti流程实例

 
阅读更多

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 7 + springboot2(七) Activiti流程实例的运行过程源代码

    流程部署完成后,每启动一次流程就是一个流程实例。 (一)根据流程定义key启动流程实例 (二)启动流程实例的时候指定businesskey(业务标识) (三)查询流程实例 (四)删除已经部署成功的流程 (五)删除...

    activiti学习-使用activiti多实例任务实现会签

    ### Activiti多实例任务实现会签功能详解 #### 一、多实例用户任务的基本概念与配置 ...综上所述,通过Activiti提供的多实例任务功能,我们可以轻松地实现复杂的会签逻辑,极大地提高了业务流程的灵活性和效率。

    activiti流程图查看demo

    总结起来,"activiti流程图查看demo"是一个学习和实践Activiti流程图查看功能的实例。它涵盖了BPMN 2.0标准、Activiti Engine的部署与查询、以及diagram-viewer的使用。通过这个demo,开发者能够更好地理解和掌握...

    Activiti流程图部署及流程图部分操作.pdf

    总之,Activiti流程图的部署和操作涉及到流程定义的生命周期管理,包括创建、部署、查询和更新等步骤。正确地部署和操作流程图能够确保业务流程在系统中按照预期执行,从而提升企业的运营效率和自动化水平。熟悉并...

    Activiti(Flowable) 流程实例克隆解决方案1

    Activiti(Flowable) 流程实例克隆解决方案1

    Activiti流程演示Demo

    本"Activiti流程演示Demo"旨在帮助用户了解并实践如何在实际项目中应用Activiti。 1. **Activiti核心概念** - **流程定义(Process Definition)**:是流程的蓝图,定义了任务的顺序和逻辑。通常使用BPMN 2.0标准...

    Activiti12流程跟踪任务节点和线高亮显示

    Activiti流程跟踪任务节点和线高亮显示 Activiti是Activiti BPMN 2.0流程引擎的Java实现,提供了强大的流程管理和自动化功能。在Activiti中,我们可以通过流程跟踪功能来追踪和监控流程的执行情况。流程跟踪任务...

    Activiti流程图查看实例

    Activiti 是一个开源的工作流和业务自动化引擎,它允许开发者设计、执行和管理业务流程。在 Activiti 中,流程图是流程定义的核心部分,用于可视化地表示...理解这些步骤对于理解和调试 Activiti 流程实例至关重要。

    Activiti工作流之流程实例、任务的执行

    【标题】"Activiti工作流之流程实例、任务的执行" 在企业级应用开发中,工作流管理系统(Workflow Management System, WfMS)扮演着重要角色,它负责自动化业务流程,确保任务按照预定义的规则有序进行。Activiti是...

    eclipse的activiti流程图插件.zip

    例如,可以直接从IDE启动和监控Activiti流程实例。 8. **离线安装**:描述中提到在线安装可能遇到问题,此时可以使用提供的zip文件手动安装插件。Eclipse 允许通过“Install New Software”功能导入本地更新站点,...

    最新Activiti视频教程,包含视频、源码、IDE集成Activiti插件、Activiti-5.22.0的pdm数据库表结构文件、教程菜单

    03 - Activiti流程实例 1.构建学生请假审批流程 2.执行对象概念 3.判断流程实例状态 4.历史流程实例查询 5.历史活动查询 04 - Activiti流程变量 1.流程变量的概念 2.使用TaskService设置和获取流程变量 3....

    Activiti多实例任务实现会签

    总结来说,"Activiti多实例任务实现会签"是通过Activiti引擎和BPMN 2.0的多实例任务特性,构建出一个需要多人同时审批的业务流程,以满足企业中的并行决策需求。开发者需要了解BPMN 2.0的语法,以及如何利用Activiti...

    activiti入门实例,activiti请假实例

    在Activiti中,所有流程实例和相关数据都存储在数据库中,包括流程定义、流程实例、任务、变量等。这个脚本可能创建了必要的表结构,比如ACT_RU_TASK(任务表)、ACT_RE_PROCDEF(流程定义表)等,以及初始化了一些...

    最新工作流引擎Activiti7基础与进阶

    课程简介 ...Activiti流程实例 Activiti个人任务处理 Activiti使用流程变量 Activiti处理任务候选人 Activiti网关的使用 章节三:Activiti整合 Activiti和Spring的整合 Activiti和SpringBoot的整合 案例

    使用activiti流程实名认证、ajax跨域.rar

    2. **创建流程实例**:后台接收到请求后,创建一个Activiti流程实例,关联用户提交的信息。 3. **审核任务分配**:在流程模型中设定一个“审核”任务,分配给后台管理员。 4. **管理员审核**:管理员登录后台,查看...

    activiti6.0实现流程图片自定义颜色 当前任务为红色,走过的任务为绿色,自定义文字颜色连线文字显示

    1. 获取流程实例和任务信息:首先,我们需要查询数据库获取流程实例和相关任务的信息,包括任务的状态(如未完成、进行中、已完成)。 2. 遍历流程图元素:遍历流程图的各个元素,包括任务节点和连接线,然后根据...

    简单的activiti请假流程

    它支持流程定义、流程实例管理、任务管理、事件处理和规则集成等多种功能。 2. BPMN 2.0: BPMN 2.0 是一种业务流程建模语言,提供了图形化的表示方法来描述业务流程。在这个请假流程中,可能包括开始事件、结束...

    activiti 工作流实例-实现请假流程

    这个是Activiti开发的请假流程实例,可以作为用Activiti开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用oracle,其中 QingJia 和 QingJiaHis 是自己的业务表,分别表示 请假...

    activiti流程管理的几个小例子

    这个压缩包中的“activiti流程管理的几个小例子”旨在帮助用户更深入地理解和应用Activiti。通过这些实例,我们可以探索以下几个关键知识点: 1. **流程定义(Process Definition)**:在Activiti中,流程定义是...

    activiti用户指南.zip

    六、Activiti 流程实例的生命周期 流程实例从启动到结束,会经历一系列状态变化,包括等待、并发、分支、合并等。Activiti 引擎负责管理这些状态,确保流程按照预设规则执行。 七、Activiti 工作流最佳实践 1. 明确...

Global site tag (gtag.js) - Google Analytics