Spring Boot 2.7.16を使用する場合のActiviti 7統合設定を説明します。
org.springframework.boot
spring-boot-starter-parent
2.7.16
データベースおよびActiviti関連依存を追加します。
org.springframework.boot
spring-boot-starter-web
com.mysql
mysql-connector-j
8.0.23
org.springframework.boot
spring-boot-starter-jdbc
org.activiti
activiti-spring-boot-starter
7.1.0.M6
application.ymlでデータソースを設定します。
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3307/flow_db
username: flow_user
password: secure_pass
activiti:
history-level: full
history-levelをfullに設定することで完全な履歴管理が有効になります。
Spring Securityの統合を無効化します。
import org.activiti.core.common.spring.identity.config.ActivitiSpringIdentityAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(exclude = {ActivitiSpringIdentityAutoConfiguration.class})
public class FlowApplication {
public static void main(String[] args) {
SpringApplication.run(FlowApplication.class, args);
}
}
ユーザー管理設定を追加します。
import org.activiti.api.runtime.shared.identity.UserGroupManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Collections;
import java.util.List;
@Configuration
public class FlowConfig {
@Bean
public UserGroupManager userGroupManager() {
return new UserGroupManager() {
@Override
public List getUserGroups(String userId) {
return Collections.emptyList();
}
@Override
public List getUserRoles(String userId) {
return Collections.emptyList();
}
@Override
public List getGroups() {
return Collections.emptyList();
}
@Override
public List getUsers() {
return Collections.emptyList();
}
};
}
}
起動後、MySQLに25のテーブルが自動生成されます。Activitiのテーブル命名規則は以下の通りです。
- ACT_RE_*: リポジトリテーブル。プロセス定義やリソースを保存
- ACT_RU_*: ランタイムテーブル。実行中のプロセスインスタンスを管理
- ACT_ID_*: ID管理テーブル。ユーザーおよびグループ情報の格納
- ACT_HI_*: 歴史記録テーブル。過去のプロセス実行履歴を保存
- ACT_GE_*: 一般データテーブル。汎用的なメタデータを保持
参考文献:
Activiti Core User Guide
BPMN 2.0 Process Modeling