jbpm中流程的执行管理

package com.njupt.jbpm;

import java.util.List;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.TaskQuery;
import org.jbpm.api.task.Task;
import org.junit.Test;

public class ProcessInstanceTest {

	private ProcessEngine processEngine = Configuration.getProcessEngine();

	// 1,启动流程实例
	// 对应的表:
	// >> jbpm4_execution 正在执行的流程实例的信息
	// >> jbpm4_hist_procinst 已经执行完的流程实例的历史信息表
	@Test
	public void testStartProcessInstance() throws Exception {
		// // 使用指定的流程定义启动流程实例(指定key与指定的version)
		// processEngine.getExecutionService().startProcessInstanceById(processDefinitionId);

		// 使用指定key的最新版本的流程定义启动流程实例
		String processDefinitionKey = "test";
		ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey(processDefinitionKey);

		System.out.println("id=" + pi.getId() + ", processDefinitionId=" + pi.getProcessDefinitionId());
	}

	// 2,查询我的任务列表
	// 对应的表:
	// >> jbpm4_task 正在执行的任务信息表
	// >> jbpm4_hist_task 已经执行完的任务的历史信息表
	@Test
	public void testFindMyTask() throws Exception {
		// 查询
		// String userId = "学员";
		String userId = "教务";
		// >> 方式一
		// List<Task> taskList = processEngine.getTaskService().findPersonalTasks(userId);
		// >> 方式二
		List<Task> taskList = processEngine.getTaskService()//
				.createTaskQuery()//
				// 过滤条件
				.assignee(userId)// 指定办理人这个条件
				// .processDefinitionId(processDefinitionId)//
				// .processInstanceId(processInstanceId)//
				// 排序条件
				// .orderAsc(TaskQuery.PROPERTY_ASSIGNEE)//
				// .orderDesc(TaskQuery.PROPERTY_CREATEDATE)//
				// 执行查询
				// .count(); // 查询数量
				// .uniqueResult() // 查询唯一的结果
				// .page(firstResult, maxResults)//
				.list(); // 查询列表

		// 显示
		System.out.println("=========== 【" + userId + "】的任务列表 ==========");
		for (Task task : taskList) {
			System.out.println("id=" + task.getId()// 任务的ID
					+ ", name=" + task.getName()// 任务的名称
					+ ", assignee=" + task.getAssignee()// 任务办理人
					+ ", createTime=" + task.getCreateTime()// 任务的创建时间
					+ ", executionId=" + task.getExecutionId()); // 所属的执行对象的ID
		}
	}

	// 3,办理任务
	@Test
	public void testCompleteTask() throws Exception {
		String taskId = "110002";
		processEngine.getTaskService().completeTask(taskId);
	}

	// 4,直接向后执行一步
	@Test
	public void testSignal() throws Exception {
		String executionId = "test.70001";
		processEngine.getExecutionService().signalExecutionById(executionId, "to 存档");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值