1. 流程图:
2.部署流程定义
// 发布流程
@Test
public void deploy() throws Exception{
// 获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 获取仓库服务实例
Deployment deployment = processEngine.getRepositoryService()
.createDeloyment()
.addClasspathResource("diagrams/Leave.bpmn")
.addClasspathResource("diagrams/Leave.png")
.deploy();
}
这里使用RepositoryService部署流程定义
addClasspathResource表示从类路径下加载资源文件,一次只能加载一个文件
3. 启动流程实例
// 2.启动流程实例
@Test
public void startProcess() throws Exception {
// 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 启动流程
// 使用流程定义的key启动流程实例,默认会按照最新版本启动流程实例
ProcessInstance pi = processEngine.getRuntimeService()
.startProcessInstanceByKey("myProcess");
System.out.println("pid:" + pi.getId() + ",activitiId:" + pi.getActivityId());
}
这里使用RuntimeService启动流程实例
4. 查看我的个人任务
// 3.查看任务
@Test
public void queryMyTask() throws Exception {
// 指定任务办理者
String assignee = "张三";
// 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 查询任务的列表
List<Task> tasks = processEngine.getTaskSErvice()
.createTaskQuery()//创建任务查询对象
.taskAssignee(assignee)//指定个人任务办理人
.list();
// 遍历结合查看内容
for (Task task : tasks) {
System.out.println("taskId:" + task.getId() + ",taskName:" + task.getName());
System.out.println("*******************");
}
}
这里使用TaskService完成任务的查询
5. 完成我的个人任务
// 4.办理任务
@Test
public void completeTask() throws Exception {
String taskId = "104"
// 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 完成任务
processEngine.getTaskServcie()
.complete(taskId);
System.out.println("完成任务");
}
这里使用TaskService完成任务的办理