1. IDEA 安装 actiBPM 插件
plugins中可直接搜索activiBPM安装
但是我的idea一直搜索不到activiBPM
建议离线安装,插件下载地址
https://github.com/Activiti/Activiti-Designer/releases
2. 创建工程引入依赖
创建一个spring boot工程
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>study</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>study</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3. 绘制工作流流程图
为每个节点属性填写id、name 、Formt等信息
如果网关,为flow填写condition,如取消提交表单连线
如果有监听事件,添加对应的tasklistener或execution listener
对应的文件如下(复制second_approval.bpmn为second_approval.bpmn20.xml):
second_approval.bpmn20.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 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" xmlns:tns="http://www.activiti.org/test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1576737872525" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="second_approve" isClosed="false" isExecutable="true" name="二级审批流程" processType="None">
<startEvent id="startEvent" name="开始节点"/>
<userTask activiti:exclusive="true" id="submitForm" name="填写审批信息">
<extensionElements>
<activiti:formProperty id="message" name="申请信息" required="true" type="string"/>
<activiti:formProperty id="name" name="申请人姓名" required="true" type="string"/>
<activiti:formProperty datePattern="yyyy-MM-dd" id="submitTime" name="提交时间" required="true" type="date"/>
<activiti:formProperty id="submitType" name="确认申请" required="true" type="string"/>
</extensionElements>
</userTask>
<sequenceFlow id="_4" sourceRef="startEvent" targetRef="submitForm"/>
<exclusiveGateway gatewayDirection="Unspecified" id="decideSubmit" name="提交OR取消"/>
<sequenceFlow id="_6" sourceRef="submitForm" targetRef="decideSubmit"/>
<userTask activiti:exclusive="true" id="tl_approve" name="主管审批">
<extensionElements>
<activiti:formProperty id="tlApprove" name="主管审批结果" readable="true" required="true" type="string" writable="true"/>
<activiti:formProperty id="tlMessage" name="主管备注" required="true" type="string"/>
</extensionElements>
</userTask>
<sequenceFlow id="_8" sourceRef="decideSubmit" targetRef="tl_approve">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType=="y" || submitType=="Y"}]]></conditionExpression>
</sequenceFlow>
<exclusiveGateway gatewayDirection="Unspecified" id="decideTLApprove" name="主管审批校验