3、Activitc 第一个流程

来源:互联网 发布:鹏鹏扣字软件怎么用 编辑:程序博客网 时间:2024/06/05 14:54


public class HelloTest
{
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

/**
* 部署流程定义
*
*/
@Test
public void deployProcessDefintion()
{
Deployment deployment = processEngine.getRepositoryService() // 与流程定义和部署相关的service
.createDeployment() // 创建一个部署对象
.name("第一个流程")
.addClasspathResource("diagrams/hello.bpmn") // 从classPath中加载资源一次只能加载一个文件
.addClasspathResource("diagrams/hello.png") // 从classPath中加载资源一次只能加载一个文件
.deploy(); // 完成部署
System.out.println("部署ID" + deployment.getId()); // 1
System.out.println("部署名称" + deployment.getName()); // 第一个流程
}

/**
* 启动流程实例
*/
@Test
public void startProcessInstance()
{
String processDefinitionKey = "hello";
ProcessInstance pi = processEngine.getRuntimeService() // 与正在执行的流程实例和执行相关的service
.startProcessInstanceByKey(processDefinitionKey); // 使用流程定义的key启动流程,key在bpmn文件中对应ID,使用key启动会使用最新版本的流程定义

System.out.println("流程实例ID:" + pi.getId()); //流程实例ID 流程实例ID
System.out.println("流程定义ID:" + pi.getProcessDefinitionId()); //流程定义ID hello:1:4
}

/**
* 查询个人当前任务
*/
@Test
public void findMyPersonalTask()
{
String assignee = "观音";
List<Task> tasks = processEngine.getTaskService() // 与正在执行的任务管理相关的service
.createTaskQuery() // 创建任务查询对象
.taskAssignee(assignee) // 根据个人查询任务
.list();
if (tasks != null && !tasks.isEmpty())
{
for (Task task : tasks)
{
System.out.println("任务ID:" + task.getId());
System.out.println("任务名称:" + task.getName());
System.out.println("创建时间:" + task.getCreateTime());
System.out.println("任务的办理人:" + task.getAssignee());
System.out.println("流程定义ID:" + task.getProcessDefinitionId());
System.out.println("流程实例ID:" + task.getProcessInstanceId());
System.out.println("执行对象ID:" + task.getExecutionId());
System.out.println("---------------------");
}
}
}

/**
* 完成我的任务
*/
@Test
public void completeMyPersonalTask()
{
String taskId = "10002";
processEngine.getTaskService()
.complete(taskId);
System.out.println("完成任务:" + taskId);
}
}


0 0