Demo项目代码:
https://gitee.com/AnAnXiEr/activiti6-demo
1、ACT_RU_EXECUTIOIN【ExecutionEntityImpl】:流程实例与分支执行信息
- PROC_INST_ID_:流程实例ID
- BUSINESS_KEY_:业务标志
- PARENT_ID:父执行信息
- PROC_DEF_ID_:流程定义ID
- SUPER_EXEC_:父流程实例对应的执行
- IS_ACTIVE_:是否活动的执行 0:非活动、1:活动
- IS_CONCURRENT_:是否并行分支 0:非 1:是
- IS_SCOPE_:是否全局流程执行 0:非 1:是
- IS_EVENT_SCOPE:是否激活状态
- SUSPENSION_STATE:挂起状态 1:正常、2:挂起
- LOCK_TIME_:锁定时间
2、ACT_RU_TASK【TaskEntityImpl】:用户任务信息
- EXECUTION_ID_:执行流ID
- PROC_INST_ID_:流程实例ID
- PROC_DEF_ID_:流程定义ID
- PARENT_TASK_ID_:父任务
- TASK_DEF_KEY_:任务定义ID
- NAME_:任务定义名称
- OWNER_:拥有人
- ASSIGNEE_:代理人
- DELEGATION:委托状态 PENDING:委托中,RESOLVED:已处理
- PRIORITY_:优先级
- DUE_DATE_:过期时间
- FORM_KEY:表单标志
3、ACT_RU_VARIABLE【VariableInstanceEntityImpl】:变量信息
- TYPE_:变量类型(interger,string,double,json。。。)
- NAME_:变量名
- BYTEARRAY_ID_:资源表ID
- DOUBLE_:浮点值
- LONG_:长整型数值
- TEXT_:文本值
4、ACT_RU_IDENTITYLINK【IdentityLinkEntityImpl】:参与者相关信息
- ID_:主键
- GROUP_ID_:用户组ID
- TYPE_:类型assignee,candidate,owner,starter。。。
- USER_ID_:用户ID
- Task_ID_:任务ID
- PROC_INST_ID_:流程实例
5、ACT_RU_EVENT_SUBSCR【EventSubscriptionEntityImpl】:事件监听表
- EVENT_TYPE_:事件类型:message,signal
- EVENT_NAME_:事件名称
- EXECTON_ID:流程执行ID
- PROC_INST_ID_:流程实例ID
- ACTIVITY_ID_:流程定义节点ID
- CONFIGUATION:配置
6、ACT_RU_JOB【JobEntityImpl】:作业表
- TYPE_:类型
- LOCK_EXP_TIME_:锁定过期时间
- LOCK_OWNER_:锁定节点
- EXCLUSIVE_:是否唯一
- RETRIES_:重试次数3
- REPEAT_:重复表达式
- EXCEPTION_STACK_ID_:异常堆栈(资源表ID)
- EXCEPTION_MSG_:异常信息
- DUEDATE_:过期时间
- HANDLER_TYPE_:处理器类型
- HANDLER_CEF_:处理器配置
- EXECUTION_ID_:流程执行表ID
7、ACT_RU_TIMER_JOB【】:定时器表
8、ACT_RU_SUSPENDED_JOB【】:暂停作业表
9、ACT_RU_DEADLETTER_JOB【】:死信表
package com.imooc.activiti.activitidemo.dbentity;
import com.google.common.collect.Maps;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.test.ActivitiRule;
import org.junit.Rule;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Map;
/**
* @Description GE通用数据库配置测试
* @Author 胡浩
* @Date 2019/8/23
**/
public class DbRuntimeTest {
private static final Logger LOGGER = LoggerFactory.getLogger(DbRuntimeTest.class);
//测试、改为自己的mysql数据库
@Rule
public ActivitiRule activitiRule = new ActivitiRule("dbentity/activiti-mysql.cfg.xml");
/**
* 部署
*/
@Test
public void testRuntime() {
//会往act_ge_byteArray表插入一条资源记录
//会往act_re_deployment表插入一条流程部署记录表
//会往act_re_procdef表插入一条流程定义信息表
//<startEvent id="startEvent" name="开始" activiti:formKey="secend_approve_formkey"></startEvent>
activitiRule.getRepositoryService().createDeployment().name("二次审批流程")
.addClasspathResource("MyProcess.bpmn20.xml")
.deploy();
//act_ru_execution流程实例与分支执行信息插入2条(流程启动+用户任务执行)
//act_ru_task插入1条记录
Map<String, Object> variables = Maps.newHashMap();
//act_ru_variable 插入1条变量记录
variables.put("key1", "value1");
ProcessInstance process = activitiRule.getRuntimeService().startProcessInstanceByKey("process", variables);
}
/**
* 设置所属人
*/
@Test
public void testSetOwner() {
TaskService taskService = activitiRule.getTaskService();
Task task = taskService.createTaskQuery().processDefinitionKey("process").singleResult();
//ACT_RU_IDENTITYLINK 插入1条用户记录,并更新act_ru_task的owner字段
taskService.setOwner(task.getId(), "user1");
}
/**
* 数据库表流程key需要保持唯一、所以为了测试,先把数据库清空
*/
@Test
public void testMessage(){
//会往act_ge_byteArray表插入一条资源记录
//会往act_re_deployment表插入一条流程部署记录表
//会往act_re_procdef表插入一条流程定义信息表
//因为有message,会往act_ru_event_subscr表插入一条记录
// message形式是、只要接受到这个message信息,就会启动流程
activitiRule.getRepositoryService().createDeployment().name("测试部署Message")
.addClasspathResource("coreapi/my-process-message.bpmn20.xml")
.deploy();
// //message-received是在usertask上,需要流程实例启动以后,如果接收到该信号,则运行usertask
// activitiRule.getRepositoryService().createDeployment().name("测试部署MessageReceived")
// .addClasspathResource("coreapi/my-process-message-received.bpmn20.xml")
// .deploy();
}
/**
* 数据库表流程key需要保持唯一、所以为了测试,先把数据库清空
*/
@Test
public void testMessageReceived(){
//会往act_ge_byteArray表插入一条资源记录
//会往act_re_deployment表插入一条流程部署记录表
//会往act_re_procdef表插入一条流程定义信息表
//message-received是在usertask上,需要流程实例启动以后,如果接收到该信号,则运行usertask
activitiRule.getRepositoryService().createDeployment().name("测试部署MessageReceived")
.addClasspathResource("coreapi/my-process-message-received.bpmn20.xml")
.deploy();
//启动
//插入act_ru_event_subscr表插入一条记录
ProcessInstance processInstance = activitiRule.getRuntimeService().startProcessInstanceByKey("my-process");
// Task task = activitiRule.getTaskService().createTaskQuery().singleResult();
}
}
网友评论