搭建第一个Activity流程框架:https://www.cnblogs.com/yanfeiLiu/p/9915709.html
Activiti数据库表结构(表详细版):https://www.cnblogs.com/telwanggs/p/7491564.html
以下为博主参考上述文章写的activiti工作流的小demo(简单粗暴一些只为记录,就不写那么详细了,想要详细过程的朋友可了解上面的链接【写的很不错噢】)
博主在写demo的时候也碰到了一些小问题大家可以看看哦【或许你可以用上噢! 朋友】 0.0
1、项目结构
2、附带源码
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.task.Task;
import org.junit.Test;
import java.util.List;
/**
* 用于进行演示Activiti的首例程序,即描述如何在代码中实现学生进行请假申请,班主任审核,教务处审核
**/
public class ActivitiTest {
/**
* 1、部署流程
* 2、启动流程实例
* 3、饿了的人发出点餐申请
* 4、服务员查看任务
* 5、服务员点餐
* 6、厨师做饭
*/
/**
* 1:部署一个Activiti流程
* 运行成功后,查看之前的数据库表,就会发现多了很多内容
* act_ge_bytearray
* act_re_deployment
* act_re_procdef
*/
@Test
public void creatActivitiTask(){
//加载的那两个内容就是我们之前已经弄好的基础内容哦。
//得到了流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("eat.bpmn")
.addClasspathResource("eat.png")
.deploy();
}
/**
* 2:启动流程实例(此步骤基于获取流程引擎步骤之上。注:是eat.bpmn不是eat.xml,否则获取流程引擎步骤导致数据库生成数据不完整)
* act_hi_actinst
* act_hi_procinst
* act_hi_taskinst
* act_ru_execution
* act_ru_task
*/
@Test
public void testStartProcessInstance(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getRuntimeService()
.startProcessInstanceById("myProcess_1:1:5004"); //这个是查看数据库中act_re_procdef表ID值
}
/**
* 3:完成点餐申请
* act_hi_actinst
* act_hi_identitylink
* act_hi_taskinst
* act_ru_execution
* act_ru_identitylink
* act_ru_task
*/
@Test
public void testOrder(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getTaskService()
.complete("7504"); //查看act_ru_task表ID
}
/**
* 4:饿了 服务员小张查询当前正在执行任务
*/
@Test
public void testQueryTask(){
//下面代码中的小张,就是我们之前设计那个流程图中添加的服务员内容
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
List<Task> tasks = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee("小张")
.list();
for (Task task : tasks) {
System.out.println(task.getName());
}
}
/**
* 5:服务员小张完成任务
* act_hi_actinst
* act_hi_identitylink
* act_hi_taskinst
* act_ru_execution
* act_ru_identitylink
* act_ru_task
*/
@Test
public void testFinishTask_manager(){
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
engine.getTaskService()
.complete("10002"); //查看act_ru_task数据表ID
}
/**
* 6:厨师老李完成的任务
* act_hi_actinst
* act_hi_taskinst
* act_ru_execution
* act_ru_identitylink
* act_ru_task
*/
@Test
public void testFinishTask_Boss(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getTaskService()
.complete("12502"); //查看act_ru_task数据表ID
}
}
/*
一般数据:
ACT_GE_BYTEARRAY 通用的流程定义和流程资源
ACT_GE_PROPERTY 系统相关属性
流程历史记录:
ACT_HI_ACTINST 历史的流程实例
ACT_HI_ATTACHMENT 历史的流程附件
ACT_HI_COMMENT 历史的说明性信息
ACT_HI_DETAIL 历史的流程运行中的细节信息
ACT_HI_IDENTITYLINK 历史的流程运行过程中用户关系
ACT_HI_PROCINST 历史的流程实例
ACT_HI_TASKINST 历史的任务实例
ACT_HI_VARINST 历史的流程运行中的变量信息
用户用户组表:
ACT_ID_GROUP 身份信息-组信息
ACT_ID_INFO 身份信息-组信息
ACT_ID_MEMBERSHIP 身份信息-用户和组关系的中间表
ACT_ID_USER 身份信息-用户信息
流程定义表:
ACT_RE_DEPLOYMENT 部署单元信息
ACT_RE_MODEL 模型信息
ACT_RE_PROCDEF 已部署的流程定义
运行实例表:
ACT_RU_EVENT_SUBSCR 运行时事件
ACT_RU_EXECUTION 运行时流程执行实例
ACT_RU_IDENTITYLINK 运行时用户关系信息
ACT_RU_JOB 运行时作业
ACT_RU_TASK 运行时任务
ACT_RU_VARIABLE 运行时变量表
*/
3、数据库生成的25张表
结束。