Activiti学习笔记

标签: activiti 学习 笔记 | 发表时间:2015-01-15 20:15 | 作者:Algernoon
出处:http://www.iteye.com

第一个Activiti的HelloWorld

1.部署流程

2.启动流程

3.查看任务

4.办理任务

package com.liuzm.activiti.day1;

import java.util.List;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.junit.Test;

/**
 * Activiti框架API的使用步骤: 1. 获取核心ProcessEngine对象 2. 根据需求,获取对应的服务实例 3. 使用服务方法,做事情
 * 
 * @author Administrator
 * 
 */
public class HelloWorld {
	// 加载核心API ProcessEngine
	private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

	// 1.部署流程
	@Test
	public void deployProcess() throws Exception {
		// 获取对应的服务
		RepositoryService repositoryService = processEngine.getRepositoryService();
		// 调用对应服务的方法,执行相关操作
		DeploymentBuilder builder = repositoryService.createDeployment();
		builder
		.addClasspathResource("helloworld.bpmn" )
		.addClasspathResource("helloworld.png");
		builder.deploy();
	}

	// 2.启动流程
	@Test
	public void startProcess() throws Exception {
		// 获取对应服务的service实例对象
		RuntimeService runtimeService = processEngine.getRuntimeService();
		// 调用服务方法,执行相关操作
		String processDefinitionId = "myProcess:1:4";
		ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId);
		System.out.println(processInstance);
	}
	// 3.查看任务
	@Test
	public void queryTask() throws Exception {
		// 2. 根据查询需求,获取对应的服务对象。
		TaskService taskService = processEngine.getTaskService();
		// 3. 调用服务对象的,createXXXQuery方法,创建对应查询对象
		TaskQuery taskQuery = taskService.createTaskQuery();
		// 4. 添加查询条件
		String assignee = "小强";
		taskQuery.taskAssignee(assignee);
		// 5. 执行查询
		List<Task> list = taskQuery.list();
		System.out.println("============【"+assignee+"】的私有任务列表==========================");
		for (Task task : list) {
			System.out.println(task);
		}
	}
	
	// 4.办理任务
	@Test
	public void completeTask() throws Exception {
		// 获取对应的服务对象
		TaskService taskService = processEngine.getTaskService();
		// 调用服务方法,执行相关操作
		String taskId = "104";
		taskService.complete(taskId);
		this.queryTask();
	}

}

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [activiti 学习 笔记] 推荐:

Activiti学习笔记

- - 企业架构 - ITeye博客
第一个Activiti的HelloWorld. 获取核心ProcessEngine对象 2. 根据需求,获取对应的服务实例 3. 使用服务方法,做事情 * * @author Administrator * */ public class HelloWorld {. // 加载核心API ProcessEngine.

ACTIVITI 学习笔记 - 监听

- - 企业架构 - ITeye博客
ACTIVITI 学习笔记 - 监听. 所有分发的事件都是org.activiti.engine.delegate.event.ActivitiEvent的子类. 监听器监听的流程引擎已经创建完毕,并准备好接受API调用. 监听器监听的流程引擎已经关闭,不再接受API调用. 创建了一个新实体,初始化也完成了.

shell 学习笔记

- tiger - 游戏人生
将脚本目录加到 PATH 中. 在 dash 中如何进行字符串替换. 将 rst 格式文档转换为 blog 可用的 html 代码. shell 脚本虽然不是非常复杂的程序, 但对于首次接触的我来讲, 多少还是有些忌惮. 不过, 接触任何新事物都需要勇敢面对, 逐步树立信心. 我是冲着把脚本写好去的, 所以, 我的目标是能够写出友好, 健壮, 优美的脚本..

OAuth学习笔记

- 宋大妈 - FeedzShare
来自: 标点符 - FeedzShare  . 发布时间:2011年08月29日,  已有 2 人推荐. OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据.

Vim学习笔记

- 临池学书 - C++博客-首页原创精华区
最近在学习Vimtutor中的相关内容,Vim的使用博大精深,很多命令一旦不使用就会忘记,下面把其中的没有使用到的相关命令做一个简单的总结,供以后复习使用. 至于常见的保存,插入等等命令,则不予记录,在以后的使用中加深练习即可. To change until the end of a word, type  ce (ce + 修正的单词).

OAuth学习笔记

- jiaosq - 标点符
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据. 每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频).

HTML学习笔记

- - CSDN博客推荐文章
超文本标记语言( 英文:HyperText Markup Language,HTML)是为“ 网页创建和其它可在 网页浏览器中看到的信息”设计的一种 标记语言. HTML被用来结构化信息——例如标题、段落和列表等等  点击打开链接. w3schools  点击打开链接 {语法大全,超赞.

jQuery学习笔记

- - ITeye博客
什么是jQuery,它能为我们做什么. jQuery是一个javascript类库或称之为javascript框架. 无需刷新页面从服务器获取信息. 简化常见的javascript任务. 为什么会如此流行或说得到大量用户群的支持:. 多重操作集于一行(避免使用临时变量或不必要的重复代码). jQuery利用了CSS选择符的能力,在DOM中快捷而轻松地获取元素或元素集合.

JdbcTemplate学习笔记

- - SQL - 编程语言 - ITeye博客
1、使用JdbcTemplate的execute()方法执行SQL语句. 2、如果是UPDATE或INSERT,用update()方法.    JdbcTemplate将我们使用的JDBC的流程封装起来,包括了异常的捕捉、SQL的执行、查询结果的转换等等. spring大量使用Template Method模式来封装固定流程的动作,XXXTemplate等类别都是基于这种方式的实现.

Disruptor 学习笔记

- - 开源软件 - ITeye博客
Disruptor 是一个高性能异步处理框架,也可以认为是一个消息框架,它实现了观察者模式. Disruptor 比传统的基于锁的消息框架的优势在于:它是无锁的、CPU友好;它不会清除缓存中的数据,只会覆盖,降低了垃圾回收机制启动的频率. Disruptor 为什么快. 通过内存屏障和原子性的CAS操作替换锁.