mactivit使用流程
时间: 2024-01-09 15:03:40 浏览: 139
activiti工作流程
MActiviti 是 Activiti 工作流的一个扩展,它可以让 Activiti 更好地集成到 Spring Boot 应用中。下面是使用 MActiviti 的基本流程:
1. 添加依赖:在 Spring Boot 项目的 pom.xml 文件中添加 MActiviti 的依赖,例如:
```xml
<dependency>
<groupId>com.github.mactiviti</groupId>
<artifactId>mactiviti-spring-boot-starter</artifactId>
<version>${mactiviti.version}</version>
</dependency>
```
其中,`${mactiviti.version}` 是 MActiviti 的版本号。
2. 配置数据源:在 Spring Boot 的配置文件中配置 Activiti 的数据源,例如:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
```
这里使用的是 MySQL 数据库,可以根据实际情况选择其他数据库。
3. 配置 MActiviti:在 Spring Boot 的配置文件中配置 MActiviti 的相关参数,例如:
```yaml
mactiviti:
process-definition-location-prefix: classpath:/processes/
process-definition-location-suffix: .bpmn20.xml
database-schema-update: true
```
其中,`process-definition-location-prefix` 和 `process-definition-location-suffix` 用于设置流程定义文件的位置和后缀名,`database-schema-update` 用于设置是否自动更新数据库表结构。
4. 编写流程定义文件:在 `process-definition-location-prefix` 指定的位置编写流程定义文件,例如 `myProcess.bpmn20.xml`。
5. 部署流程:在 Spring Boot 应用启动时,MActiviti 会自动读取流程定义文件,并将流程部署到 Activiti 引擎中。如果流程定义文件有变化,MActiviti 会自动更新流程。
6. 启动流程:通过 Activiti 的 API 来启动流程实例,例如:
```java
@Autowired
private RuntimeService runtimeService;
String processDefinitionKey = "myProcess";
Map<String, Object> variables = new HashMap<>();
variables.put("input", "Hello, Activiti!");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
```
这里启动的流程实例的流程定义 Key 是 `myProcess`,并传入了一个变量 `input`。
7. 执行流程任务:根据流程定义文件中定义的流程节点和任务,执行流程任务,例如:
```java
@Autowired
private TaskService taskService;
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
if (task != null) {
Map<String, Object> variables = new HashMap<>();
variables.put("output", "Hello, MActiviti!");
taskService.complete(task.getId(), variables);
}
```
这里查询当前流程实例的任务,并完成任务,并传入了一个变量 `output`。
8. 查看流程状态:通过 Activiti 的 API 来查询流程实例和任务的状态,例如:
```java
List<ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery().processDefinitionKey(processDefinitionKey).list();
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
```
这里查询当前流程实例和任务的状态。
总之,使用 MActiviti 可以更方便地将 Activiti 集成到 Spring Boot 应用中,从而实现业务流程的自动化。
阅读全文