1、部署业务流程图及查询
核心操作类
管理流程定义 RepositoryService
核心方法
repositoryService.createDeployment()//创建部署对象
.name(filename)//添加部署名称
.addZipInputStream(zipInputStream)//
.deploy();//完成部署
`act_re_deployment`
List<Deployment> list = repositoryService.createDeploymentQuery()//创建部署对象查询 .orderByDeploymenTime().asc()//
.list();
`act_re_procdef`
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery()//创建流程定义查询
.orderByProcessDefinitionVersion().asc()//
.list();
查看流程图
根据部署id和图片名字查询 `act_ge_bytearray`
repositoryService.getResourceAsStream(deploymentId, imageName);
2、业务管理
当提交一个任务时,启动流程在这里启动的流程实例关联业务,所以运行流程实例表(`act_ru_execution`)的,同时还需要设置流程办理人,根据流程定义id启动流程
核心操作类 RuntimeService
执行管理,包括启动、推进、删除流程实例等操作 |
runtimeService.startProcessInstanceByKey(key,objId,variables);
任务管理
查询任务
TaskService 任务管理
查询任务肯定用到任务管理类
肯定是根据办理人查询
List<Task> list = taskService.createTaskQuery()//
.taskAssignee(name)//指定个人任务查询
.orderByTaskCreateTime().asc()//
.list();
任务详情
首先根据任务查询业务这就要用到启动流程设置的 business_key 查找业务,
然后还要知道任务完成后的连线名称
任务历史审核人信息
得到business_key存在于流程实例中
在这里操作的是流程实例,所以用到的service是 runtimeService
//2:使用任务对象Task获取流程实例ID
String processInstanceId = task.getProcessInstanceId();
//3:使用流程实例ID,查询正在执行的执行对象表,返回流程实例对象
ProcessInstance pi = runtimeService.createProcessInstanceQuery()//
.processInstanceId(processInstanceId)//使用流程实例ID查询
.singleResult();
连线名称存在于流程实体中,通过流程id查询流程定义实体对象 既然是
定义那么service 必然是 repositoryService
同时我们要知道流程运行到哪一步了,那么我们必须得到流程实例对象的活动id
//使用流程实例ID,查询正在执行的执行对象表,返回流程实例对象
ProcessInstance pi = runtimeService.createProcessInstanceQuery()//
.processInstanceId(processInstanceId)//使用流程实例ID查询
.singleResult();
//获取当前活动的id
String activityId = pi.getActivityId();
最后我们用流程实体根据活动id就可以查询到连线名称了
ActivityImpl activityImpl = processDefinitionEntity.findActivity(activityId);
//5:获取当前活动完成之后连线的名称
List<PvmTransition> pvmList = activityImpl.getOutgoingTransitions();
历史批注
通过流程实例id就可以得到。
list = taskService.getProcessInstanceComments(processInstanceId);
完成任务
首先要添加当前任务审核人及批注
Authentication.setAuthenticatedUserId(SessionContext.get().getName());
通过传过来的参数告知任务走那条线
taskService.addComment(taskId, processInstanceId, message);
然后完成任务
taskService.complete(taskId, variables);
最后如果任务完成,更新业务状态状态。
画流程图
流程定义 id与业务bean相同。
定义任务id和名称
定义任务办理人及办理动作方法
定义连线id和名称
定义连线的条件
通过指定类,指定任务办理人