定义
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
自动生成数据表
Activiti可以通过代码自动创建需要的23张表。
运行下面的main方法就可以自动创建Activiti需要的表。
package com.xsz.demo;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
public class InitActiviti {
public static void main(String[] args) throws Exception {
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
//定义连接mysql数据库
configuration.setJdbcDriver("com.mysql.cj.jdbc.Driver");
configuration.setJdbcUrl("jdbc:mysql://localhost:3306/db_activitidemo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true");
configuration.setJdbcUsername("root");
configuration.setJdbcPassword("XSZ202006a");
/* public static final String DB_SCHEMA_UPDATE_FALSE = "false";操作activiti23张表的时候,如果表不存在,就抛出异常,不能自动创建23张表
public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";每次操作,都会先删除表,再创建表
public static final String DB_SCHEMA_UPDATE_TRUE = "true";
如果表不存在,就创建表,如果表存在,就直接操作 */
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP);
//activiti核心对象(流程引擎)
ProcessEngine processEngine = configuration.buildProcessEngine();
System.out.println("processEngine:"+processEngine);
}
}
数据表介绍
表结构操作:
3.3.1:资源库流程规则表
1) act_re_deployment 部署信息表
2) act_re_model 流程设计模型部署表
3) act_re_procdef 流程定义数据表
3.3.2:运行时数据库表
1) act_ru_execution 运行时流程执行实例表
2) act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
3) act_ru_task 运行时任务节点表
4) act_ru_variable 运行时流程变量数据表
3.3.3:历史数据库表
1) act_hi_actinst 历史节点表
2) act_hi_attachment 历史附件表
3) act_hi_comment 历史意见表
4) act_hi_identitylink 历史流程人员表
5) act_hi_detail 历史详情表,提供历史变量的查询
6) act_hi_procinst 历史流程实例表
7) act_hi_taskinst 历史任务实例表
8) act_hi_varinst 历史变量表
3.3.4:组织机构表
1) act_id_group 用户组信息表
2) act_id_info 用户扩展信息表
3) act_id_membership 用户与用户组对应信息表
4) act_id_user 用户信息表
这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足
3.3.5:通用数据表
1) act_ge_bytearray 二进制数据表
2) act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,
获取bpmn文件
可以通过画图工具,把业务流程画好,然后导出xml文件。 再把xml文件的后缀名改成bpmn就可以。
最终导出的bpmn文件内容
文件名:process.bpmn20.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: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="process2021729" isExecutable="true">
<startEvent id="start"/>
<exclusiveGateway id="sid-8F55A260-8EB3-415D-A873-2E34E916216E"/>
<userTask id="sid-3D71CBED-A50E-4B50-A4D2-D20763A51D66" name="经理审批2" activiti:candidateGroups="manageGroup"/>
<userTask id="sid-850B7D8F-AABD-49FE-9CFB-843513146281" name="总监审批2" activiti:candidateGroups="dirGroup"/>
<endEvent id="sid-A8887E8A-9ADE-43D0-91A2-B20450113D41"/>
<sequenceFlow id="sid-AF3E3C93-B7F4-40BD-9ACF-699C31E5B034" sourceRef="sid-3D71CBED-A50E-4B50-A4D2-D20763A51D66" targetRef="sid-A8887E8A-9ADE-43D0-91A2-B20450113D41"/>
<sequenceFlow id="sid-1CAA4B9B-E7B0-41D8-ADC4-19F0F21DF11F" sourceRef="sid-850B7D8F-AABD-49FE-9CFB-843513146281" targetRef="sid-A8887E8A-9ADE-43D0-91A2-B20450113D41"/>
<sequenceFlow id="sid-AD5B6BBA-E3ED-4E2F-B67E-DC2FDB2DF204" sourceRef="sid-8F55A260-8EB3-415D-A873-2E34E916216E" targetRef="sid-850B7D8F-AABD-49FE-9CFB-843513146281">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${days <= 3}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-AC1BD940-A9EB-4E3C-B91A-DD1774F30F60" sourceRef="sid-8F55A260-8EB3-415D-A873-2E34E916216E" targetRef="sid-3D71CBED-A50E-4B50-A4D2-D20763A51D66">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${days > 3}]]></conditionExpression>
</sequenceFlow>
<userTask id="sid-7F648C16-A3F9-4836-BC07-7289719F732A" name="申请请假" activiti:candidateGroups="empGroup"/>
<sequenceFlow id="sid-054FF766-3536-464F-8FD5-8567FD76721C" sourceRef="start" targetRef="sid-7F648C16-A3F9-4836-BC07-7289719F732A"/>
<sequenceFlow id="sid-D5DC465E-DD41-4011-9AA9-5C5627A87FE6" sourceRef="sid-7F648C16-A3F9-4836-BC07-7289719F732A" targetRef="sid-8F55A260-8EB3-415D-A873-2E34E916216E"/>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_process">
<bpmndi:BPMNPlane bpmnElement="process" id="BPMNPlane_process">
<bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
<omgdc:Bounds height="30.0" width="30.0" x="30.0" y="162.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-8F55A260-8EB3-415D-A873-2E34E916216E" id="BPMNShape_sid-8F55A260-8EB3-415D-A873-2E34E916216E">
<omgdc:Bounds height="40.0" width="40.0" x="390.0" y="137.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-3D71CBED-A50E-4B50-A4D2-D20763A51D66" id="BPMNShape_sid-3D71CBED-A50E-4B50-A4D2-D20763A51D66">
<omgdc:Bounds height="80.0" width="100.0" x="609.0" y="50.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-850B7D8F-AABD-49FE-9CFB-843513146281" id="BPMNShape_sid-850B7D8F-AABD-49FE-9CFB-843513146281">
<omgdc:Bounds height="80.0" width="100.0" x="617.0" y="222.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-A8887E8A-9ADE-43D0-91A2-B20450113D41" id="BPMNShape_sid-A8887E8A-9ADE-43D0-91A2-B20450113D41">
<omgdc:Bounds height="28.0" width="28.0" x="943.0" y="163.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-7F648C16-A3F9-4836-BC07-7289719F732A" id="BPMNShape_sid-7F648C16-A3F9-4836-BC07-7289719F732A">
<omgdc:Bounds height="80.0" width="100.0" x="180.0" y="137.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-054FF766-3536-464F-8FD5-8567FD76721C" id="BPMNEdge_sid-054FF766-3536-464F-8FD5-8567FD76721C">
<omgdi:waypoint x="60.0" y="177.0"/>
<omgdi:waypoint x="180.0" y="177.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-AF3E3C93-B7F4-40BD-9ACF-699C31E5B034" id="BPMNEdge_sid-AF3E3C93-B7F4-40BD-9ACF-699C31E5B034">
<omgdi:waypoint x="709.0" y="104.59731543624162"/>
<omgdi:waypoint x="943.5610106253332" y="173.07653665907378"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-D5DC465E-DD41-4011-9AA9-5C5627A87FE6" id="BPMNEdge_sid-D5DC465E-DD41-4011-9AA9-5C5627A87FE6">
<omgdi:waypoint x="280.0" y="171.44444444444446"/>
<omgdi:waypoint x="392.0" y="159.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-AC1BD940-A9EB-4E3C-B91A-DD1774F30F60" id="BPMNEdge_sid-AC1BD940-A9EB-4E3C-B91A-DD1774F30F60">
<omgdi:waypoint x="426.2278481012658" y="153.22784810126583"/>
<omgdi:waypoint x="609.0" y="103.5814889336016"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-1CAA4B9B-E7B0-41D8-ADC4-19F0F21DF11F" id="BPMNEdge_sid-1CAA4B9B-E7B0-41D8-ADC4-19F0F21DF11F">
<omgdi:waypoint x="717.0" y="247.3448275862069"/>
<omgdi:waypoint x="943.565200385607" y="180.93778609387383"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-AD5B6BBA-E3ED-4E2F-B67E-DC2FDB2DF204" id="BPMNEdge_sid-AD5B6BBA-E3ED-4E2F-B67E-DC2FDB2DF204">
<omgdi:waypoint x="424.0" y="163.0"/>
<omgdi:waypoint x="617.0" y="241.62962962962962"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
测试
源码
https://gitee.com/bseaworkspace/study_java_web/tree/master/springboot-activiti