「Activitiワークフローフレームワーク」トピック(2)-Activitiワークフローフレームワーク環境の準備

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.xmlactiviti.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オブジェクトプロセスエンジンオブジェクト

説明:

  1. Activitiのコアクラスである他のすべてのクラスは彼から派生しています。

  2. 製造方法

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  1. RepositoryServiceを生成できます
RepositoryService repositoryService =processEngine.getRepositoryService();
  1. RuntimeServiceを生成できます
RuntimeService runtimeService = processEngine.getRuntimeService();
  1. 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つのプロセスインスタンスデータしかありませんが、複数のプロセスタスクを持つことができ、各タスクはフローチャートの対応するプロセスノードに対応します。

おすすめ

転載: blog.csdn.net/BruceLiu_code/article/details/113597370