一 BPMN文件
<?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: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/test">
<process id="process1" name="process1">
<startEvent id="startevent1" name="Start"></startEvent>
<userTask id="usertask1" name="Expense Request"></userTask>
<userTask id="usertask3" name="Handle Request"></userTask>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow1" name="" sourceRef="startevent1"
targetRef="usertask1"></sequenceFlow>
<sequenceFlow id="flow2" name="" sourceRef="usertask1"
targetRef="usertask3"></sequenceFlow>
<sequenceFlow id="flow3" name="" sourceRef="usertask3"
targetRef="endevent1"></sequenceFlow>
</process>
......
</definitions>
二 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 流程引擎配置的bean -->
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/act" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="123456" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
三 代码
package com.syc.activiti;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
public class First {
public static void main(String[] args) {
// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到流程存储服务组件
RepositoryService repositoryService = engine.getRepositoryService();
// 得到运行时服务组件
RuntimeService runtimeService = engine.getRuntimeService();
// 获取流程任务组件
TaskService taskService = engine.getTaskService();
// 部署流程文件
repositoryService.createDeployment()
.addClasspathResource("bpmn/First.bpmn").deploy();
// 启动流程
runtimeService.startProcessInstanceByKey("process1");
// 查询第一个任务
Task task = taskService.createTaskQuery().singleResult();
System.out.println("第一个任务完成前,当前任务名称:" + task.getName());
// 完成第一个任务
taskService.complete(task.getId());
// 查询第二个任务
task = taskService.createTaskQuery().singleResult();
System.out.println("第二个任务完成前,当前任务名称:" + task.getName());
// 完成第二个任务(流程结束)
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
System.out.println("流程结束后,查找任务:" + task);
}
}
四 运行结果
第一个任务完成前,当前任务名称:Expense Request
第二个任务完成前,当前任务名称:Handle Request
流程结束后,查找任务:null
五 数据表数据解析
1 act_ge_bytearray
REV_:数据版本,加入该字段,用来表示该数据被操作的次数。
NAME_:资源名称。
DEPLOYMENT_ID_:一次部署可以添加多个资源,该字段与部署表act_re_deployment的主键相关联。
BYTES_:资源内容。
GENERATED_:是否由Activiti自动产生的资源,0表示false,1表示true。
2 act_ge_property
mysql> select * from act_ge_property;
+--------------------------------------+-----------------+------+
| NAME_ | VALUE_ | REV_ |
+--------------------------------------+-----------------+------+
| cfg.execution-related-entities-count | false | 1 |
| next.dbid | 2501 | 2 |
| schema.history | create(6.0.0.4) | 1 |
| schema.version | 6.0.0.4 | 1 |
+--------------------------------------+-----------------+------+
4 rows in set (0.00 sec)
NAME_:属性名称。
VALUE_:属性值。
REV_:数据版本,加入该字段,用来表示该数据被操作的次数。
3 act_hi_actinst
mysql> select * from 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_ | DELETE_REASON_ | TENANT_ID_ |
+-----+--------------+---------------+---------------+-------------+----------+--------------------+-----------------+------------+-----------+-------------------------+-------------------------+-----------+----------------+------------+
| 10 | process1:1:4 | 5 | 6 | usertask3 | 11 | NULL | Handle Request | userTask | NULL | 2020-04-12 19:46:18.025 | 2020-04-12 19:46:18.226 | 201 | NULL | |
| 12 | process1:1:4 | 5 | 6 | endevent1 | NULL | NULL | End | endEvent | NULL | 2020-04-12 19:46:18.228 | 2020-04-12 19:46:18.228 | 0 | NULL | |
| 7 | process1:1:4 | 5 | 6 | startevent1 | NULL | NULL | Start | startEvent | NULL | 2020-04-12 19:46:17.838 | 2020-04-12 19:46:17.840 | 2 | NULL | |
| 8 | process1:1:4 | 5 | 6 | usertask1 | 9 | NULL | Expense Request | userTask | NULL | 2020-04-12 19:46:17.841 | 2020-04-12 19:46:18.025 | 184 | NULL | |
+-----+--------------+---------------+---------------+-------------+----------+--------------------+-----------------+------------+-----------+-------------------------+-------------------------+-----------+----------------+------------+
4 rows in set (0.00 sec)
该表会记录每一个流程实例,一个流程活动将会被记录为一条数据,根据该表可以追踪最完整的流程信息。
4 act_hi_procinst
mysql> select * from 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_ |
+-----+---------------+---------------+--------------+-------------------------+-------------------------+-----------+----------------+---------------+-------------+----------------------------+----------------+------------+-------+
| 5 | 5 | NULL | process1:1:4 | 2020-04-12 19:46:17.837 | 2020-04-12 19:46:18.261 | 424 | NULL | startevent1 | endevent1 | NULL | NULL | | NULL |
+-----+---------------+---------------+--------------+-------------------------+-------------------------+-----------+----------------+---------------+-------------+----------------------------+----------------+------------+-------+
START_ACT_ID_:开始活动的ID。
END_ACT_ID_:流程最后一个活动的ID。
DELETE_REASON_:该流程实例被删除的原因。
5 act_hi_taskinst
mysql> select * from act_hi_taskinst;
+-----+--------------+---------------+---------------+---------------+-----------------+-----------------+--------------+--------+-----------+-------------------------+-------------+-------------------------+-----------+----------------+-----------+-----------+-----------+-----------+------------+
| ID_ | PROC_DEF_ID_ | TASK_DEF_KEY_ | PROC_INST_ID_ | EXECUTION_ID_ | NAME_ | PARENT_TASK_ID_ | DESCRIPTION_ | OWNER_ | ASSIGNEE_ | START_TIME_ | CLAIM_TIME_ | END_TIME_ | DURATION_ | DELETE_REASON_ | PRIORITY_ | DUE_DATE_ | FORM_KEY_ | CATEGORY_ | TENANT_ID_ |
+-----+--------------+---------------+---------------+---------------+-----------------+-----------------+--------------+--------+-----------+-------------------------+-------------+-------------------------+-----------+----------------+-----------+-----------+-----------+-----------+------------+
| 11 | process1:1:4 | usertask3 | 5 | 6 | Handle Request | NULL | NULL | NULL | NULL | 2020-04-12 19:46:18.025 | NULL | 2020-04-12 19:46:18.203 | 178 | NULL | 50 | NULL | NULL | NULL | |
| 9 | process1:1:4 | usertask1 | 5 | 6 | Expense Request | NULL | NULL | NULL | NULL | 2020-04-12 19:46:17.854 | NULL | 2020-04-12 19:46:18.019 | 165 | NULL | 50 | NULL | NULL | NULL | |
+-----+--------------+---------------+---------------+---------------+-----------------+-----------------+--------------+--------+-----------+-------------------------+-------------+-------------------------+-----------+----------------+-----------+-----------+-----------+-----------+------------+
记录历史任务信息。
6 act_re_deployment
mysql> select * from act_re_deployment;
+-----+-------+-----------+------+------------+-------------------------+-----------------+
| ID_ | NAME_ | CATEGORY_ | KEY_ | TENANT_ID_ | DEPLOY_TIME_ | ENGINE_VERSION_ |
+-----+-------+-----------+------+------------+-------------------------+-----------------+
| 1 | NULL | NULL | NULL | | 2020-04-12 19:46:17.244 | NULL |
+-----+-------+-----------+------+------------+-------------------------+-----------------+
1 row in set (0.00 sec)
NAME_:部署的名称
DEPLOY_TIME_:部署时间。
7 act_re_procdef
mysql> select * from 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_ | ENGINE_VERSION_ |
+--------------+------+------------------------------+----------+----------+----------+----------------+-----------------+-------------------------+--------------+---------------------+-------------------------+-------------------+------------+-----------------+
| process1:1:4 | 1 | http://www.activiti.org/test | process1 | process1 | 1 | 1 | bpmn/First.bpmn | bpmn/First.process1.png | NULL | 0 | 1 | 1 | | NULL |
+--------------+------+------------------------------+----------+----------+----------+----------------+-----------------+-------------------------+--------------+---------------------+-------------------------+-------------------+------------+-----------------+
CATEGORY_:流程定义的分类,读取流程XML文件中的targetNamespace。
NAME_:流程定义名称,读取流程文件中process元素的name属性。
KEY_:流程定义名称,读取流程文件中process元素的id属性。
DEPLOYMENT_ID_:流程定义对应的部署数据ID
RESOURCE_NAME:流程定义对于的资源名称,一般为流程文件的相对路径。
DGRM_RESOURCE_NAME_:流程定义对于的流程图资源名称。
SUSPENSION_STATE_:表示流程定义的状态是激活的还是中止,激活状态时该字段值为1 ,中止时字段值为2,如果流程定义被设置为中止状态,那么将不能启动流程。
来源:oschina
链接:https://my.oschina.net/u/4274818/blog/3232697