Activiti7整合Springboot使用记录( 二 )


##启动springboot工程,让系统启动时帮我们建好25张表 2.安装Activiti插件(设计器) ##Idea

file->settings->plugins,然后找actiBPM进行安装 。
Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录


Activiti7整合Springboot使用记录



4.流程实例启动
启动一个流程实例表示开始一次业务流程的运行
//1.流程实例启动@Testpublic void testStartProcess(){//根据流程定义Id启动流程ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1");//输出实例信息System.out.println("流程定义id:" + processInstance.getProcessDefinitionId());System.out.println("流程实例id:" + processInstance.getId());System.out.println("当前活动Id:" + processInstance.getActivityId());//流程定义id:myProcess_1:1:12702ed4-ffd9-11eb-8847-02004c4f4f50//流程实例id:a9b162aa-ffda-11eb-bad1-02004c4f4f50//当前活动Id:null}
流程实例启动,将操作以下几个数据库表
act_hi_actinst 流程实例执行历史act_hi_identitylink 流程的参与用户历史信息act_hi_procinst 流程实例历史信息act_hi_taskinst 流程任务历史信息act_ru_execution 流程执行信息act_ru_identitylink 流程的参与用户信息act_ru_task 任务信息
5.任务查询
流程启动后,任务的负责人就可以查询自己当前需要处理的任务,查询出来的任务都是该用户的待办任务 。
//2.任务查询//流程启动后,任务的负责人就可以查询自己当前需要处理的任务,查询出来的任务都是该用户的待办任务 。@Testpublic void testFindPersonalTaskList() {//任务负责人String assignee = "liuky";//根据流程key 和 任务负责人 查询任务List<Task> list = taskService.createTaskQuery().processDefinitionKey("myProcess_1").taskAssignee(assignee).list();for (Task task : list) {System.out.println("流程实例id:" + task.getProcessInstanceId());System.out.println("任务id:" + task.getId());System.out.println("任务负责人:" + task.getAssignee());System.out.println("任务名称:" + task.getName());}//流程实例id:a9b162aa-ffda-11eb-bad1-02004c4f4f50//任务id:a9b5815e-ffda-11eb-bad1-02004c4f4f50//任务负责人:liuky//任务名称:提交申请}
6. 完成任务 @Testpublic void completTask(){//根据流程key和任务的负责人查询任务并选择其中的一个任务处理,这里用的//是singleResult返回一条,真实环境中是通过步骤5中查询出所有的任务,然后在页面上选择一个任务进行处理.Task task = taskService.createTaskQuery().processDefinitionKey("myProcess_1") //流程Key.taskAssignee("liuky")//要查询的负责人.singleResult();//完成任务,参数:任务idtaskService.complete(task.getId());}
7.流程结束,或流程流转过程中的历史信息查询//流程结束,或流程流转过程中的历史信息查询@Testpublic void findHistoryInfo(){//获取 actinst表的查询对象HistoricActivityInstanceQuery instanceQuery = historyService.createHistoricActivityInstanceQuery();//查询 actinst表,条件:根据 InstanceId 查询instanceQuery.processInstanceId("fb5b7674-ffde-11eb-91f8-02004c4f4f50");//增加排序操作,orderByHistoricActivityInstanceStartTime 根据开始时间排序 asc 升序instanceQuery.orderByHistoricActivityInstanceStartTime().asc();//查询所有内容List<HistoricActivityInstance> activityInstanceList = instanceQuery.list();//输出结果for (HistoricActivityInstance hi : activityInstanceList) {System.out.println("");System.out.println("===================-===============");System.out.println(hi.getStartTime());System.out.println(hi.getAssignee());System.out.println(hi.getActivityId());System.out.println(hi.getActivityName());System.out.println(hi.getProcessDefinitionId());System.out.println(hi.getProcessInstanceId());System.out.println("===================-===============");System.out.println("");}}
8.其他Api测试
8.1 流程定义信息查询
查询流程相关信息,包含流程定义,流程部署,流程定义版本
@Testpublic void queryProcessDefinition(){//得到ProcessDefinitionQuery对象ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();//查询出当前所有的流程定义List<ProcessDefinition> definitionList = processDefinitionQuery.processDefinitionKey("myProcess_1").orderByProcessDefinitionVersion().desc().list();//打印结果for (ProcessDefinition processDefinition : definitionList) {System.out.println("流程定义 id="+processDefinition.getId());System.out.println("流程定义 name="+processDefinition.getName());System.out.println("流程定义 key="+processDefinition.getKey());System.out.println("流程定义 Version="+processDefinition.getVersion());System.out.println("流程部署ID ="+processDefinition.getDeploymentId());}}

推荐阅读