記事のディレクトリ
1.開発環境を準備します
1.1。アクティビティ開発ライブラリを理解する
1.2。WEBプロジェクトを作成し、Activiti依存関係パッケージをインポートします
IDEAの左側にある[新規]を右クリックし、[Mavenプロジェクトの作成]を選択します。ActivitiDemoという名前のプロジェクトを作成し、
[完了]をクリックします。
次に、pom.xmlファイルに次の依存関係を追加します
<dependencies>
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.22.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-spring -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.6</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<version>3.1</version>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
1.3。テーブル構造を初期化します
1.3.1.activitiフレームワークによって提供されるテーブル作成ステートメントを使用する
ステップ1:テーブル作成ステートメントを取得します
ステップ2:データベースを作成します
ステップ3:SQLステートメントを実行します
1.3.2。activitiフレームワークの自動テーブル作成機能を使用する
フレームワークは、休止状態と同様の自動テーブル
作成機能を提供します。構成ファイルを使用しないでください(非推奨)
/*
* 使用框架提供自动建表(不提供配置文件)
*/
@Test
public void createTable(){
//创建一个流程引擎配置对象
ProcessEngineConfiguration conf = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
//设置数据源信息
conf.setJdbcDriver("com.mysql.jdbc.Driver");
conf.setJdbcUrl("jdbc:mysql:///activitidb?characterEncoding=utf-8");
conf.setJdbcUsername("root");
conf.setJdbcPassword("123");
//设置自动建表
conf.setDatabaseSchemaUpdate("true");
//创建一个流程引擎对象,在创建流程引擎对象过程中会自动建表
ProcessEngine processEngine = conf.buildProcessEngine();
}
1.3.3。構成ファイルの使用
構成ファイルの名前はでなければならないactiviti-context.xml
かactiviti.cfg.xml
、と構成情報がなければなりません
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- 配置流程引擎配置对象 -->
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql:///activitidb?characterEncoding=utf-8" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="123" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
@Test
public void createTable1(){
ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti-context.xml","processEngineConfiguration").buildProcessEngine();
System.out.println("------processEngine----:" + processEngine);
}
1.3.4。デフォルトの構成ファイルを使用する
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- 配置流程引擎配置对象 -->
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql:///activitidb?characterEncoding=utf-8" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="123" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
<!-- 配置一个流程引擎工厂bean,用于创建流程引擎对象 -->
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<!-- 通过set方法注入流程引擎配置对象 -->
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
</beans>
@Test
public void createTable2(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
System.out.println(processEngine);
}
次に、テストメソッドを実行します。正常に実行された場合は、25個のActiviti関連のデータテーブルがデータベースに生成されます。
1.3.5。アクティビティテーブルの説明
以下は、一般的に使用されるいくつかのデータテーブルの要約です。
Activitiのバックエンドはデータベースによってサポートされており、すべてのテーブルはACT_で始まります。2番目の部分は、表の目的を示す2文字のロゴです。使用法は、サービスのAPIにも対応しています。
ACT_RE_*
:「RE」はリポジトリを表します。プレフィックステーブルには、プロセス定義とプロセス静的リソース(画像、ルールなど)が含まれています。
ACT_RU_*
:「RU」はランタイムを意味します。これらのランタイムテーブルには、プロセスインスタンス、タスク、変数、非同期タスク、およびその他の実行中のデータが含まれています。Activitiは、プロセスインスタンスの実行中にのみこれらのデータを保存し、プロセスの最後にこれらのレコードを削除します。このようにして、ランタイムテーブルは常に小さく高速になります。
ACT_ID_*
:「ID」はIDを意味します。これらのテーブルには、ユーザー、グループなどのID情報が含まれています。
ACT_HI_*
:「HI」は履歴を意味します。これらのテーブルには、履歴プロセスインスタンス、変数、タスクなどの履歴データが含まれています。
ACT_GE_*
:さまざまなシナリオで使用される一般的なデータ。
プロセス展開関連のテーブル
act_re_deployement 部署对象表
act_rep_procdef 流程定义表
act_ge_bytearray 资源文件表
act_ge_prperty 主键生成策略表(对于部署对象表的主键ID)
プロセスインスタンス関連テーブル
act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)
act_hi_procinst 流程实例历史表
act_hi_actinst 存放历史所有完成的任务
タスク関連の表
act_ru_task 代办任务表 (只对应节点是UserTask的)
act_hi_taskinst 代办任务历史表 (只对应节点是UserTask的)
act_hi_actinst 所有节点活动历史表 (对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)
プロセス変数テーブル
act_ru_variable 正在执行的流程变量表
act_hi_variable 流程变量历史表
2.開発環境のコアAPIを準備します
2.1.ProcessEngineオブジェクトプロセスエンジンオブジェクト
説明:
-
Activitiのコアクラスである他のすべてのクラスは彼から派生しています。
-
製造方法
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
- RepositoryServiceを生成できます
RepositoryService repositoryService =processEngine.getRepositoryService();
- RuntimeServiceを生成できます
RuntimeService runtimeService = processEngine.getRuntimeService();
- TaskServiceを生成できます
TaskService taskService =processEngine.getTaskService();
各サービスの役割
Xxxservice | 効果 |
---|---|
RepositoryService | 管理プロセスの定義 |
RuntimeService | プロセスインスタンスの開始、進行、削除などの操作を含む管理を実行します |
TaskService | タスク管理 |
2.2.RepositoryService
Activitiの倉庫サービスクラス。いわゆるウェアハウスとは、プロセス定義ドキュメントのbpmnファイルとプロセスピクチャの2つのファイルを指します。
このサービスを使用して、デプロイされたプロセス定義を削除できます。
2.3.RuntimeService
Activitiのプロセス実行サービスクラスです。このサービスクラスから、プロセス実行に関する多くの関連情報を取得できます。
2.4.TaskService
Activitiのタスクサービスクラスです。このクラスから、現在実行されている個人のToDoタスクやユーザーグループのToDoタスクなどのタスク関連情報を取得できます。
2.5.HistoryService
これは、履歴情報をクエリするためのActivitiのクラスです。プロセスが実行された後、このオブジェクトは、プロセスインスタンスに対応するすべての保留中のノードの実行ステータスを追跡できるクエリ履歴情報を提供します。
2.6.ProcessDefinition
プロセス定義クラス、リソースファイルなどはこちらから入手できます。
2.7.ProcessInstance
プロセス定義の実行インスタンスを表します。デプロイされたフローチャートが開始されると、プロセスには1つのプロセスインスタンスデータしかありませんが、複数のプロセスタスクを持つことができ、各タスクはフローチャートの対応するプロセスノードに対応します。