• 【Activiti工作流引擎】官方快速入门demo


    Activiti官方快速入门demo

    地址:
    https://www.activiti.org/quick-start

    0. 版本

    activiti 5.22.0
    JDK 1.8

    1. 介绍

    这个快速入门指南用于介绍如何在你编写的应用程序中嵌入BPM(Business Process Management)框架Activiti,你可以构建一个基于命令行的BPMN(业务流程建模与标注)逻辑应用程序。
    Activiti拥有先进的流程设计工具,可将更复杂的BPM逻辑嵌入到您的应用程序中。这些工具包括基于Eclipse和基于Web的BPMN编辑器等等。为简洁起见,本快速入门只使用Activiti的Java API。

    2. 创建设设置Maven项目

    使用以下Maven依赖项创建一个名为“ActivitiDeveloperQuickStart”(以下称为)的Java项目:
    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>activiti</groupId>
        <artifactId>activiti-demo</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <!--Activiti的BPM引擎-->
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-engine</artifactId>
                <version>5.22.0</version>
            </dependency>
            <!--日志记录-->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.21</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.21</version>
            </dependency>
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>1.4.193</version>
            </dependency>
            <!--Mysql数据库驱动-->
            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.6</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <!-- Maven Assembly Plugin -->
                <!--Maven打包工具-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.4.1</version>
                    <configuration>
                        <!-- get all project dependencies -->
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <!-- MainClass in mainfest make a executable jar -->
                        <archive>
                            <manifest>
                                <mainClass>com.example.OnboardingRequest</mainClass>
                            </manifest>
                        </archive>
                        <encoding>UTF-8</encoding>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <!-- bind to the packaging phase -->
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>

    官方使用的数据库是H2,由于我想看一下表结构,所以这里我自己使用的是mysql数据库

    3. 创建流程引擎

    配置日志
    D:IDEAProjectactivitidemosrcmain esourceslog4j.properties

    log4j.rootLogger=DEBUG, ACT
    
    log4j.appender.ACT=org.apache.log4j.ConsoleAppender
    log4j.appender.ACT.layout=org.apache.log4j.PatternLayout
    log4j.appender.ACT.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

    创建一个带main方法的类

    D:IDEAProjectactivitidemosrcmainjavacomexampleOnboardingRequest.java

    package com.example;
    
    public class OnboardingRequest {
        public static void main(String[] args) {
    
        }
    }

    使用Java代码的方式创建流程引擎

    public class OnboardingRequest {
        public static void main(String[] args) throws ParseException {
            ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                    .setJdbcUrl("jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC")
                    .setJdbcUsername("root")
                    .setJdbcPassword("123456")
                    .setJdbcDriver("com.mysql.jdbc.Driver")
                    .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
            ProcessEngine processEngine = cfg.buildProcessEngine();
            String pName = processEngine.getName();
            String ver = ProcessEngine.VERSION;
            System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");
        }
    }

    FatJar也就叫做UberJar,是一种可执行的Jar包(Executable Jar)。FatJar和普通的jar不同在于它包含了依赖的jar包。
    在第一步中已经把中加入了fatjar的配置

    运行OnboardingRequest.java,运行成功后数据库会出现25张表

    4. 部署流程实例

    官方提供的Onboarding(入职)流程是:
    1. 输入数据
    2. 经验大于3年,发布个性化入职欢迎消息
    3. 工作经验3年或者以下,直接把数据存入后端系统

    官方提供的是xml配置文件
    / src / main / resources / onboarding.bpmn20.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef">
      <process id="onboarding" name="Onboarding" isExecutable="true">
        <startEvent id="startOnboarding" name="Start" activiti:initiator="initiator"></startEvent>
        <userTask id="enterOnboardingData" name="Enter Data" activiti:assignee="${initiator}" activiti:candidateGroups="managers">
          <extensionElements>
            <activiti:formProperty id="fullName" name="Full Name" type="string"></activiti:formProperty>
            <activiti:formProperty id="yearsOfExperience" name="Years of Experience" type="long" required="true"></activiti:formProperty>
          </extensionElements>
        </userTask>
        <sequenceFlow id="sid-1337EA98-7364-4198-B5D9-30F5341D6918" sourceRef="startOnboarding" targetRef="enterOnboardingData"></sequenceFlow>
        <exclusiveGateway id="decision" name="Years of Experience" default="automatedIntroPath"></exclusiveGateway>
        <sequenceFlow id="sid-42BE5661-C3D5-4DE6-96F5-73D34822727A" sourceRef="enterOnboardingData" targetRef="decision"></sequenceFlow>
        <userTask id="personalizedIntro" name="Personalized Introduction and Data Entry" activiti:assignee="${initiator}" activiti:candidateGroups="managers">
          <extensionElements>
            <activiti:formProperty id="personalWelcomeTime" name="Personal Welcome Time" type="date" datePattern="MM-dd-yyyy hh:mm"></activiti:formProperty>
          </extensionElements>
        </userTask>
        <endEvent id="endOnboarding" name="End"></endEvent>
        <sequenceFlow id="sid-37A73ACA-2E23-400B-96F3-71F77738DAFA" sourceRef="automatedIntro" targetRef="endOnboarding"></sequenceFlow>
        <scriptTask id="automatedIntro" name="Generic and Automated Data Entry" scriptFormat="javascript" activiti:autoStoreVariables="false">
          <script><![CDATA[var dateAsString = new Date().toString();
    execution.setVariable("autoWelcomeTime", dateAsString);]]></script>
        </scriptTask>
        <sequenceFlow id="automatedIntroPath" sourceRef="decision" targetRef="automatedIntro"></sequenceFlow>
        <sequenceFlow id="personalizedIntroPath" name="&gt;3" sourceRef="decision" targetRef="personalizedIntro">
          <conditionExpression xsi:type="tFormalExpression"><![CDATA[${yearsOfExperience > 3}]]></conditionExpression>
        </sequenceFlow>
        <sequenceFlow id="sid-BA6F061B-47B6-428B-8CE6-739244B14BD6" sourceRef="personalizedIntro" targetRef="endOnboarding"></sequenceFlow>
      </process>
      <bpmndi:BPMNDiagram id="BPMNDiagram_onboarding">
        <bpmndi:BPMNPlane bpmnElement="onboarding" id="BPMNPlane_onboarding">
          <bpmndi:BPMNShape bpmnElement="startOnboarding" id="BPMNShape_startOnboarding">
            <omgdc:Bounds height="30.0" width="30.0" x="155.0" y="145.0"></omgdc:Bounds>
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="enterOnboardingData" id="BPMNShape_enterOnboardingData">
            <omgdc:Bounds height="80.0" width="100.0" x="240.0" y="120.0"></omgdc:Bounds>
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="decision" id="BPMNShape_decision">
            <omgdc:Bounds height="40.0" width="40.0" x="385.0" y="140.0"></omgdc:Bounds>
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="personalizedIntro" id="BPMNShape_personalizedIntro">
            <omgdc:Bounds height="80.0" width="100.0" x="519.0" y="15.0"></omgdc:Bounds>
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="endOnboarding" id="BPMNShape_endOnboarding">
            <omgdc:Bounds height="28.0" width="28.0" x="725.0" y="165.0"></omgdc:Bounds>
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="automatedIntro" id="BPMNShape_automatedIntro">
            <omgdc:Bounds height="80.0" width="100.0" x="520.0" y="255.0"></omgdc:Bounds>
          </bpmndi:BPMNShape>
          <bpmndi:BPMNEdge bpmnElement="sid-37A73ACA-2E23-400B-96F3-71F77738DAFA" id="BPMNEdge_sid-37A73ACA-2E23-400B-96F3-71F77738DAFA">
            <omgdi:waypoint x="570.0" y="255.0"></omgdi:waypoint>
            <omgdi:waypoint x="570.0" y="179.0"></omgdi:waypoint>
            <omgdi:waypoint x="725.0" y="179.0"></omgdi:waypoint>
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="sid-1337EA98-7364-4198-B5D9-30F5341D6918" id="BPMNEdge_sid-1337EA98-7364-4198-B5D9-30F5341D6918">
            <omgdi:waypoint x="185.0" y="160.0"></omgdi:waypoint>
            <omgdi:waypoint x="240.0" y="160.0"></omgdi:waypoint>
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="automatedIntroPath" id="BPMNEdge_automatedIntroPath">
            <omgdi:waypoint x="405.0" y="180.0"></omgdi:waypoint>
            <omgdi:waypoint x="405.0" y="295.0"></omgdi:waypoint>
            <omgdi:waypoint x="520.0" y="295.0"></omgdi:waypoint>
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="personalizedIntroPath" id="BPMNEdge_personalizedIntroPath">
            <omgdi:waypoint x="405.0" y="140.0"></omgdi:waypoint>
            <omgdi:waypoint x="405.0" y="55.0"></omgdi:waypoint>
            <omgdi:waypoint x="519.0" y="55.0"></omgdi:waypoint>
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="sid-42BE5661-C3D5-4DE6-96F5-73D34822727A" id="BPMNEdge_sid-42BE5661-C3D5-4DE6-96F5-73D34822727A">
            <omgdi:waypoint x="340.0" y="160.0"></omgdi:waypoint>
            <omgdi:waypoint x="385.0" y="160.0"></omgdi:waypoint>
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="sid-BA6F061B-47B6-428B-8CE6-739244B14BD6" id="BPMNEdge_sid-BA6F061B-47B6-428B-8CE6-739244B14BD6">
            <omgdi:waypoint x="619.0" y="55.0"></omgdi:waypoint>
            <omgdi:waypoint x="739.0" y="55.0"></omgdi:waypoint>
            <omgdi:waypoint x="739.0" y="165.0"></omgdi:waypoint>
          </bpmndi:BPMNEdge>
        </bpmndi:BPMNPlane>
      </bpmndi:BPMNDiagram>
    </definitions>

    这里要注意的是:
    “Enter Data”节点有2个参数fullName和yearsOfExperience,candidate groups设置为managers
    “Personalized Introduction and Data Entry”节点有1个参数personalWelcomeTime,candidate groups设置为managers
    “Years of Experience”网关判断节点的条件是${yearsOfExperience > 3},默认走automatedIntroPath

    修改OnboardingRequest.java,部署流程实例

    package com.example;
    
    import java.text.ParseException;
    
    import org.activiti.engine.ProcessEngine;
    import org.activiti.engine.ProcessEngineConfiguration;
    import org.activiti.engine.RepositoryService;
    import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
    import org.activiti.engine.repository.Deployment;
    import org.activiti.engine.repository.ProcessDefinition;
    
    public class OnboardingRequest {
      public static void main(String[] args) throws ParseException {
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
            .setJdbcUrl("jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000")
            .setJdbcUsername("sa")
            .setJdbcPassword("")
            .setJdbcDriver("org.h2.Driver")
            .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        ProcessEngine processEngine = cfg.buildProcessEngine();
        String pName = processEngine.getName();
        String ver = ProcessEngine.VERSION;
        System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");
    
        RepositoryService repositoryService = processEngine.getRepositoryService();
        Deployment deployment = repositoryService.createDeployment()
            .addClasspathResource("onboarding.bpmn20.xml").deploy();
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
            .deploymentId(deployment.getId()).singleResult();
        System.out.println(
            "Found process definition [" 
                + processDefinition.getName() + "] with id [" 
                + processDefinition.getId() + "]");
      }
    }

    5. 启动流程实例

    已经部署的流程实例,可以通过Activiti API来启动,运行,查看历史记录,并以其他方式管理流程实例
    日志级别可以继续使用DEBUG,这里不修改,比较方便可以看到修改和查询了哪些表格

    修改OnboardingRequest.java,启动一个流程

    package com.example;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Scanner;
    
    import org.activiti.engine.FormService;
    import org.activiti.engine.HistoryService;
    import org.activiti.engine.ProcessEngine;
    import org.activiti.engine.ProcessEngineConfiguration;
    import org.activiti.engine.RepositoryService;
    import org.activiti.engine.RuntimeService;
    import org.activiti.engine.TaskService;
    import org.activiti.engine.form.FormData;
    import org.activiti.engine.form.FormProperty;
    import org.activiti.engine.history.HistoricActivityInstance;
    import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
    import org.activiti.engine.impl.form.DateFormType;
    import org.activiti.engine.impl.form.LongFormType;
    import org.activiti.engine.impl.form.StringFormType;
    import org.activiti.engine.repository.Deployment;
    import org.activiti.engine.repository.ProcessDefinition;
    import org.activiti.engine.runtime.ProcessInstance;
    import org.activiti.engine.task.Task;
    
    public class OnboardingRequest {
      public static void main(String[] args) throws ParseException {
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
            .setJdbcUrl("jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000")
            .setJdbcUsername("sa")
            .setJdbcPassword("")
            .setJdbcDriver("org.h2.Driver")
            .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        ProcessEngine processEngine = cfg.buildProcessEngine();
        String pName = processEngine.getName();
        String ver = ProcessEngine.VERSION;
        System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");
    
        RepositoryService repositoryService = processEngine.getRepositoryService();
        Deployment deployment = repositoryService.createDeployment()
            .addClasspathResource("onboarding.bpmn20.xml").deploy();
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
            .deploymentId(deployment.getId()).singleResult();
        System.out.println(
            "Found process definition [" 
                + processDefinition.getName() + "] with id [" 
                + processDefinition.getId() + "]");
    
        RuntimeService runtimeService = processEngine.getRuntimeService();
        ProcessInstance processInstance = runtimeService
            .startProcessInstanceByKey("onboarding");
        System.out.println("Onboarding process started with process instance id [" 
            + processInstance.getProcessInstanceId()
            + "] key [" + processInstance.getProcessDefinitionKey() + "]");
    
        TaskService taskService = processEngine.getTaskService();
        FormService formService = processEngine.getFormService();
        HistoryService historyService = processEngine.getHistoryService();
    
        Scanner scanner = new Scanner(System.in);
        while (processInstance != null && !processInstance.isEnded()) {
          List<Task> tasks = taskService.createTaskQuery()
              .taskCandidateGroup("managers").list();
          System.out.println("Active outstanding tasks: [" + tasks.size() + "]");
          for (int i = 0; i < tasks.size(); i++) {
            Task task = tasks.get(i);
            System.out.println("Processing Task [" + task.getName() + "]");
            Map<String, Object> variables = new HashMap<String, Object>();
            FormData formData = formService.getTaskFormData(task.getId());
            for (FormProperty formProperty : formData.getFormProperties()) {
              if (StringFormType.class.isInstance(formProperty.getType())) {
                System.out.println(formProperty.getName() + "?");
                String value = scanner.nextLine();
                variables.put(formProperty.getId(), value);
              } else if (LongFormType.class.isInstance(formProperty.getType())) {
                System.out.println(formProperty.getName() + "? (Must be a whole number)");
                Long value = Long.valueOf(scanner.nextLine());
                variables.put(formProperty.getId(), value);
              } else if (DateFormType.class.isInstance(formProperty.getType())) {
                System.out.println(formProperty.getName() + "? (Must be a date m/d/yy)");
                DateFormat dateFormat = new SimpleDateFormat("m/d/yy");
                Date value = dateFormat.parse(scanner.nextLine());
                variables.put(formProperty.getId(), value);
              } else {
                System.out.println("<form type not supported>");
              }
            }
            taskService.complete(task.getId(), variables);
    
            HistoricActivityInstance endActivity = null;
            List<HistoricActivityInstance> activities = 
                historyService.createHistoricActivityInstanceQuery()
                .processInstanceId(processInstance.getId()).finished()
                .orderByHistoricActivityInstanceEndTime().asc()
                .list();
            for (HistoricActivityInstance activity : activities) {
              if (activity.getActivityType() == "startEvent") {
                System.out.println("BEGIN " + processDefinition.getName() 
                    + " [" + processInstance.getProcessDefinitionKey()
                    + "] " + activity.getStartTime());
              }
              if (activity.getActivityType() == "endEvent") {
                // Handle edge case where end step happens so fast that the end step
                // and previous step(s) are sorted the same. So, cache the end step 
                //and display it last to represent the logical sequence.
                endActivity = activity;
              } else {
                System.out.println("-- " + activity.getActivityName() 
                    + " [" + activity.getActivityId() + "] "
                    + activity.getDurationInMillis() + " ms");
              }
            }
            if (endActivity != null) {
              System.out.println("-- " + endActivity.getActivityName() 
                    + " [" + endActivity.getActivityId() + "] "
                    + endActivity.getDurationInMillis() + " ms");
              System.out.println("COMPLETE " + processDefinition.getName() + " ["
                    + processInstance.getProcessDefinitionKey() + "] " 
                    + endActivity.getEndTime());
            }
          }
          // Re-query the process instance, making sure the latest state is available
          processInstance = runtimeService.createProcessInstanceQuery()
              .processInstanceId(processInstance.getId()).singleResult();
        }
        scanner.close();
      }
    }

    直接运行OnboardingRequest.java
    输入:joy
    输入:2
    可以看到输出结果:

    -- Start [startOnboarding] 21 ms
    -- Enter Data [enterOnboardingData] 6456 ms
    -- Years of Experience [decision] 12 ms
    -- Generic and Automated Data Entry [automatedIntro] 6 ms
    -- End [endOnboarding] 0 ms

    再次运行
    输入:wang
    输入:5
    可以看到输出结果:

    -- Start [startOnboarding] 8 ms
    -- Enter Data [enterOnboardingData] 4505 ms
    -- Years of Experience [decision] 13 ms
    -- Personalized Introduction and Data Entry [personalizedIntro] 16981 ms
    -- End [endOnboarding] 0 ms

    工作经验为2年的,会走脚本流程”Generic and Automated Data Entry”,然后流程结束
    工作经验为5年的,会走“Personalized Introduction and Data Entry”流程,然后流程结束

    6. 用Java编写任务

    上面的测试当工作经验小于或者为3年的时候,会走一个JS脚本的流程,这里把它改成Java代码输出的脚本

    /src/main/java/com/example/AutomatedDataDelegate.java

    package com.example;
    
    import java.util.Date;
    
    import org.activiti.engine.delegate.DelegateExecution;
    import org.activiti.engine.delegate.JavaDelegate;
    
    public class AutomatedDataDelegate implements JavaDelegate {
    
      @Override
      public void execute(DelegateExecution execution) throws Exception {
        Date now = new Date();
        execution.setVariable("autoWelcomeTime", now);
        System.out.println("Faux call to backend for [" 
        + execution.getVariable("fullName") + "]");
      }
    
    }

    修改/src/main/resources/onboarding.bpmn20.xml

        <scriptTask id="automatedIntro" name="Generic and Automated Data Entry" scriptFormat="javascript" activiti:autoStoreVariables="false">
          <script><![CDATA[var dateAsString = new Date().toString();
    execution.setVariable("autoWelcomeTime", dateAsString);]]></script>
        </scriptTask>

    替换成

    <serviceTask id="automatedIntro" name="Generic and Automated Data Entry" activiti:class="com.example.AutomatedDataDelegate"></serviceTask>

    再进行测试

    观察输出“Faux call to backend for [xxx]”,说明访问先前设置的过程变量

    8. 分析

    以一个全新的环境运行main
    第一次运行的时候,输入joy1和年限为2年,从debug日志可以看出

    1. 开始创建流程引擎之后,创建了25张表,然后流程引擎创建完毕

    ACT_GE_PROPERTY默认数据是

    08:55:51,189 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - SQL: insert into ACT_GE_PROPERTY 
    values ('schema.version', '5.22.0.0', 1)
    08:55:51,194 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - SQL: insert into ACT_GE_PROPERTY 
    values ('schema.history', 'create(5.22.0.0)', 1)
    08:55:51,195 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - SQL: insert into ACT_GE_PROPERTY 
    values ('next.dbid', '1', 1)

    2. 开始部署流程的时候,操作的表如下

    先操作ACT_GE_PROPERTY表

    09:01:05,769 [main] DEBUG org.activiti.engine.impl.persistence.entity.PropertyEntity.updateProperty  - ==>  Preparing: update ACT_GE_PROPERTY SET REV_ = ?, VALUE_ = ? where NAME_ = ? and REV_ = ? 
    09:01:05,770 [main] DEBUG org.activiti.engine.impl.persistence.entity.PropertyEntity.updateProperty  - ==> Parameters: 2(Integer), 2501(String), next.dbid(String), 1(Integer)

    查表ACT_RE_PROCDEF和ACT_RU_JOB

    09:01:07,683 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey  - ==>  Preparing: select * from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null)) 
    09:01:07,683 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey  - ==> Parameters: onboarding(String), onboarding(String)
    09:01:07,694 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey  - <==      Total: 0
    09:01:07,701 [main] DEBUG org.activiti.engine.impl.persistence.entity.JobEntity.selectJobByTypeAndProcessDefinitionKeyNoTenantId  - ==>  Preparing: select J.* from ACT_RU_JOB J inner join ACT_RE_PROCDEF P on J.PROC_DEF_ID_ = P.ID_ where J.HANDLER_TYPE_ = ? and P.KEY_ = ? and (P.TENANT_ID_ = '' or P.TENANT_ID_ is null) 
    09:01:07,702 [main] DEBUG org.activiti.engine.impl.persistence.entity.JobEntity.selectJobByTypeAndProcessDefinitionKeyNoTenantId  - ==> Parameters: timer-start-event(String), onboarding(String)
    09:01:07,714 [main] DEBUG org.activiti.engine.impl.persistence.entity.JobEntity.selectJobByTypeAndProcessDefinitionKeyNoTenantId  - <==      Total: 0

    ACT_RE_PROCDEF插入数据

    09:07:57,554 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert DeploymentEntity[id=1, name=null]
    09:07:57,554 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert ProcessDefinitionEntity[onboarding:1:4]
    09:07:57,554 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert ResourceEntity[id=2, name=onboarding.bpmn20.xml]
    09:07:57,554 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert ResourceEntity[id=3, name=onboarding.onboarding.png]
    09:07:57,555 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - flush summary: 4 insert, 0 update, 0 delete.
    09:07:57,555 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - now executing flush...
    09:07:57,555 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: ProcessDefinitionEntity[onboarding:1:4]
    09:07:57,556 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.insertProcessDefinition  - ==>  Preparing: insert into ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, TENANT_ID_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
    09:07:57,559 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.insertProcessDefinition  - ==> Parameters: onboarding:1:4(String), http://www.activiti.org/processdef(String), Onboarding(String), onboarding(String), 1(Integer), 1(String), onboarding.bpmn20.xml(String), onboarding.onboarding.png(String), null, false(Boolean), true(Boolean), 1(Integer), (String)
    09:07:57,562 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.insertProcessDefinition  - <==    Updates: 1

    ACT_RE_DEPLOYMENT插入数据

    09:07:57,562 [main] DEBUG org.activiti.engine.impl.persistence.entity.DeploymentEntity.insertDeployment  - ==>  Preparing: insert into ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, TENANT_ID_, DEPLOY_TIME_) values(?, ?, ?, ?, ?) 
    09:07:57,567 [main] DEBUG org.activiti.engine.impl.persistence.entity.DeploymentEntity.insertDeployment  - ==> Parameters: 1(String), null, null, (String), 2018-05-06 21:07:55.458(Timestamp)
    09:07:57,579 [main] DEBUG org.activiti.engine.impl.persistence.entity.DeploymentEntity.insertDeployment  - <==    Updates: 1

    ACT_GE_BYTEARRAY插入数据

    09:07:57,634 [main] DEBUG org.activiti.engine.impl.persistence.entity.ResourceEntity.bulkInsertResource  - ==>  Preparing: INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) , (?, 1, ?, ?, ?, ?) 
    09:07:57,636 [main] DEBUG org.activiti.engine.impl.persistence.entity.ResourceEntity.bulkInsertResource  - ==> Parameters: 2(String), onboarding.bpmn20.xml(String), java.io.ByteArrayInputStream@289710d9(ByteArrayInputStream), 1(String), false(Boolean), 3(String), onboarding.onboarding.png(String), java.io.ByteArrayInputStream@5a18cd76(ByteArrayInputStream), 1(String), true(Boolean)
    09:07:57,651 [main] DEBUG org.activiti.engine.impl.persistence.entity.ResourceEntity.bulkInsertResource  - <==    Updates: 2

    (这是编写在测试代码中的部分)再查询一下是否部署成功,显示查到一条记录

    09:07:57,688 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectProcessDefinitionsByQueryCriteria_mysql  - ==>  Preparing: select distinct RES.* from ACT_RE_PROCDEF RES WHERE RES.DEPLOYMENT_ID_ = ? order by RES.ID_ asc LIMIT ? OFFSET ? 
    09:07:57,689 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectProcessDefinitionsByQueryCriteria_mysql  - ==> Parameters: 1(String), 2147483647(Integer), 0(Integer)
    09:07:57,692 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectProcessDefinitionsByQueryCriteria_mysql  - <==      Total: 1

    流程部署就完成了

    3. 开始启动流程实例

    流程部署完成后的ID是onboarding:1:4
    查表

    09:07:57,697 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey  - ==>  Preparing: select * from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null)) 
    09:07:57,697 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey  - ==> Parameters: onboarding(String), onboarding(String)
    09:07:57,700 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey  - <==      Total: 1
    09:07:57,701 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectProcessDefinitionById  - ==>  Preparing: select * from ACT_RE_PROCDEF where ID_ = ? 
    09:07:57,702 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectProcessDefinitionById  - ==> Parameters: onboarding:1:4(String)
    09:07:57,704 [main] DEBUG org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectProcessDefinitionById  - <==      Total: 1

    查表,看是否执行ID被使用

    09:07:57,731 [main] DEBUG org.activiti.engine.impl.persistence.entity.JobEntity.selectJobsByExecutionId  - ==>  Preparing: select * from ACT_RU_JOB J where J.EXECUTION_ID_ = ? 
    09:07:57,731 [main] DEBUG org.activiti.engine.impl.persistence.entity.JobEntity.selectJobsByExecutionId  - ==> Parameters: 5(String)
    09:07:57,732 [main] DEBUG org.activiti.engine.impl.persistence.entity.JobEntity.selectJobsByExecutionId  - <==      Total: 0
    09:07:57,736 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByExecutionId  - ==>  Preparing: select distinct T.* from ACT_RU_TASK T where T.EXECUTION_ID_ = ? 
    09:07:57,737 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByExecutionId  - ==> Parameters: 5(String)
    09:07:57,752 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByExecutionId  - <==      Total: 0

    插入数据
    按照表的先后顺序是:
    ACT_HI_VARINST
    ACT_HI_TASKINST
    ACT_HI_PROCINST
    ACT_HI_ACTINST
    ACT_HI_IDENTITYLINK
    ACT_RU_EXECUTION
    ACT_RU_TASK
    ACT_RU_IDENTITYLINK
    ACT_RU_VARIABLE

    09:07:57,764 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricVariableInstanceEntity[id=6, name=initiator, revision=0, type=null]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert ProcessInstance[5]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricTaskInstanceEntity[id=9, name=Enter Data]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert VariableInstanceEntity[id=6, name=initiator, type=null]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricProcessInstanceEntity[superProcessInstanceId=null]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricActivityInstanceEntity[activityId=startOnboarding, activityName=Start]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricActivityInstanceEntity[activityId=enterOnboardingData, activityName=Enter Data]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert Task[id=9, name=Enter Data]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert IdentityLinkEntity[id=10, type=candidate, groupId=managers, taskId=9]
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert org.activiti.engine.impl.persistence.entity.HistoricIdentityLinkEntity@45fd9a4d
    09:07:57,765 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - flush summary: 10 insert, 0 update, 0 delete.
    09:07:57,766 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - now executing flush...
    09:07:57,766 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: HistoricVariableInstanceEntity[id=6, name=initiator, revision=0, type=null]
    09:07:57,766 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.insertHistoricVariableInstance  - ==>  Preparing: insert into ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_, VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 
    09:07:57,769 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.insertHistoricVariableInstance  - ==> Parameters: 6(String), 5(String), 5(String), null, initiator(String), 0(Integer), null(String), null, null, null, null, null, 2018-05-06 21:07:57.709(Timestamp), 2018-05-06 21:07:57.709(Timestamp)
    09:07:57,773 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.insertHistoricVariableInstance  - <==    Updates: 1
    09:07:57,773 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: HistoricTaskInstanceEntity[id=9, name=Enter Data]
    09:07:57,774 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstance  - ==>  Preparing: insert into ACT_HI_TASKINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, OWNER_, ASSIGNEE_, START_TIME_, CLAIM_TIME_, END_TIME_, DURATION_, DELETE_REASON_, TASK_DEF_KEY_, FORM_KEY_, PRIORITY_, DUE_DATE_, CATEGORY_, TENANT_ID_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 
    09:07:57,778 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstance  - ==> Parameters: 9(String), onboarding:1:4(String), 5(String), 5(String), Enter Data(String), null, null, null, null, 2018-05-06 21:07:57.754(Timestamp), null, null, null, null, enterOnboardingData(String), null, 50(Integer), null, null, (String)
    09:07:57,781 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstance  - <==    Updates: 1
    09:07:57,781 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: HistoricProcessInstanceEntity[superProcessInstanceId=null]
    09:07:57,781 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstance  - ==>  Preparing: insert into ACT_HI_PROCINST ( ID_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, START_TIME_, END_TIME_, DURATION_, START_USER_ID_, START_ACT_ID_, END_ACT_ID_, SUPER_PROCESS_INSTANCE_ID_, DELETE_REASON_, TENANT_ID_, NAME_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 
    09:07:57,783 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstance  - ==> Parameters: 5(String), 5(String), null, onboarding:1:4(String), 2018-05-06 21:07:57.713(Timestamp), null, null, null, startOnboarding(String), null, null, null, (String), null
    09:07:57,786 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstance  - <==    Updates: 1
    09:07:57,791 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.bulkInsertHistoricActivityInstance  - ==>  Preparing: insert into ACT_HI_ACTINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, ACT_ID_, TASK_ID_, CALL_PROC_INST_ID_, ACT_NAME_, ACT_TYPE_, ASSIGNEE_, START_TIME_, END_TIME_, DURATION_, TENANT_ID_ ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) , (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
    09:07:57,795 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.bulkInsertHistoricActivityInstance  - ==> Parameters: 7(String), onboarding:1:4(String), 5(String), 5(String), startOnboarding(String), null, null, Start(String), startEvent(String), null, 2018-05-06 21:07:57.713(Timestamp), 2018-05-06 21:07:57.734(Timestamp), 21(Long), (String), 8(String), onboarding:1:4(String), 5(String), 5(String), enterOnboardingData(String), 9(String), null, Enter Data(String), userTask(String), null, 2018-05-06 21:07:57.735(Timestamp), null, null, (String)
    09:07:57,801 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.bulkInsertHistoricActivityInstance  - <==    Updates: 2
    09:07:57,802 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: org.activiti.engine.impl.persistence.entity.HistoricIdentityLinkEntity@45fd9a4d
    09:07:57,803 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricIdentityLinkEntity.insertHistoricIdentityLink  - ==>  Preparing: insert into ACT_HI_IDENTITYLINK (ID_, TYPE_, USER_ID_, GROUP_ID_, TASK_ID_, PROC_INST_ID_) values (?, ?, ?, ?, ?, ?) 
    09:07:57,803 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricIdentityLinkEntity.insertHistoricIdentityLink  - ==> Parameters: 10(String), candidate(String), null, managers(String), 9(String), null
    09:07:57,806 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricIdentityLinkEntity.insertHistoricIdentityLink  - <==    Updates: 1
    09:07:57,807 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: ProcessInstance[5]
    09:07:57,807 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.insertExecution  - ==>  Preparing: insert into ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, PARENT_ID_, SUPER_EXEC_, SUSPENSION_STATE_, CACHED_ENT_STATE_, TENANT_ID_, NAME_) values ( ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 
    09:07:57,810 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.insertExecution  - ==> Parameters: 5(String), 5(String), null, onboarding:1:4(String), enterOnboardingData(String), true(Boolean), false(Boolean), true(Boolean), false(Boolean), null, null, 1(Integer), 2(Integer), (String), null
    09:07:57,827 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.insertExecution  - <==    Updates: 1
    09:07:57,827 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: Task[id=9, name=Enter Data]
    09:07:57,828 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.insertTask  - ==>  Preparing: insert into ACT_RU_TASK (ID_, REV_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, PRIORITY_, CREATE_TIME_, OWNER_, ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 
    09:07:57,830 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.insertTask  - ==> Parameters: 9(String), Enter Data(String), null, null, 50(Integer), 2018-05-06 21:07:57.736(Timestamp), null, null, null, 5(String), 5(String), onboarding:1:4(String), enterOnboardingData(String), null, null, 1(Integer), (String), null
    09:07:57,833 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.insertTask  - <==    Updates: 1
    09:07:57,833 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: IdentityLinkEntity[id=10, type=candidate, groupId=managers, taskId=9]
    09:07:57,833 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.insertIdentityLink  - ==>  Preparing: insert into ACT_RU_IDENTITYLINK (ID_, REV_, TYPE_, USER_ID_, GROUP_ID_, TASK_ID_, PROC_INST_ID_, PROC_DEF_ID_) values (?, 1, ?, ?, ?, ?, ?, ?) 
    09:07:57,835 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.insertIdentityLink  - ==> Parameters: 10(String), candidate(String), null, managers(String), 9(String), null, null
    09:07:57,847 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.insertIdentityLink  - <==    Updates: 1
    09:07:57,847 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - inserting: VariableInstanceEntity[id=6, name=initiator, type=null]
    09:07:57,847 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance  - ==>  Preparing: insert into ACT_RU_VARIABLE (ID_, REV_, TYPE_, NAME_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_) values ( ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 
    09:07:57,848 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance  - ==> Parameters: 6(String), null(String), initiator(String), 5(String), 5(String), null, null, null, null, null, null
    09:07:57,861 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance  - <==    Updates: 1
    09:07:57,861 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committing...
    09:07:57,861 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - committing the ibatis sql session...
    09:07:57,861 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Committing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    09:07:57,864 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committed...
    09:07:57,866 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    09:07:57,866 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    09:07:57,866 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Returned connection 2143431083 to pool.
    09:07:57,866 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- StartProcessInstanceCmd finished 

    流程实例到这里就启动完毕了
    Onboarding process started with process instance id [5] key [onboarding]

    4. 查询任务并完成任务

    使用managers角色查询个人任务

    ACT_RU_TASK
    ACT_RU_IDENTITYLINK

    09:07:57,909 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTaskByQueryCriteria  - ==>  Preparing: select distinct RES.* from ACT_RU_TASK RES inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_ WHERE RES.ASSIGNEE_ is null and I.TYPE_ = 'candidate' and ( I.GROUP_ID_ IN ( ? ) ) order by RES.ID_ asc LIMIT ? OFFSET ? 
    09:07:57,910 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTaskByQueryCriteria  - ==> Parameters: managers(String), 2147483647(Integer), 0(Integer)
    09:07:57,914 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTaskByQueryCriteria  - <==      Total: 1
    • 1
    • 2
    • 3

    查询结果是由1个任务
    当前所在的流程环节是Enter Data

    Active outstanding tasks: [1]
    Processing Task [Enter Data]
    • 1
    • 2

    ACT_RU_TASK
    ACT_RU_EXECUTION
    ACT_RU_VARIABLE

    09:07:57,920 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTask  - ==>  Preparing: select * from ACT_RU_TASK where ID_ = ? 
    09:07:57,920 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTask  - ==> Parameters: 9(String)
    09:07:57,925 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTask  - <==      Total: 1
    09:07:57,926 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecution  - ==>  Preparing: select * from ACT_RU_EXECUTION where ID_ = ? 
    09:07:57,927 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecution  - ==> Parameters: 5(String)
    09:07:57,930 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecution  - <==      Total: 1
    09:07:57,932 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId  - ==>  Preparing: select * from ACT_RU_VARIABLE where EXECUTION_ID_ = ? and TASK_ID_ is null 
    09:07:57,933 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId  - ==> Parameters: 5(String)
    09:07:57,936 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId  - <==      Total: 1

    获取到当前任务的流程变量之后
    调用taskService.complete(task.getId(), variables);完成提交当前任务
    这其中做了一系列的查询/插入/删除操作

    10:23:48,580 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- starting CompleteTaskCmd --------------------------------------------------------
    10:23:48,581 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Opening JDBC Connection
    10:23:48,581 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Checked out connection 2143431083 from pool.
    10:23:48,581 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,582 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTask  - ==>  Preparing: select * from ACT_RU_TASK where ID_ = ? 
    10:23:48,582 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTask  - ==> Parameters: 9(String)
    10:23:48,585 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTask  - <==      Total: 1
    10:23:48,586 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecution  - ==>  Preparing: select * from ACT_RU_EXECUTION where ID_ = ? 
    10:23:48,587 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecution  - ==> Parameters: 5(String)
    10:23:48,590 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecution  - <==      Total: 1
    10:23:48,590 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId  - ==>  Preparing: select * from ACT_RU_VARIABLE where EXECUTION_ID_ = ? and TASK_ID_ is null 
    10:23:48,591 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId  - ==> Parameters: 5(String)
    10:23:48,593 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId  - <==      Total: 1
    10:23:48,593 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,594 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: FULL
    10:23:48,594 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,594 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: FULL
    10:23:48,594 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByParentTaskId  - ==>  Preparing: select * from ACT_RU_TASK where PARENT_TASK_ID_ = ? 
    10:23:48,595 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByParentTaskId  - ==> Parameters: 9(String)
    10:23:48,600 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByParentTaskId  - <==      Total: 0
    10:23:48,603 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.selectIdentityLinksByTask  - ==>  Preparing: select * from ACT_RU_IDENTITYLINK where TASK_ID_ = ? 
    10:23:48,604 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.selectIdentityLinksByTask  - ==> Parameters: 9(String)
    10:23:48,606 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.selectIdentityLinksByTask  - <==      Total: 1
    10:23:48,609 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByTaskId  - ==>  Preparing: select * from ACT_RU_VARIABLE where TASK_ID_ = ? 
    10:23:48,609 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByTaskId  - ==> Parameters: 9(String)
    10:23:48,611 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByTaskId  - <==      Total: 0
    10:23:48,611 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: AUDIT
    10:23:48,611 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.selectHistoricTaskInstance  - ==>  Preparing: select * from ACT_HI_TASKINST where ID_ = ? 
    10:23:48,612 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.selectHistoricTaskInstance  - ==> Parameters: 9(String)
    10:23:48,617 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.selectHistoricTaskInstance  - <==      Total: 1
    10:23:48,622 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByExecutionId  - ==>  Preparing: select distinct T.* from ACT_RU_TASK T where T.EXECUTION_ID_ = ? 
    10:23:48,622 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByExecutionId  - ==> Parameters: 5(String)
    10:23:48,625 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.selectTasksByExecutionId  - <==      Total: 1
    10:23:48,625 [main] DEBUG org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior  - Leaving activity 'enterOnboardingData'
    10:23:48,625 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,630 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.selectHistoricActivityInstancesByQueryCriteria  - ==>  Preparing: select RES.* from ACT_HI_ACTINST RES WHERE RES.EXECUTION_ID_ = ? and RES.ACT_ID_ = ? and RES.END_TIME_ is null order by RES.ID_ asc LIMIT ? OFFSET ? 
    10:23:48,632 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.selectHistoricActivityInstancesByQueryCriteria  - ==> Parameters: 5(String), enterOnboardingData(String), 1(Integer), 0(Integer)
    10:23:48,636 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.selectHistoricActivityInstancesByQueryCriteria  - <==      Total: 1
    10:23:48,637 [main] DEBUG org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake  - ProcessInstance[5] takes transition (enterOnboardingData)--sid-42BE5661-C3D5-4DE6-96F5-73D34822727A-->(decision)
    10:23:48,637 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,637 [main] DEBUG org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute  - ProcessInstance[5] executes Activity(decision): org.activiti.engine.impl.bpmn.behavior.ExclusiveGatewayActivityBehavior
    10:23:48,637 [main] DEBUG org.activiti.engine.impl.bpmn.behavior.ExclusiveGatewayActivityBehavior  - Leaving activity 'decision'
    10:23:48,650 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,651 [main] DEBUG org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake  - ProcessInstance[5] takes transition (decision)--automatedIntroPath-->(automatedIntro)
    10:23:48,651 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,651 [main] DEBUG org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute  - ProcessInstance[5] executes Activity(automatedIntro): org.activiti.engine.impl.bpmn.helper.ClassDelegate
    10:23:48,657 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,658 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: FULL
    Faux call to backend for [joy1]
    10:23:48,658 [main] DEBUG org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior  - Leaving activity 'automatedIntro'
    10:23:48,658 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,658 [main] DEBUG org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake  - ProcessInstance[5] takes transition (automatedIntro)--sid-37A73ACA-2E23-400B-96F3-71F77738DAFA-->(endOnboarding)
    10:23:48,659 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,659 [main] DEBUG org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute  - ProcessInstance[5] executes Activity(endOnboarding): org.activiti.engine.impl.bpmn.behavior.NoneEndEventActivityBehavior
    10:23:48,659 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,659 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,660 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT
    10:23:48,660 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.selectHistoricProcessInstance  - ==>  Preparing: select * from ACT_HI_PROCINST where PROC_INST_ID_ = ? 
    10:23:48,661 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.selectHistoricProcessInstance  - ==> Parameters: 5(String)
    10:23:48,665 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.selectHistoricProcessInstance  - <==      Total: 1
    10:23:48,666 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity  - destroying ProcessInstance[5]
    10:23:48,666 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,666 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,666 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,667 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.selectHistoricVariableInstanceByVariableInstanceId  - ==>  Preparing: select * from ACT_HI_VARINST where ID_ = ? 
    10:23:48,667 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.selectHistoricVariableInstanceByVariableInstanceId  - ==> Parameters: 6(String)
    10:23:48,670 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.selectHistoricVariableInstanceByVariableInstanceId  - <==      Total: 1
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - skipping redundant delete: VariableInstanceEntity[id=11, name=yearsOfExperience, type=long, longValue=2, textValue=2]
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - skipping redundant delete: VariableInstanceEntity[id=15, name=autoWelcomeTime, type=date, longValue=1525616628657]
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - skipping redundant delete: VariableInstanceEntity[id=6, name=initiator, type=null]
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.history.DefaultHistoryManager  - Current history level: AUDIT, level required: ACTIVITY
    10:23:48,671 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - skipping redundant delete: VariableInstanceEntity[id=12, name=fullName, type=string, textValue=joy1]
    10:23:48,672 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecutionsByParentExecutionId  - ==>  Preparing: select * from ACT_RU_EXECUTION where PARENT_ID_ = ? 
    10:23:48,672 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecutionsByParentExecutionId  - ==> Parameters: 5(String)
    10:23:48,673 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecutionsByParentExecutionId  - <==      Total: 0
    10:23:48,674 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.selectIdentityLinksByProcessInstance  - ==>  Preparing: select * from ACT_RU_IDENTITYLINK where PROC_INST_ID_ = ? 
    10:23:48,674 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.selectIdentityLinksByProcessInstance  - ==> Parameters: 5(String)
    10:23:48,675 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.selectIdentityLinksByProcessInstance  - <==      Total: 0
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricVariableInstanceEntity[id=11, name=yearsOfExperience, revision=0, type=long, longValue=2, textValue=2]
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricVariableInstanceEntity[id=12, name=fullName, revision=0, type=string, textValue=joy1]
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricVariableInstanceEntity[id=15, name=autoWelcomeTime, revision=0, type=date, longValue=1525616628657]
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricActivityInstanceEntity[activityId=decision, activityName=Years of Experience]
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricActivityInstanceEntity[activityId=automatedIntro, activityName=Generic and Automated Data Entry]
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   insert HistoricActivityInstanceEntity[activityId=endOnboarding, activityName=End]
    10:23:48,676 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   update HistoricVariableInstanceEntity[id=6, name=initiator, revision=0, type=null]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   update HistoricTaskInstanceEntity[id=9, name=Enter Data]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   update HistoricActivityInstanceEntity[activityId=enterOnboardingData, activityName=Enter Data]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   update HistoricProcessInstanceEntity[superProcessInstanceId=null]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   delete IdentityLinkEntity[id=10, type=candidate, groupId=managers, taskId=9]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   delete Task[id=9, name=Enter Data]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   delete VariableInstanceEntity[id=6, name=initiator, type=null]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  -   delete ProcessInstance[5]
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - flush summary: 6 insert, 4 update, 4 delete.
    10:23:48,677 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - now executing flush...
    10:23:48,683 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.bulkInsertHistoricVariableInstance  - ==>  Preparing: insert into ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_, VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) , (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) , (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
    10:23:48,690 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.bulkInsertHistoricVariableInstance  - ==> Parameters: 11(String), 5(String), 5(String), null, yearsOfExperience(String), 0(Integer), long(String), null, null, 2(Long), 2(String), null, 2018-05-06 22:23:48.594(Timestamp), 2018-05-06 22:23:48.671(Timestamp), 12(String), 5(String), 5(String), null, fullName(String), 0(Integer), string(String), null, null, null, joy1(String), null, 2018-05-06 22:23:48.594(Timestamp), 2018-05-06 22:23:48.671(Timestamp), 15(String), 5(String), 5(String), null, autoWelcomeTime(String), 0(Integer), date(String), null, null, 1525616628657(Long), null, null, 2018-05-06 22:23:48.658(Timestamp), 2018-05-06 22:23:48.671(Timestamp)
    10:23:48,693 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.bulkInsertHistoricVariableInstance  - <==    Updates: 3
    10:23:48,699 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.bulkInsertHistoricActivityInstance  - ==>  Preparing: insert into ACT_HI_ACTINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, ACT_ID_, TASK_ID_, CALL_PROC_INST_ID_, ACT_NAME_, ACT_TYPE_, ASSIGNEE_, START_TIME_, END_TIME_, DURATION_, TENANT_ID_ ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) , (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) , (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
    10:23:48,706 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.bulkInsertHistoricActivityInstance  - ==> Parameters: 13(String), onboarding:1:4(String), 5(String), 5(String), decision(String), null, null, Years of Experience(String), exclusiveGateway(String), null, 2018-05-06 22:23:48.637(Timestamp), 2018-05-06 22:23:48.651(Timestamp), 14(Long), (String), 14(String), onboarding:1:4(String), 5(String), 5(String), automatedIntro(String), null, null, Generic and Automated Data Entry(String), serviceTask(String), null, 2018-05-06 22:23:48.651(Timestamp), 2018-05-06 22:23:48.658(Timestamp), 7(Long), (String), 16(String), onboarding:1:4(String), 5(String), 5(String), endOnboarding(String), null, null, End(String), endEvent(String), null, 2018-05-06 22:23:48.659(Timestamp), 2018-05-06 22:23:48.659(Timestamp), 0(Long), (String)
    10:23:48,708 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.bulkInsertHistoricActivityInstance  - <==    Updates: 3
    10:23:48,708 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - updating: HistoricVariableInstanceEntity[id=6, name=initiator, revision=0, type=null]
    10:23:48,711 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.updateHistoricVariableInstance  - ==>  Preparing: update ACT_HI_VARINST set REV_ = ?, BYTEARRAY_ID_ = ?, DOUBLE_ = ?, LONG_ = ?, TEXT_ = ?, TEXT2_ = ?, VAR_TYPE_ = ?, LAST_UPDATED_TIME_ = ? where ID_ = ? and REV_ = ? 
    10:23:48,713 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.updateHistoricVariableInstance  - ==> Parameters: 1(Integer), null, null, null, null, null, null(String), 2018-05-06 22:23:48.671(Timestamp), 6(String), 0(Integer)
    10:23:48,714 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.updateHistoricVariableInstance  - <==    Updates: 1
    10:23:48,716 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - updating: HistoricTaskInstanceEntity[id=9, name=Enter Data]
    10:23:48,716 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.updateHistoricTaskInstance  - ==>  Preparing: update ACT_HI_TASKINST set PROC_DEF_ID_ = ?, EXECUTION_ID_ = ?, NAME_ = ?, PARENT_TASK_ID_ = ?, DESCRIPTION_ = ?, OWNER_ = ?, ASSIGNEE_ = ?, CLAIM_TIME_ = ?, END_TIME_ = ?, DURATION_ = ?, DELETE_REASON_ = ?, TASK_DEF_KEY_ = ?, FORM_KEY_ = ?, PRIORITY_ = ?, DUE_DATE_ = ?, CATEGORY_ = ? where ID_ = ? 
    10:23:48,717 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.updateHistoricTaskInstance  - ==> Parameters: onboarding:1:4(String), 5(String), Enter Data(String), null, null, null, null, null, 2018-05-06 22:23:48.621(Timestamp), 9675(Long), completed(String), enterOnboardingData(String), null, 50(Integer), null, null, 9(String)
    10:23:48,719 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.updateHistoricTaskInstance  - <==    Updates: 1
    10:23:48,719 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - updating: HistoricActivityInstanceEntity[activityId=enterOnboardingData, activityName=Enter Data]
    10:23:48,719 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.updateHistoricActivityInstance  - ==>  Preparing: update ACT_HI_ACTINST set EXECUTION_ID_ = ?, ASSIGNEE_ = ?, END_TIME_ = ?, DURATION_ = ? where ID_ = ? 
    10:23:48,720 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.updateHistoricActivityInstance  - ==> Parameters: 5(String), null, 2018-05-06 22:23:48.637(Timestamp), 9701(Long), 8(String)
    10:23:48,722 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.updateHistoricActivityInstance  - <==    Updates: 1
    10:23:48,722 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - updating: HistoricProcessInstanceEntity[superProcessInstanceId=null]
    10:23:48,722 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.updateHistoricProcessInstance  - ==>  Preparing: update ACT_HI_PROCINST set PROC_DEF_ID_ = ?, BUSINESS_KEY_ = ?, START_TIME_ = ?, END_TIME_ = ?, DURATION_ = ?, END_ACT_ID_ = ?, DELETE_REASON_ = ?, NAME_ = ? where ID_ = ? 
    10:23:48,724 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.updateHistoricProcessInstance  - ==> Parameters: onboarding:1:4(String), null, 2018-05-06 22:23:38.922(Timestamp), 2018-05-06 22:23:48.665(Timestamp), 9743(Long), endOnboarding(String), null, null, 5(String)
    10:23:48,725 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.updateHistoricProcessInstance  - <==    Updates: 1
    10:23:48,725 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - executing: delete IdentityLinkEntity[id=10, type=candidate, groupId=managers, taskId=9]
    10:23:48,726 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.deleteIdentityLink  - ==>  Preparing: delete from ACT_RU_IDENTITYLINK where ID_ = ? 
    10:23:48,726 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.deleteIdentityLink  - ==> Parameters: 10(String)
    10:23:48,728 [main] DEBUG org.activiti.engine.impl.persistence.entity.IdentityLinkEntity.deleteIdentityLink  - <==    Updates: 1
    10:23:48,728 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - executing: delete Task[id=9, name=Enter Data]
    10:23:48,728 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.deleteTask  - ==>  Preparing: delete from ACT_RU_TASK where ID_ = ? and REV_ = ? 
    10:23:48,729 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.deleteTask  - ==> Parameters: 9(String), 1(Integer)
    10:23:48,738 [main] DEBUG org.activiti.engine.impl.persistence.entity.TaskEntity.deleteTask  - <==    Updates: 1
    10:23:48,739 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - executing: delete VariableInstanceEntity[id=6, name=initiator, type=null]
    10:23:48,739 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.deleteVariableInstance  - ==>  Preparing: delete from ACT_RU_VARIABLE where ID_ = ? and REV_ = ? 
    10:23:48,739 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.deleteVariableInstance  - ==> Parameters: 6(String), 1(Integer)
    10:23:48,741 [main] DEBUG org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.deleteVariableInstance  - <==    Updates: 1
    10:23:48,742 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - executing: delete ProcessInstance[5]
    10:23:48,742 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.deleteExecution  - ==>  Preparing: delete from ACT_RU_EXECUTION where ID_ = ? and REV_ = ? 
    10:23:48,743 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.deleteExecution  - ==> Parameters: 5(String), 1(Integer)
    10:23:48,752 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.deleteExecution  - <==    Updates: 1
    10:23:48,753 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committing...
    10:23:48,753 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - committing the ibatis sql session...
    10:23:48,753 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Committing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,756 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committed...
    10:23:48,756 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,757 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,757 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Returned connection 2143431083 to pool.
    10:23:48,758 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- CompleteTaskCmd finished --------------------------------------------------------
    10:23:48,758 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - 

    到这里,任务根据配置,是直接执行到了结束节点

    5. 查询历史

    这一段是写在测试代码的,作为演示而已

    输出历史任务
    10:23:48,759 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - 
    
    10:23:48,759 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- starting HistoricActivityInstanceQueryImpl --------------------------------------------------------
    10:23:48,760 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Opening JDBC Connection
    10:23:48,760 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Checked out connection 2143431083 from pool.
    10:23:48,760 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,762 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.selectHistoricActivityInstancesByQueryCriteria  - ==>  Preparing: select RES.* from ACT_HI_ACTINST RES WHERE RES.PROC_INST_ID_ = ? and RES.END_TIME_ is not null order by END_TIME_ asc LIMIT ? OFFSET ? 
    10:23:48,765 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.selectHistoricActivityInstancesByQueryCriteria  - ==> Parameters: 5(String), 2147483647(Integer), 0(Integer)
    10:23:48,770 [main] DEBUG org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.selectHistoricActivityInstancesByQueryCriteria  - <==      Total: 5
    10:23:48,771 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - flush summary: 0 insert, 0 update, 0 delete.
    10:23:48,771 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - now executing flush...
    10:23:48,771 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committing...
    10:23:48,771 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - committing the ibatis sql session...
    10:23:48,771 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committed...
    10:23:48,771 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,772 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,772 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Returned connection 2143431083 to pool.
    10:23:48,772 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- HistoricActivityInstanceQueryImpl finished --------------------------------------------------------
    10:23:48,772 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - 
    
    -- Start [startOnboarding] 14 ms
    -- Enter Data [enterOnboardingData] 9701 ms
    -- Years of Experience [decision] 14 ms
    -- Generic and Automated Data Entry [automatedIntro] 7 ms
    -- End [endOnboarding] 0 ms
    10:23:48,772 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - 
    
    10:23:48,773 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- starting ProcessInstanceQueryImpl --------------------------------------------------------
    10:23:48,787 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Opening JDBC Connection
    10:23:48,787 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Checked out connection 2143431083 from pool.
    10:23:48,787 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,787 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectProcessInstanceByQueryCriteria  - ==>  Preparing: select distinct RES.* , P.KEY_ as ProcessDefinitionKey, P.ID_ as ProcessDefinitionId, P.NAME_ as ProcessDefinitionName, P.VERSION_ as ProcessDefinitionVersion, P.DEPLOYMENT_ID_ as DeploymentId from ACT_RU_EXECUTION RES inner join ACT_RE_PROCDEF P on RES.PROC_DEF_ID_ = P.ID_ WHERE RES.PARENT_ID_ is null and RES.ID_ = ? and RES.PROC_INST_ID_ = ? order by RES.ID_ asc LIMIT ? OFFSET ? 
    10:23:48,788 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectProcessInstanceByQueryCriteria  - ==> Parameters: 5(String), 5(String), 2147483647(Integer), 0(Integer)
    10:23:48,790 [main] DEBUG org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectProcessInstanceByQueryCriteria  - <==      Total: 0
    10:23:48,790 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - flush summary: 0 insert, 0 update, 0 delete.
    10:23:48,790 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession  - now executing flush...
    10:23:48,790 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committing...
    10:23:48,790 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - committing the ibatis sql session...
    10:23:48,790 [main] DEBUG org.activiti.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext  - firing event committed...
    10:23:48,791 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,792 [main] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction  - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7fc229ab]
    10:23:48,792 [main] DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource  - Returned connection 2143431083 to pool.
    10:23:48,792 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - --- ProcessInstanceQueryImpl finished --------------------------------------------------------
    10:23:48,792 [main] DEBUG org.activiti.engine.impl.interceptor.LogInterceptor  - 

    原文地址:https://blog.csdn.net/wangjx92/article/details/80220997

    同理可以分析第二次运行的debug日志

  • 相关阅读:
    pyqt的setObjectName()/findChild()
    pyqt的多Button的点击事件的槽函数的区分发送signal的按钮。
    分布式存储
    QTableWidget的表头颜色设置
    QListView的子项的ViewMode
    QHeaderView的点击和双击事件
    LeetCode(63):不同路径 II
    LeetCode(62):不同路径
    LeetCode(61):旋转链表
    LeetCode(60): 第k个排列
  • 原文地址:https://www.cnblogs.com/jpfss/p/11091041.html
Copyright © 2020-2023  润新知