Activit学习笔记

Activiti环境搭建:

下载Activiti,下载地址:https://download.csdn.net/download/bugggget/11029073

安装MySQL

activiti数据库创建语句在末尾

搭建SpringBoot项目

在这里插入图片描述
pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ltp</groupId>
    <artifactId>activiti-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <h2.version>1.4.199</h2.version>
        <activiti.version>6.0.0</activiti.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${h2.version}</version>
            <scope>test</scope>
        </dependency>

        <!-- 上边引入 parent,因此 下边无需指定版本 -->
        <!-- 包含 mvc,aop 等jar资源 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--spring操作数据库jpa  用于将数据存入数据库的类和方法的集-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>LATEST</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>LATEST</version>
        </dependency>

        <!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>

        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-rest-api</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-actuator</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-jpa</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

    </dependencies>


</project>
application.yml配置文件
spring:
  application:
    name: activiti-demo
  jpa:
    show-sql: false
    open-in-view: false
  http:
    encoding:
      charset: UTF-8
      enabled: true
server:
  port: 8080
  tomcat:
    max-connections: 2000
    max-threads: 1000
  compression:
    enabled: true
    mime-types: application/json

activiti.cfg.xml配置,主要是配置数据源,和流程引擎的相关配置,以及相关bean的配置,当然也可以使用注解来配置

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <aop:aspectj-autoproxy />

    <bean id="activitiDataSource" class="com.alibaba.druid.pool.DruidDataSource" >
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/activiti" />
        <property name="username" value="root" />
        <property name="password" value="12345678" />
        <property name="defaultAutoCommit" value="false" />
    </bean>

    <bean id="processEngineConfiguration"
          class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="dataSource" ref="activitiDataSource" />
        <!--<property name="transactionManager" ref="activititransactionManager" />-->
        <property name="databaseSchemaUpdate" value="true" />
        <property name="asyncExecutorActivate" value="true" />
        <!--<property name="deploymentResources" value="classpath*:processes/test/litianpeng11.bpmn20.xml" />-->
        <!--event log-->
        <property name="enableDatabaseEventLogging" value="true"/>

        <!-- resolverFactories -->
        <property name="resolverFactories">
            <list>
                <bean class="org.activiti.engine.impl.scripting.VariableScopeResolverFactory" />
                <bean class="org.activiti.engine.impl.scripting.BeansResolverFactory" />
            </list>
        </property>
    </bean>

    <bean id="processEngine"
          class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration"
                  ref="processEngineConfiguration" />
    </bean>

    <!--提供一系列管理流程定义和流程部署的API-->
    <bean id="repositoryService" factory-bean="processEngine"
          factory-method="getRepositoryService" />
    <!--在流程运行时对流程实例进行管理与控制-->
    <bean id="runtimeService" factory-bean="processEngine"
          factory-method="getRuntimeService" primary="true"/>
    <!--对流程任务进行管理,如任务提醒、完成、创建任务子任务等-->
    <bean id="taskService" factory-bean="processEngine"
          factory-method="getTaskService" />
    <!--对流程的历史数据进行操作,包括查询、删除这些历史数据-->
    <bean id="historyService" factory-bean="processEngine"
          factory-method="getHistoryService" />
    <!--提供对流程引擎进行管理和维护的服务-->
    <bean id="managementService" factory-bean="processEngine"
          factory-method="getManagementService" />
    <bean id="formService" factory-bean="processEngine"
          factory-method="getFormService" />
    <!--使用该服务,可以不需要重新部署流程模型,就可以实现对流程模型的部分修改-->
    <bean id="dynamicBpmnService" factory-bean="processEngine"
          factory-method="getDynamicBpmnService" />

</beans>

流程图XML文件,是用来描述流程图的。流程图可以用插件画。

<?xml version="1.0" encoding="UTF-8" ?>
<definitions id="definitions"
             targetNamespace="http://activiti.org/bpmn20"
             xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:activiti="http://activiti.org/bpmn">

  <process id="vacationRequest" name="Vacation request">

    <startEvent id="request" activiti:initiator="employeeName">
      <extensionElements>
        <activiti:formProperty id="numberOfDays" name="Number of days" type="long" value="1" required="true"/>
        <activiti:formProperty id="startDate" name="First day of holiday (dd-MM-yyy)" datePattern="dd-MM-yyyy hh:mm" type="date" required="true" />
        <activiti:formProperty id="vacationMotivation" name="Motivation" type="string" />
      </extensionElements>
    </startEvent>
    <sequenceFlow id="flow1" sourceRef="request" targetRef="handleRequest" />

    <userTask id="handleRequest" name="Handle vacation request" >
      <documentation>
        ${employeeName} would like to take ${numberOfDays} day(s) of vacation (Motivation: ${vacationMotivation}).
      </documentation>
      <extensionElements>
        <activiti:formProperty id="vacationApproved" name="Do you approve this vacation" type="enum" required="true">
          <activiti:value id="true" name="Approve" />
          <activiti:value id="false" name="Reject" />
        </activiti:formProperty>
        <activiti:formProperty id="managerMotivation" name="Motivation" type="string" />
      </extensionElements>
      <potentialOwner>
        <resourceAssignmentExpression>
          <formalExpression>management</formalExpression>
        </resourceAssignmentExpression>
      </potentialOwner>
    </userTask>
    <sequenceFlow id="flow2" sourceRef="handleRequest" targetRef="requestApprovedDecision" />

    <exclusiveGateway id="requestApprovedDecision" name="Request approved?" />
    <sequenceFlow id="flow3" sourceRef="requestApprovedDecision" targetRef="sendApprovalMail">
      <conditionExpression xsi:type="tFormalExpression">${vacationApproved == 'true'}</conditionExpression>
    </sequenceFlow>

    <task id="sendApprovalMail" name="Send confirmation e-mail" />
    <sequenceFlow id="flow4" sourceRef="sendApprovalMail" targetRef="theEnd1" />
    <endEvent id="theEnd1" />

    <sequenceFlow id="flow5" sourceRef="requestApprovedDecision" targetRef="adjustVacationRequestTask">
      <conditionExpression xsi:type="tFormalExpression">${vacationApproved == 'false'}</conditionExpression>
    </sequenceFlow>

    <userTask id="adjustVacationRequestTask" name="Adjust vacation request">
      <documentation>
        Your manager has disapproved your vacation request for ${numberOfDays} days.
        Reason: ${managerMotivation}
      </documentation>
      <extensionElements>
        <activiti:formProperty id="numberOfDays" name="Number of days" value="${numberOfDays}" type="long" required="true"/>
        <activiti:formProperty id="startDate" name="First day of holiday (dd-MM-yyy)" value="${startDate}" datePattern="dd-MM-yyyy hh:mm" type="date" required="true" />
        <activiti:formProperty id="vacationMotivation" name="Motivation" value="${vacationMotivation}" type="string" />
        <activiti:formProperty id="resendRequest" name="Resend vacation request to manager?" type="enum" required="true">
          <activiti:value id="true" name="Yes" />
          <activiti:value id="false" name="No" />
        </activiti:formProperty>
      </extensionElements>
      <humanPerformer>
        <resourceAssignmentExpression>
          <formalExpression>${employeeName}</formalExpression>
        </resourceAssignmentExpression>
      </humanPerformer>
    </userTask>
    <sequenceFlow id="flow6" sourceRef="adjustVacationRequestTask" targetRef="resendRequestDecision" />

    <exclusiveGateway id="resendRequestDecision" name="Resend request?" />
    <sequenceFlow id="flow7" sourceRef="resendRequestDecision" targetRef="handleRequest">
      <conditionExpression xsi:type="tFormalExpression">${resendRequest == 'true'}</conditionExpression>
    </sequenceFlow>

    <sequenceFlow id="flow8" sourceRef="resendRequestDecision" targetRef="theEnd2">
      <conditionExpression xsi:type="tFormalExpression">${resendRequest == 'false'}</conditionExpression>
    </sequenceFlow>
    <endEvent id="theEnd2" />

  </process>

</definitions>

流程部署代码

repositoryService.createDeployment()
                .addClasspathResource("processes/vacationRequest.bpmn20.xml").deploy();

流程实例启动

		Map<String, Object> variables = new HashMap<>();
        variables.put("employeeName", "Leetp");
        variables.put("numberOfDays", new Integer(10));
        variables.put("vacationMotivation", "i'm too tired !");
        runtimeService.startProcessInstanceByKey("vacationRequest", variables);

任务查询:

		List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("management").list();
        for (Task task : tasks) {
            System.out.println("Task available: " + task.getName() + " id: " + task.getId() + "processInstanceId: " +task.getProcessInstanceId());
        }

完成任务:

		Task task = tasks.get(0);
        Map<String, Object> taskVariables = new HashMap<>();
        taskVariables.put("vacationApproved", "false");
        taskVariables.put("managerMotivation", "there are too much job to do, so i cant approve!");
        taskService.complete(task.getId(), taskVariables);

HistoryService查询:
ProcessInstanceId = 工单ID = 流程实例ID

String processInstanceId = historyService.createHistoricVariableInstanceQuery().processInstanceId("123")
			.list().get(0).getProcessInstanceId();

使用HistoryService获取流程参数

List<HistoricVariableInstance> historicVariableInstances = historyService
				.createHistoricVariableInstanceQuery().processInstanceId("123")
                .excludeTaskVariables().list();
                
int size = historicVariableInstances.size();
for (int i = 0; i < size; i++) {
    System.out.println(historicVariableInstances.get(i).getVariableName()
     	+ ": " + historicVariableInstances.get(i).getValue());
}

TaskService查询:
流程节点ID

String id = taskService.createTaskQuery()
					   .processInstanceId("123").list().get(0).getId();
create table ACT_GE_PROPERTY (

    NAME_ varchar(64),

    VALUE_ varchar(300),

    REV_ integer,

    primary key (NAME_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



insert into ACT_GE_PROPERTY

values ('schema.version', '6.0.0.4', 1);



insert into ACT_GE_PROPERTY

values ('schema.history', 'create(6.0.0.4)', 1);



insert into ACT_GE_PROPERTY

values ('next.dbid', '1', 1);



create table ACT_GE_BYTEARRAY (

    ID_ varchar(64),

    REV_ integer,

    NAME_ varchar(255),

    DEPLOYMENT_ID_ varchar(64),

    BYTES_ LONGBLOB,

    GENERATED_ TINYINT,

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RE_DEPLOYMENT (

    ID_ varchar(64),

    NAME_ varchar(255),

    CATEGORY_ varchar(255),

    KEY_ varchar(255),

    TENANT_ID_ varchar(255) default '',

    DEPLOY_TIME_ timestamp(3) NULL,

    ENGINE_VERSION_ varchar(255),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RE_MODEL (

    ID_ varchar(64) not null,

    REV_ integer,

    NAME_ varchar(255),

    KEY_ varchar(255),

    CATEGORY_ varchar(255),

    CREATE_TIME_ timestamp(3) null,

    LAST_UPDATE_TIME_ timestamp(3) null,

    VERSION_ integer,

    META_INFO_ varchar(4000),

    DEPLOYMENT_ID_ varchar(64),

    EDITOR_SOURCE_VALUE_ID_ varchar(64),

    EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_EXECUTION (

    ID_ varchar(64),

    REV_ integer,

    PROC_INST_ID_ varchar(64),

    BUSINESS_KEY_ varchar(255),

    PARENT_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    SUPER_EXEC_ varchar(64),

    ROOT_PROC_INST_ID_ varchar(64),

    ACT_ID_ varchar(255),

    IS_ACTIVE_ TINYINT,

    IS_CONCURRENT_ TINYINT,

    IS_SCOPE_ TINYINT,

    IS_EVENT_SCOPE_ TINYINT,

    IS_MI_ROOT_ TINYINT,

    SUSPENSION_STATE_ integer,

    CACHED_ENT_STATE_ integer,

    TENANT_ID_ varchar(255) default '',

    NAME_ varchar(255),

    START_TIME_ datetime(3),

    START_USER_ID_ varchar(255),

    LOCK_TIME_ timestamp(3) NULL,

    IS_COUNT_ENABLED_ TINYINT,

    EVT_SUBSCR_COUNT_ integer,

    TASK_COUNT_ integer,

    JOB_COUNT_ integer,

    TIMER_JOB_COUNT_ integer,

    SUSP_JOB_COUNT_ integer,

    DEADLETTER_JOB_COUNT_ integer,

    VAR_COUNT_ integer,

    ID_LINK_COUNT_ integer,

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_JOB (

    ID_ varchar(64) NOT NULL,

    REV_ integer,

    TYPE_ varchar(255) NOT NULL,

    LOCK_EXP_TIME_ timestamp(3) NULL,

    LOCK_OWNER_ varchar(255),

    EXCLUSIVE_ boolean,

    EXECUTION_ID_ varchar(64),

    PROCESS_INSTANCE_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    RETRIES_ integer,

    EXCEPTION_STACK_ID_ varchar(64),

    EXCEPTION_MSG_ varchar(4000),

    DUEDATE_ timestamp(3) NULL,

    REPEAT_ varchar(255),

    HANDLER_TYPE_ varchar(255),

    HANDLER_CFG_ varchar(4000),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_TIMER_JOB (

    ID_ varchar(64) NOT NULL,

    REV_ integer,

    TYPE_ varchar(255) NOT NULL,

    LOCK_EXP_TIME_ timestamp(3) NULL,

    LOCK_OWNER_ varchar(255),

    EXCLUSIVE_ boolean,

    EXECUTION_ID_ varchar(64),

    PROCESS_INSTANCE_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    RETRIES_ integer,

    EXCEPTION_STACK_ID_ varchar(64),

    EXCEPTION_MSG_ varchar(4000),

    DUEDATE_ timestamp(3) NULL,

    REPEAT_ varchar(255),

    HANDLER_TYPE_ varchar(255),

    HANDLER_CFG_ varchar(4000),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_SUSPENDED_JOB (

    ID_ varchar(64) NOT NULL,

    REV_ integer,

    TYPE_ varchar(255) NOT NULL,

    EXCLUSIVE_ boolean,

    EXECUTION_ID_ varchar(64),

    PROCESS_INSTANCE_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    RETRIES_ integer,

    EXCEPTION_STACK_ID_ varchar(64),

    EXCEPTION_MSG_ varchar(4000),

    DUEDATE_ timestamp(3) NULL,

    REPEAT_ varchar(255),

    HANDLER_TYPE_ varchar(255),

    HANDLER_CFG_ varchar(4000),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_DEADLETTER_JOB (

    ID_ varchar(64) NOT NULL,

    REV_ integer,

    TYPE_ varchar(255) NOT NULL,

    EXCLUSIVE_ boolean,

    EXECUTION_ID_ varchar(64),

    PROCESS_INSTANCE_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    EXCEPTION_STACK_ID_ varchar(64),

    EXCEPTION_MSG_ varchar(4000),

    DUEDATE_ timestamp(3) NULL,

    REPEAT_ varchar(255),

    HANDLER_TYPE_ varchar(255),

    HANDLER_CFG_ varchar(4000),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RE_PROCDEF (

    ID_ varchar(64) not null,

    REV_ integer,

    CATEGORY_ varchar(255),

    NAME_ varchar(255),

    KEY_ varchar(255) not null,

    VERSION_ integer not null,

    DEPLOYMENT_ID_ varchar(64),

    RESOURCE_NAME_ varchar(4000),

    DGRM_RESOURCE_NAME_ varchar(4000),

    DESCRIPTION_ varchar(4000),

    HAS_START_FORM_KEY_ TINYINT,

    HAS_GRAPHICAL_NOTATION_ TINYINT,

    SUSPENSION_STATE_ integer,

    TENANT_ID_ varchar(255) default '',

    ENGINE_VERSION_ varchar(255),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_TASK (

    ID_ varchar(64),

    REV_ integer,

    EXECUTION_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    NAME_ varchar(255),

    PARENT_TASK_ID_ varchar(64),

    DESCRIPTION_ varchar(4000),

    TASK_DEF_KEY_ varchar(255),

    OWNER_ varchar(255),

    ASSIGNEE_ varchar(255),

    DELEGATION_ varchar(64),

    PRIORITY_ integer,

    CREATE_TIME_ timestamp(3) NULL,

    DUE_DATE_ datetime(3),

    CATEGORY_ varchar(255),

    SUSPENSION_STATE_ integer,

    TENANT_ID_ varchar(255) default '',

    FORM_KEY_ varchar(255),

    CLAIM_TIME_ datetime(3),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_IDENTITYLINK (

    ID_ varchar(64),

    REV_ integer,

    GROUP_ID_ varchar(255),

    TYPE_ varchar(255),

    USER_ID_ varchar(255),

    TASK_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    PROC_DEF_ID_ varchar(64),    

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_VARIABLE (

    ID_ varchar(64) not null,

    REV_ integer,

    TYPE_ varchar(255) not null,

    NAME_ varchar(255) not null,

    EXECUTION_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    TASK_ID_ varchar(64),

    BYTEARRAY_ID_ varchar(64),

    DOUBLE_ double,

    LONG_ bigint,

    TEXT_ varchar(4000),

    TEXT2_ varchar(4000),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_RU_EVENT_SUBSCR (

    ID_ varchar(64) not null,

    REV_ integer,

    EVENT_TYPE_ varchar(255) not null,

    EVENT_NAME_ varchar(255),

    EXECUTION_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    ACTIVITY_ID_ varchar(64),

    CONFIGURATION_ varchar(255),

    CREATED_ timestamp(3) not null DEFAULT CURRENT_TIMESTAMP(3),

    PROC_DEF_ID_ varchar(64),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_EVT_LOG (

    LOG_NR_ bigint auto_increment,

    TYPE_ varchar(64),

    PROC_DEF_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    EXECUTION_ID_ varchar(64),

    TASK_ID_ varchar(64),

    TIME_STAMP_ timestamp(3) not null,

    USER_ID_ varchar(255),

    DATA_ LONGBLOB,

    LOCK_OWNER_ varchar(255),

    LOCK_TIME_ timestamp(3) null,

    IS_PROCESSED_ tinyint default 0,

    primary key (LOG_NR_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_PROCDEF_INFO (

    ID_ varchar(64) not null,

    PROC_DEF_ID_ varchar(64) not null,

    REV_ integer,

    INFO_JSON_ID_ varchar(64),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);

create index ACT_IDC_EXEC_ROOT on ACT_RU_EXECUTION(ROOT_PROC_INST_ID_);

create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);

create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);

create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);

create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);

create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);

create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);

create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_);



alter table ACT_GE_BYTEARRAY

    add constraint ACT_FK_BYTEARR_DEPL

    foreign key (DEPLOYMENT_ID_)

    references ACT_RE_DEPLOYMENT (ID_);



alter table ACT_RE_PROCDEF

    add constraint ACT_UNIQ_PROCDEF

    unique (KEY_,VERSION_, TENANT_ID_);

alter table ACT_RU_EXECUTION

    add constraint ACT_FK_EXE_PROCINST

    foreign key (PROC_INST_ID_)

    references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade;



alter table ACT_RU_EXECUTION

    add constraint ACT_FK_EXE_PARENT

    foreign key (PARENT_ID_)

    references ACT_RU_EXECUTION (ID_) on delete cascade;

alter table ACT_RU_EXECUTION

    add constraint ACT_FK_EXE_SUPER

    foreign key (SUPER_EXEC_)

    references ACT_RU_EXECUTION (ID_) on delete cascade;

alter table ACT_RU_EXECUTION

    add constraint ACT_FK_EXE_PROCDEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF (ID_);

alter table ACT_RU_IDENTITYLINK

    add constraint ACT_FK_TSKASS_TASK

    foreign key (TASK_ID_)

    references ACT_RU_TASK (ID_);

alter table ACT_RU_IDENTITYLINK

    add constraint ACT_FK_ATHRZ_PROCEDEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF(ID_);

alter table ACT_RU_IDENTITYLINK

    add constraint ACT_FK_IDL_PROCINST

    foreign key (PROC_INST_ID_)

    references ACT_RU_EXECUTION (ID_);       

alter table ACT_RU_TASK

    add constraint ACT_FK_TASK_EXE

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_TASK

    add constraint ACT_FK_TASK_PROCINST

    foreign key (PROC_INST_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_TASK

      add constraint ACT_FK_TASK_PROCDEF

      foreign key (PROC_DEF_ID_)

      references ACT_RE_PROCDEF (ID_);



alter table ACT_RU_VARIABLE

    add constraint ACT_FK_VAR_EXE

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION (ID_);



alter table ACT_RU_VARIABLE

    add constraint ACT_FK_VAR_PROCINST

    foreign key (PROC_INST_ID_)

    references ACT_RU_EXECUTION(ID_);



alter table ACT_RU_VARIABLE

    add constraint ACT_FK_VAR_BYTEARRAY

    foreign key (BYTEARRAY_ID_)

    references ACT_GE_BYTEARRAY (ID_);

alter table ACT_RU_JOB

    add constraint ACT_FK_JOB_EXECUTION

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_JOB

    add constraint ACT_FK_JOB_PROCESS_INSTANCE

    foreign key (PROCESS_INSTANCE_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_JOB

    add constraint ACT_FK_JOB_PROC_DEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF (ID_);



alter table ACT_RU_JOB

    add constraint ACT_FK_JOB_EXCEPTION

    foreign key (EXCEPTION_STACK_ID_)

    references ACT_GE_BYTEARRAY (ID_);

alter table ACT_RU_TIMER_JOB

    add constraint ACT_FK_TIMER_JOB_EXECUTION

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_TIMER_JOB

    add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE

    foreign key (PROCESS_INSTANCE_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_TIMER_JOB

    add constraint ACT_FK_TIMER_JOB_PROC_DEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF (ID_);

alter table ACT_RU_TIMER_JOB

    add constraint ACT_FK_TIMER_JOB_EXCEPTION

    foreign key (EXCEPTION_STACK_ID_)

    references ACT_GE_BYTEARRAY (ID_);

alter table ACT_RU_SUSPENDED_JOB

    add constraint ACT_FK_SUSPENDED_JOB_EXECUTION

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_SUSPENDED_JOB

    add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE

    foreign key (PROCESS_INSTANCE_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_SUSPENDED_JOB

    add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF (ID_);

alter table ACT_RU_SUSPENDED_JOB

    add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION

    foreign key (EXCEPTION_STACK_ID_)

    references ACT_GE_BYTEARRAY (ID_);

alter table ACT_RU_DEADLETTER_JOB

    add constraint ACT_FK_DEADLETTER_JOB_EXECUTION

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_DEADLETTER_JOB

    add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE

    foreign key (PROCESS_INSTANCE_ID_)

    references ACT_RU_EXECUTION (ID_);

alter table ACT_RU_DEADLETTER_JOB

    add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF (ID_);

alter table ACT_RU_DEADLETTER_JOB

    add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION

    foreign key (EXCEPTION_STACK_ID_)

    references ACT_GE_BYTEARRAY (ID_);



alter table ACT_RU_EVENT_SUBSCR

    add constraint ACT_FK_EVENT_EXEC

    foreign key (EXECUTION_ID_)

    references ACT_RU_EXECUTION(ID_);

alter table ACT_RE_MODEL

    add constraint ACT_FK_MODEL_SOURCE

    foreign key (EDITOR_SOURCE_VALUE_ID_)

    references ACT_GE_BYTEARRAY (ID_);



alter table ACT_RE_MODEL

    add constraint ACT_FK_MODEL_SOURCE_EXTRA

    foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_)

    references ACT_GE_BYTEARRAY (ID_);

alter table ACT_RE_MODEL

    add constraint ACT_FK_MODEL_DEPLOYMENT

    foreign key (DEPLOYMENT_ID_)

    references ACT_RE_DEPLOYMENT (ID_);        



alter table ACT_PROCDEF_INFO

    add constraint ACT_FK_INFO_JSON_BA

    foreign key (INFO_JSON_ID_)

    references ACT_GE_BYTEARRAY (ID_);



alter table ACT_PROCDEF_INFO

    add constraint ACT_FK_INFO_PROCDEF

    foreign key (PROC_DEF_ID_)

    references ACT_RE_PROCDEF (ID_);

alter table ACT_PROCDEF_INFO

    add constraint ACT_UNIQ_INFO_PROCDEF

    unique (PROC_DEF_ID_);





activiti.mysql.create.history.sql
create table ACT_HI_PROCINST (

    ID_ varchar(64) not null,

    PROC_INST_ID_ varchar(64) not null,

    BUSINESS_KEY_ varchar(255),

    PROC_DEF_ID_ varchar(64) not null,

    START_TIME_ datetime(3) not null,

    END_TIME_ datetime(3),

    DURATION_ bigint,

    START_USER_ID_ varchar(255),

    START_ACT_ID_ varchar(255),

    END_ACT_ID_ varchar(255),

    SUPER_PROCESS_INSTANCE_ID_ varchar(64),

    DELETE_REASON_ varchar(4000),

    TENANT_ID_ varchar(255) default '',

    NAME_ varchar(255),

    primary key (ID_),

    unique (PROC_INST_ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_ACTINST (

    ID_ varchar(64) not null,

    PROC_DEF_ID_ varchar(64) not null,

    PROC_INST_ID_ varchar(64) not null,

    EXECUTION_ID_ varchar(64) not null,

    ACT_ID_ varchar(255) not null,

    TASK_ID_ varchar(64),

    CALL_PROC_INST_ID_ varchar(64),

    ACT_NAME_ varchar(255),

    ACT_TYPE_ varchar(255) not null,

    ASSIGNEE_ varchar(255),

    START_TIME_ datetime(3) not null,

    END_TIME_ datetime(3),

    DURATION_ bigint,

    DELETE_REASON_ varchar(4000),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_TASKINST (

    ID_ varchar(64) not null,

    PROC_DEF_ID_ varchar(64),

    TASK_DEF_KEY_ varchar(255),

    PROC_INST_ID_ varchar(64),

    EXECUTION_ID_ varchar(64),

    NAME_ varchar(255),

    PARENT_TASK_ID_ varchar(64),

    DESCRIPTION_ varchar(4000),

    OWNER_ varchar(255),

    ASSIGNEE_ varchar(255),

    START_TIME_ datetime(3) not null,

    CLAIM_TIME_ datetime(3),

    END_TIME_ datetime(3),

    DURATION_ bigint,

    DELETE_REASON_ varchar(4000),

    PRIORITY_ integer,

    DUE_DATE_ datetime(3),

    FORM_KEY_ varchar(255),

    CATEGORY_ varchar(255),

    TENANT_ID_ varchar(255) default '',

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_VARINST (

    ID_ varchar(64) not null,

    PROC_INST_ID_ varchar(64),

    EXECUTION_ID_ varchar(64),

    TASK_ID_ varchar(64),

    NAME_ varchar(255) not null,

    VAR_TYPE_ varchar(100),

    REV_ integer,

    BYTEARRAY_ID_ varchar(64),

    DOUBLE_ double,

    LONG_ bigint,

    TEXT_ varchar(4000),

    TEXT2_ varchar(4000),

    CREATE_TIME_ datetime(3),

    LAST_UPDATED_TIME_ datetime(3),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_DETAIL (

    ID_ varchar(64) not null,

    TYPE_ varchar(255) not null,

    PROC_INST_ID_ varchar(64),

    EXECUTION_ID_ varchar(64),

    TASK_ID_ varchar(64),

    ACT_INST_ID_ varchar(64),

    NAME_ varchar(255) not null,

    VAR_TYPE_ varchar(255),

    REV_ integer,

    TIME_ datetime(3) not null,

    BYTEARRAY_ID_ varchar(64),

    DOUBLE_ double,

    LONG_ bigint,

    TEXT_ varchar(4000),

    TEXT2_ varchar(4000),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_COMMENT (

    ID_ varchar(64) not null,

    TYPE_ varchar(255),

    TIME_ datetime(3) not null,

    USER_ID_ varchar(255),

    TASK_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    ACTION_ varchar(255),

    MESSAGE_ varchar(4000),

    FULL_MSG_ LONGBLOB,

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_ATTACHMENT (

    ID_ varchar(64) not null,

    REV_ integer,

    USER_ID_ varchar(255),

    NAME_ varchar(255),

    DESCRIPTION_ varchar(4000),

    TYPE_ varchar(255),

    TASK_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    URL_ varchar(4000),

    CONTENT_ID_ varchar(64),

    TIME_ datetime(3),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_HI_IDENTITYLINK (

    ID_ varchar(64),

    GROUP_ID_ varchar(255),

    TYPE_ varchar(255),

    USER_ID_ varchar(255),

    TASK_ID_ varchar(64),

    PROC_INST_ID_ varchar(64),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;





create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);

create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);

create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);

create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);

create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);

create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);

create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);

create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);

create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);

create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);

create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);

create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_);

create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);

create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_);

create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);

create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_);

create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_);

create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);


create table ACT_ID_GROUP (

    ID_ varchar(64),

    REV_ integer,

    NAME_ varchar(255),

    TYPE_ varchar(255),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_ID_MEMBERSHIP (

    USER_ID_ varchar(64),

    GROUP_ID_ varchar(64),

    primary key (USER_ID_, GROUP_ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_ID_USER (

    ID_ varchar(64),

    REV_ integer,

    FIRST_ varchar(255),

    LAST_ varchar(255),

    EMAIL_ varchar(255),

    PWD_ varchar(255),

    PICTURE_ID_ varchar(64),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



create table ACT_ID_INFO (

    ID_ varchar(64),

    REV_ integer,

    USER_ID_ varchar(64),

    TYPE_ varchar(64),

    KEY_ varchar(255),

    VALUE_ varchar(255),

    PASSWORD_ LONGBLOB,

    PARENT_ID_ varchar(255),

    primary key (ID_)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;



alter table ACT_ID_MEMBERSHIP

    add constraint ACT_FK_MEMB_GROUP

    foreign key (GROUP_ID_)

    references ACT_ID_GROUP (ID_);



alter table ACT_ID_MEMBERSHIP

    add constraint ACT_FK_MEMB_USER

    foreign key (USER_ID_)

    references ACT_ID_USER (ID_);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值