記事ディレクトリ
1. Activiti7と6および5の違い
Activiti7は、Activiti5およびActiciti6から大幅に変更されました。マクロレベルでは、Activiti7は、Docker、マイクロサービス、kubernetes、activitiクラウド、activitiクラウド、クラウドネイティブ、およびSpring Boot 2.0を統合しています。使用に関しては、以前の2つのバージョンのIdentityServiceおよびFormServiceインターフェイスがありません。(以下のFormServiceインターフェイスの解決策は次の記事で説明します。IdentityServiceインターフェイスなしでは解決策は見つかりません。ご存知の場合は、コメントでそれを与えることができます)
Activiti7データベースには25個のテーブルがあり、Activiti6データベースには28個のテーブルがあります。
動的フォームと組み合わせたActiviti7
Avtiviti 5および6には、フォームと組み合わせて使用できるコアサービスFormServiceの1つがあります。
StartFormData startFormData = formService.getStartFormData(processDefinitionId);
List<FormProperty> formProperties = startFormData.getFormProperties();
ただし、Acticiti7ではFormServiceインターフェイスがないため、代わりに次のメソッドを使用できます。
UserTask userTask =(UserTask)repositoryService.getBpmnModel(task.getProcessDefinitionId()).getFlowElement(task.getTaskDefinitionKey());
List<FormProperty> formProperties = userTask.getFormProperties();
2. Activiti7の25のテーブル命名規則
テーブル名 | 効果 |
---|---|
act_re_ * | 「Re」はリポジトリを表します。これらのテーブルには、プロセス定義とプロセス静的リソース(画像、ルールなど)が含まれています |
act_ru_ * | 「Ru」はランタイムを表します。これらのランタイムテーブルには、プロセスインスタンス、タスク、変数、非同期タスクなどの実行中のデータが含まれています。Activitiは、プロセスインスタンスの実行中にのみこれらのデータを保存し、プロセスの最後にこれらのレコードを削除します。このように、ランタイムテーブルは常に小さくて高速にできます |
act_hi_ * | 「こんにちは」は歴史を意味します。これらのテーブルには、履歴のプロセスインスタンス、変数、タスクなどの履歴データが含まれています。 |
act_ge_ * | 「Ge」は一般的な意味です。さまざまなシナリオで使用される一般的なデータ |
3.サービスインターフェースの役割
インターフェース | 効果 |
---|---|
RepositoryService | Activitiのリソース管理クラス |
RuntimeService | Activitiのプロセス操作管理クラス |
TaskService | アクティビティのタスク管理クラス |
HistoryService | Activitiの履歴管理クラス |
ManagerService | アクティティのエンジン管理クラス |
注:Activiti7、IdentityService、FormServiceの2つのサービスは削除されます
4. Activiti7の2つの新しいAPI
4.1 ProcessRuntimeインターフェース
以上の分析により、Activiti7で開発する場合、ProcessRuntimeの実装オブジェクトを注入すれば、プロセス定義情報の運用が実現できることがわかりました。もちろん、このプロセスではActiviti7とSpring Securityが強く結びついているため、Spring Securityも含める必要があります。
4.2 TaskRuntimeインターフェース
上記のパートでは、Activiti Coreに必要な座標を導入する方法を紹介すると同時に、TaskRuntime実装オブジェクトを追加する方法、ソースコードの概要などを紹介しました。TaskRuntime自体がTaskServiceのパッケージであることがわかります。