Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
- ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
- ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACT_GE_*: 通用数据, 用于不同场景下。
- ACT_EVT_*: EVT表示EVENT,目前只有一张表ACT_EVT_LOG,存储事件处理日志,方便管理员跟踪处理。
部署流程相关表
# repositoryService
SELECT * FROM act_re_deployment #部署对象表
select* from act_re_procdef #流程定义表
select * from act_ge_bytearray #资源文件表
select * from act_ge_property #主键生成策略表
Repositoryservice 部署流程相关表
SELECT * FROM act_re_deployment #部署对象表
select* from act_re_procdef #流程定义表
select * from act_ge_bytearray #资源文件表
select * from act_ge_property #主键生成策略表
RuntimeService TaskService
######流程实例,执行对象,任务#######
select * from act_ru_execution #正在执行的执行对象表 流程启动一次只要没有执行完,就会有一条数据
select * from act_ru_task #正在执行的任务表(只有节点是UserTask的时候,该表中存在数据) 可能有多条数据
select * from act_ru_variable ; #记录流程运行时的流程变量
select * from act_ru_identitylink ; ##存放流程办理人的信息
select * from act hi procinst ; #历史流程实例 流程实例的历史表
select * from act_hi_taskinst ; #历史任务实例 任务历史表
select * from act_hi_actinst; #历史活动节点表 所有活动节点的历史表
select * from act_hi_varinst ; #历史流程变量表
select * from act_hi_identitylink ; ##历史办理人表
select * from act_hi_comment ; #批注表
select * from act_hi_attachment ;#附件表
helloWorld
/**
*
* @author THE GIFTED
* 部署流程定义
*/
public class DeployProcessDefi {
ProcessEngine proEng = ProcessEngines.getDefaultProcessEngine();
@Test
public void deploy() {
// 部署流程
Deployment dep = proEng.getRepositoryService()
.createDeployment()
.name("部署Name")
.addClasspathResource("diagrams/one.bpmn")
.addClasspathResource("diagrams/one.png").deploy();
System.out.println(dep.getId());
}
/**
* 启动流程
*/
@Test
public void startProcess() {
String processDefinitionId = "";
ProcessInstance proces = proEng.getRuntimeService()
// .startProcessInstanceById(processDefinitionId)
.startProcessInstanceByKey("hy");
System.out.println(proces.getName());
}
/**
* 查询任务
*/
@Test
public void findTask() {
TaskService taskService = proEng.getTaskService();
// String assignee="张三";
// String assignee="李四";
String assignee="王五";
List<Task> list = taskService.createTaskQuery().taskAssignee(assignee).list();
if(null!=list&&list.size()>0) {
for (Task task : list) {
System.out.println("任务ID:"+task.getId());
System.out.println("流程实例ID:"+task.getProcessInstanceId());
System.out.println("执行实例ID:"+task.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
System.out.println("任务名称:"+task.getName());
System.out.println("任务办理人:"+task.getAssignee());
System.out.println("################################");
}
}
}
/**
* 办理任务
*/
@Test
public void doTask(){
TaskService taskService = proEng.getTaskService();
String taskId="7502";
// taskService.
taskService.complete(taskId);
System.out.println("任务完成");
}
}