Activiti6.0实战(一)常用操作及表数据变化
2023年8月1日发(作者:)
Activiti6.0实战(⼀)常⽤操作及表数据变化⼀、流程部署1.部署流程下⾯代码是通过ZipInputStream⽅式进⾏部署,也是最常⽤的⼀种⽅式。流程部署后,会⽣成“部署对象”和“流程定义”。@AutowiredRepositoryservice repositoryService;ZipInputStream zipInputStream = new ZipInputStream(inputStream);Deployment deployment = Deployment() // 创建部署 .name(fileName) // 设置部署名称 .addZipInputStream(zipInputStream) // 根据zip输⼊流部署 .deploy(); // 开始部署流程部署后,会操作如下表act_re_deployment:插⼊部署对象,仅记录部署名及部署时间act_ge_bytearray:插⼊BPMN的两个⽂件(.bpmn和.png),包括部署IDact_re_procdef:插⼊流程定义信息,包括部署ID,流程的Key和Name,版本,两个资源⽂件select * from act_re_procdef; --流程定义select * from act_re_deployment; -- 流程部署select * from act_ge_bytearray; -- 存储⼆进制⽂件2.查询流程定义列表对流程定义查询前提是要创建流程定义查询,即:createProcessDefinitionQuery()@AutowiredRepositoryservice repositoryService;String key = "%process%";List list = repositoryService .createProcessDefinitionQuery() // 创建流程定义查询 .latestVersion() // 只查询最新版本 .processDefinitionKeyLike(key) // 根据Key进⾏模糊查询 .list(); // 返回列表3.根据部署ID查询部署对部署进⾏查询时,要提前创建部署查询,即:createDeploymentQuery()@AutowiredRepositoryservice repositoryService;String deploymentId = "5522";DeploymentQuery() // 创建部署查询 .deploymentId(deploymentId) // 根据部署ID查询 .singleResult(); // 返回唯⼀结果4.删除部署@AutowiredRepositoryservice repositoryService;String deploymentId = "5522";Deployment(deploymentId); // 根据部署ID删除流程部署删除部署会操作如下表,若级联删除,会将运⾏中的实例与历史实例⼀同删除act_re_deployment:删除部署对象act_ge_bytearray:删除资源⽂件act_re_procdef:删除流程定义信息⼆、启动流程1.根据流程定义的Key启动流程启动后,会创建“流程实例”和“任务”,⽽我们需要将我们的业务与流程实例进⾏绑定,这样才能确定我们的业务是使⽤的哪个流程实例。流程定义可以理解为⼀个流程的模板,只能有⼀个;⽽流程实例是根据流程定义⽣成的⼀个具体的实例,可以有多个,⼀个审批业务对应⼀个流程实例。@AutowiredRuntimeService runtimeService;String processDefinitionId = "333";rocessInstanceByKey(processDefinitionId);流程启动后,会操作如下表act_ru_execution:执⾏流程实例表,核⼼,启动后会⽣成⼀个流程实例和待执⾏的任务节点act_ru_task:⽤户任务表,待执⾏的任务act_ru_identitylink:⽤户⾝份关系表,存储待执⾏任务的⽤户关系act_hi_taskinst:历史⽤户任务表,存储所有已执⾏或待执⾏的⽤户任务历史act_hi_procinst:历史流程实例表,存储流程实例act_hi_actinst:历史活动节点表,存储所有已执⾏的节点(各类节点)act_hi_identitylink:历史⽤户⾝份关系表,历史⽤户任务的关系表select * from act_ru_execution; --执⾏流程实例表select * from act_ru_task; -- ⽤户任务表select * from act_ru_identitylink; -- ⽤户⾝份关系表select * from act_hi_taskinst; -- 历史⽤户任务表select * from act_hi_procinst; -- 历史流程实例表select * from act_hi_actinst; -- 历史活动节点表select * from act_hi_identitylink; -- 历史⽤户⾝份关系表三、执⾏任务1.查看我的任务列表@AutowiredTaskService taskService;String assignee = "可以是办理⼈的ID";int startPage = 1;int pageSize = 10;List list = TaskQuery() // 创建任务查询 .taskAssignee(assignee) // 按照当前输⼈查询 .orderByTaskCreateTime().desc() // 按任务创建时间排序,倒序排序 .listPage(startPage, pageSize); // 分页查询出任务列表2.执⾏任务执⾏任务后,会⾃动根据条件跳转到下⼀任务@AutowiredTaskService taskService;String taskId = "20005";te(taskId); // 根据任务ID执⾏任务执⾏任务后,表数据发⽣的变化act_ru_execution:待执⾏的⽤户任务节点换成下⼀个⽤户任务节点act_ru_task:当前待执⾏任务转历史,插⼊下⼀个任务act_ru_identitylink:插⼊下⼀任务的⽤户关系act_hi_taskinst:修改当前⽤户任务的完成时间,并插⼊⼀⽤户任务act_hi_actinst:修改当前活动节点的完成时间,并插⼊下⼀个活动节点act_hi_identitylink:插⼊下⼀任务的⽤户关系3.任务结束执⾏完最后⼀个节点后,流程会⾃动结束。流程结束后,表格数据变化。act_ru_execution:删除当前流程实例的运⾏时执⾏数据act_ru_task:删除当前流程实例的运⾏时任务数据act_ru_identitylink:删除当前流程实例的运⾏时⽤户关系数据可通过如下⽅式判断流程实例是否结束@AutowiredRuntimeService runtimeServiceString processInstanceId = "2200";ProcessInstance singleResult = ProcessInstanceQuery() // 创建流程实例查询 .processInstanceId(processInstanceId) // 根据流程实例ID查询 .singleResult(); // 返回唯⼀结果if(singleResult == null){ n("流程结束");}
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690872831a451933.html
评论列表(0条)