【Activiti入門】条件分岐ルートの作成
概要
前回の入門記事では直線のルートを紹介しましたが、今回はもう少し業務プロセスらしい、条件分岐のルートを扱います。 条件分岐ルートとは、入力値に応じて、異なるユーザタスクが割り当てられるルートのことです。
ステップ
条件判定の対象となる入力項目を用意します。
前回の入門記事で紹介したActiviti Explorerを利用する場合、form属性を設定することで「StartEvent」・「UserTask」に入力項目を設定できます。
form属性は、フィールドの名称・データ型・変数名などを設定することで「StartEvent」・「UserTask」を処理する画面に入力項目を設定できる機能です。
Activiti Designerにて「StartEvent」・「UserTask」のpropertiesタブから設定します。
条件分岐を行うには、「ExclusiveGateway」のアイコンを利用します。
「Gateway」カテゴリにある「ExclusiveGateway」を利用することで、各「UserTask」へ分岐させることが可能です。
「ExclusiveGateway」から各「UserTask」へのシーケンスに対して、それぞれの到達条件を設定します。
1で設置したフィールドは、変数として到達条件の条件式で利用できます。
フローの作成
では、実際に条件分岐を行うフローを作成していきます。
Activiti Diagramを作成し、フローのデザイナー画面を表示します。
以下のアイコンを配置します。
- 「Start Event」カテゴリから「StartEvent」を配置します。
- 「Gateway」カテゴリから「ExclusiveGateway」を配置します。
- 「Task」カテゴリから「UserTask」を2つ配置します。
- 「End Event」カテゴリから「EndEvent」を配置します。
以下のように線を引きます。
- 「StartEvent」から「ExclusiveGateway」へ線を引きます。
- 「ExclusiveGateway」から2つの「UserTask」へそれぞれ線を引きます。
- 2つの「UserTask」からそれぞれ「EndEvent」へ線を引きます。
「StartEvent」にフィールドを設置します。
- 「StartEvent」を押下します。
- Propertiesタブを選択し、FormのNewを押下します。
表示されたダイアログに以下のように入力します。
id name type Variable Readable Writeable Required price Price long price true true true
「UserTask」にフィールドを設定します。
- 「UserTask」を押下します。
- Propertiesタブを選択し、FormのNewを押下します。
表示されたダイアログに以下のように入力します。
id name type Variable Readable Writeable Required price Price long price true false false
条件分岐を設定します。
「ExclusiveGateway」から1つ目の「UserTask」へのシーケンスを押下します。
表示されたpropertiesタブMain configのcondition属性に「${price>1000}」を入力します。
「ExclusiveGateway」から2つ目の「UserTask」へのシーケンスを押下します。
表示されたpropertiesタブMain configのcondition属性に「${price<=1000}」を入力します。
フローを保存・ビルドし、出力されたbarファイルをActiviti Explorerにデプロイします。
フローの実行
fozzie/fozzieでActiviti Explorerへログインします。
「プロセス」からデプロイしたフローを選択します。
「プロセスの開始」を押下すると、入力画面が表示されます。
「Price」に100を入力し、プロセスを開始します。
「プロセス」の「マイ・インスタンス」から開始したフローの状態を確認します。
条件分岐が判定され、2つ目の「UserTask」が割り当てられたことを確認します。
kermit/kermitでActiviti Explorerへログインします。
「ケース」-「受信トレイ」にタスクがあります。
タスクを選択し、Priceが100であることを確認します。
「タスクの完了」を押下することで、プロセスが完了します。
Activiti入門
概要
Activitiでは、BPM 2.0に準拠したBPMエンジン Activiti Engineを中核として、様々な周辺製品が提供されています。
今回のブログ記事では、Activiti Designerで作成したフローをActiviti Explorerにデプロイし、処理を行います。 Activiti Designerは、BPMのフローを記述できるGUIのエディター(Eclipseプラグイン)で、Activiti ExplorerはActiviti Engineを内包した簡易Webアプリケーションです。
Activiti Explorerの利用方法の詳細については、以下の「Activiti 5.x Business Process Management Beginner's Guide」をご参照ください。
Activiti 5.x Business Process Management Beginner's Guide
- 作者: Dr. Zakir Laliwala,Irshad Mansuri
- 出版社/メーカー: Packt Publishing
- 発売日: 2014/03/26
- メディア: Kindle版
- この商品を含むブログを見る
「Activiti 5.x Business Process Management Beginner's Guide」では、Activiti Explorerの利用方法をベースにして、Activiti/BPM2.0について説明しています。
Activiti Designer
Activitiでは、GUIのエディターでBPMのフローを記述できる Activiti DesignerがEclipseプラグインとして提供されています。
インストール
Eclipseをインストールします。
Activiti User Guideによると、Eclipse Kepler もしくはEclipse Indigoのバージョンが推奨されています。 https://wiki.eclipse.org/Older_Versions_Of_Eclipse
こちらで確認した限りでは、最新版のEclipse Marsでも特に問題なく動作しています。 https://www.eclipse.org/downloads/
Activiti Explorerプラグインをインストールします。
ツールバー「Help」から「Install New Software」を表示し、追加ボタンを押下します。
Add Repositoryのダイアログが表示されます。
Name属性に「Activiti BPMN 2.0 designer」を指定します。
Location属性に「http://activiti.org/designer/update/」を指定します。
インストールを行い、Eclipseを再起動します。
フロー作成
Activitiプロジェクトを作成します。
フローを格納するプロジェクトを作成します。
ツールバー「File」-「New」-「Project」を押下し、「Activiti Project」を選択します。
プロジェクト名を入力し、プロジェクトを作成します。
Activiti Diagramを作成します。
フローを作成します。
作成したプロジェクトをパッケージ・エクスプローラで表示します。
「src/main/resources/」-「diagrams」から右クリックで、「New」-「Other」を押下します。
表示された画面から「Activiti Diagram」を選択します。
フロー名を入力し、フローを作成します。
直線ルートの作成
ここでは、開始と1つのタスクから成るフローを作成します。
作成したフローのデザイナー画面を表示します。
「Start Event」カテゴリから「StartEvent」を配置します。
「Task」カテゴリから「User Task」を配置します。
「End Event」カテゴリから「EndEvent」を配置します。
配置した「StartEvent」-「User Task」-「EndEvent」を線で結びます。
開始を行うユーザを設定します。
フロー上のアイコン以外の場所を押下します。
Propertiesタブを選択し、ProcessのCandidate start users(comma separated)に「fozzie」を入力します。
「UserTask」を押下し、処理を行うユーザを設定します。
- Propertiesタブを選択し、Main configのAssigneeに「kermit」を入力します。
フローの保存を行います。
フローのビルド
パッケージ・エクスプローラを表示します。
プロジェクトを選択した状態で右クリックを行い、「」を押下します。
「deployment」ディレクトリにフローがビルドされたbarファイルが出力されます。
Activiti Explorer
作成したフローをActiviti Engine上で実際に動作させてみます。 Activiti Engineを内包したActiviti Explorerを利用します。
Tomcatのインストール
各環境に応じたTomcatのバイナリをダウンロードし、解凍します。 http://tomcat.apache.org/download-90.cgi
Activiti Explorerのインストール
Activityをダウロードし、解凍します。
解凍したディレクトリ内のwars/activiti-explorer.warを%TOMCAT_HOME%/webappsにコピーします。
Activiti Explorerの起動
Tomcatの起動コマンドを実行します。
しばらくしたら、http://localhost:8080/activiti-explorer/へアクセスします。
フローのデプロイ
kermit/kermitでActiviti Explorerへログインします。
「管理」-「デプロイ」-「新規アップロード」を選択します。
「ファイル選択」からビルドしたbarファイルを指定します。
デプロイが実行され、フローが利用できるようになります。
フローの実行
fozzie/fozzieでActiviti Explorerへログインします。
「プロセス」からデプロイしたフローを選択します。
「プロセスの開始」を押下します。
kermit/kermitでActiviti Explorerへログインします。
「ケース」-「受信トレイ」にタスクがあります。
「タスクの完了」を押下することで、プロセスが完了します。