springboot整合activity6_ HelloWorld实现(无废话版)--------------------------------------------(二)
1.源码地址:https://github.com/heidaodageshiwo/springbootactivity
1.我这里没有用单元测试(@Test)junit 我用的是controller请求的方式来访问
2.流程图我是使用的eclipse画的(感觉idea画的有点丑,就没用)
流程图就画完事了。
// * 部署流程定义
@RequestMapping("/deployWithClassPath")
public String deployWithClassPath() {
Deployment deployment= repositoryService.createDeployment()
.addClasspathResource("helloworld/Helloworld.bpmn")
.addClasspathResource("helloworld/Helloworld.png")
.name("HelloWorld流程")
.deploy();
System.out.println("流程部署ID:"+deployment.getId());
System.out.println("流程部署Name:"+deployment.getName());
return "deployWithClassPath";
}
界面请求
控制台打印
运行deployWithClassPath方法,部署流程定义,这时候我们的流程定义表会发生一些变化;
首先act_re_deployment 流程定义部署表,插入了一条数据;
然后act_re_prodef 流程定义表也会有插入一条数据;这里有流程定义id name key version等重要信息;
还有一个act_ge_bytearray表 用来存资源信息;
以上是部署流程定义 数据库表里发生的事情;
我们要启动流程实例,这样一个流程才开始;
然后我们继续 ,下面来启动流程实例;
运行start方法;
// * 启动流程实例
@RequestMapping("/start")
public String start() {
ProcessInstance processInstance= runtimeService.startProcessInstanceByKey("myFirstProcess");
System.out.println("流程实例ID:"+processInstance.getId());
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());
return "start";
}
启动流程,数据库流程运行表也会发生相应的变化;
首先是运行时流程任务表:act_ru_task;插入了一条任务数据;
ID_是任务id 数据2505 ; PROC_INST_ID_是流程实例ID 2501 以及Name 创建时间等;
接下来是act_ru_execution 运行时流程执行表;
这里的话 存的流程执行相关信息;
接下来是act_ru_identitylink 是于执行主体相关信息表;这里是用具体的用户去执行的
流程实例启动完,接下来就到了helloWorld任务节点;
我们这时候可以来查看下 “张强” 的任务;
// * 查看任务
@RequestMapping("/findTask")
public String findTask() {
List <Task> taskList= taskService.createTaskQuery().taskAssignee("张强").list();
for(Task task:taskList){
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());
}
return "findTask";
}
运行findTask方法,控制台输出;
说明这个用户有任务可以执行;
我们继续走流程 执行completeTask方法;
执行完后,流程其实就已经走完了。
这时候我们再运行findTask,啥都没有输入,已经没有任务了;
act_hi_taskinst 历史流程实例任务表加了一条任务数据;
act_hi_procinst 历史流程实例实例表加了一条流程实例相关信息的数据(包括开始时间,结束时间等等信息);
act_hi_identitylink 历史流程实例参数者的表加了一条数据;
act_hi_actinst 历史活动节点表加了三条流程活动节点信息的数据(每个流程实例具体的执行活动节点的信息);
还没有评论,来说两句吧...