您的位置:首页 > 其它

Activiti学习笔记8 — UserTask私有任务的使用

2015-12-02 10:08 465 查看
每一个UserTask都会在Execution表和Task表中各产生一条记录

一、创建流程引擎对象

   /**
* 1、创建流程引擎对象
*/
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();


二、发布一个流程

/**
* 3、启动流程、执行任务,并查看状态
*/
@Test
public void testUserTask() {
// 获取RuntimeService服务对象的实例
RuntimeService runtimeService = processEngine.getRuntimeService();
String processDefinitionKey = "userSingleTask";
// 自动执行与Key相对应的流程的最高版本
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey);
String processInstanceId = processInstance.getId();
logger.info("processInstanceId:" + processInstance.getId());

// 获取TaskService服务对象的实例
TaskService taskService = processEngine.getTaskService();
String assignee = "user";
List<Task> tasks = taskService.createTaskQuery().taskAssignee(assignee).list();
Assert.assertEquals(1, tasks.size());
Task task = tasks.get(0);
logger.info("taskName:" + task.getName());
Assert.assertEquals("出差",task.getName());

//完成任务
taskService.complete(task.getId());

//检查结束状态
ProcessInstance pInstance = runtimeService
.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
Assert.assertNull(pInstance);
logger.info("UserTask私有任务流程成功执行!");

}


View Code
四、执行结果

[INFO][2015-12-02 10:07:24,169][com.mcs.activiti.test.TestPrivateUserTask]processInstanceId:112501
[INFO][2015-12-02 10:07:24,223][com.mcs.activiti.test.TestPrivateUserTask]taskName:出差
[INFO][2015-12-02 10:07:24,576][com.mcs.activiti.test.TestPrivateUserTask]UserTask私有任务流程成功执行!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: