第4章 プロセスデザイナーでの BPMN2 タスク
タスクは、プロセスモデルに定義されている自動アクティビティーで、プロセスフロー内で最小の作業単位です。BPMN 2 仕様に定義されているタスクタイプで、Red Hat Process Automation Manager のプロセスデザイナーパレットで利用できるのは以下のとおりです。
- ビジネスルールタスク
- スクリプトタスク
- ユーザータスク
- サービスタスク
- タスクなし
ビジネスルールタスク |
|
スクリプトタスク |
|
ユーザータスク |
|
サービスタスク |
|
タスクなし |
|
さらに、BPMN2 仕様では、カスタムタスクの作成が可能になります。Red Hat Process Automation Manager には、以下の事前定義済みのカスタムタスクが含まれます。
- REST サービスタスク: リモートの RESTful サービスの呼び出しに使用します。
- メールサービスタスク: メールの送信に使用します。
- ログサービスタスク: メッセージのログ記録に使用します。
- Java サービスタスク: Java コードの呼び出しに使用
- WebService サービスタスク: リモートの WebService コールの呼び出しに使用します。
- DecisionTask タスク: DMN ダイアグラム実行に使用します。
ビジネスルールタスク
ビジネスルールタスクは、DMN モデルまたはルールフローグループを使用して、意思決定を行う方法を定義します。
プロセスが DMN モデルで定義したビジネスルールタスクに到達したら、プロセスエンジンが、入力された内容を使用して DMN モデルを実行します。
プロセスがルールフローグループで定義したビジネスルールタスクに到達したら、プロセスエンジンは、定義済みのルールフローグループでルールを実行開始します。ルールフローグループにアクティブなルールがない場合には、実行は次の要素に移動します。ルールフローグループの実行中は、アクティブなルールフローグループに所属するアクティベーションは、他のルールで変更されるので、新たにアジェンダに追加できます。
スクリプトタスク
スクリプトタスクは、プロセス実行中に実行されるスクリプトを表します。
関連付けられたスクリプトは、プロセス変数やグローバル変数にアクセスできます。スクリプトタスクを使用する前に以下の一覧をレビューしてください。
- プロセスでは詳細にわたる実装の内容は回避してください。スクリプトタスクは、変数の操作に使用できますが、より複雑な操作をモデル化する場合にサービスタスクの使用を検討してください。
- 即座にスクリプトを実行するようにしてください。すぐに実行しない場合には、非同期サービスタスクを使用してください。
- スクリプトタスクを使用して外部のサービスの問い合わせを回避してください。サービスタスクを使用して、外部サービスとの通信をモデル化します。
- スクリプトで例外がスローされないようにしてください。ランタイムの例外はスクリプト内などで、キャッチし、管理するか、プロセス内で処理できるシグナルまたはエラーに変換する必要があります。
実行中にスクリプトタスクに到達したら、スクリプトが実行され、外向きフローに移動します。
ユーザータスク
ユーザータスクは、システムで自動的に実行できないプロセスワークフローに含まれるタスクなので、ユーザー (人間)、つまり、アクターの介入が必要です。
実行時に、ユーザータスク要素は、1 つ以上のアクターのタスク一覧に表示されるタスクとしてインスタンス化されます。ユーザータスク要素で Groups
属性が定義されている場合に、このユーザータスク要素は、グループに所属する全ユーザー一覧に表示されます。このグループに所属するメンバーは誰でもタスクを要求できます。
タスクが要求されると、他のユーザーのタスク一覧からこのタスクは消失します。
ユーザータスクは、ドメイン固有のタスクとして実装され、カスタムタスクのベースとして機能します。
サービスタスク
サービスタスクは、人間の介入を必要としないタスクです。これらは、外部のソフトウェアサービスによって自動的に完了します。
タスクなし
アクティベーション時に完了するタスクはありません。これは概念モデルのみです。タスクなしは、IT システムによって実際に実行されることはありません。
4.1. Business Central でのビジネスプロセスの作成
プロセスデザイナーは、Red Hat Process Automation Manager のプロセスモデラーです。モデラーの出力は、BPMN 2.0 プロセス定義ファイルです。この定義は、定義に基づいてプロセスインスタンスを作成する Red Hat Process Automation Manager プロセスエンジンの入力として使用されます。
このセクションの手順では、簡単なビジネスプロセスを作成する方法の概要を説明します。より詳細なビジネスプロセスの例については、『Getting started with business processes』を参照してください。
前提条件
- Red Hat Process Automation Manager プロジェクトを作成済みまたはインポート済みである。プロジェクトの作成に関する詳細は、『Managing projects in Business Central』を参照してください。
- 必要なユーザーを作成済みである。ユーザーの特権と設定は、ユーザーに割り当てられたロールとユーザーが属するグループによって制御されます。ユーザーの作成に関する詳細は、『Installing and configuring Red Hat Process Automation Manager on Red Hat JBoss EAP 7.2』を参照してください。
手順
-
Business Central で、Menu
Design Projects に移動します。 - プロジェクト名をクリックして、プロジェクトのアセットリストを開きます。
-
Add Asset
Business Process の順にクリックします。 Create new Business Process ウィザードで、以下の値を入力します。
- Business Process: 新しいビジネスプロセス名
-
Package: 新しいビジネスプロセスのパッケージの場所。例:
com.myspace.myProject
- OK をクリックしてプロセスデザイナーを開きます。
右上隅の Diagram properties アイコンをクリックし、プロセスデータや変数などのビジネスプロセスプロパティー情報を追加します。
- スクロールダウンして、Process Data を展開します。
- Process Variables の横にある をクリックして、ビジネスプロセスで使用するプロセス変数を定義します。
- プロセスデザイナーキャンバスで、左側のツールバーを使用して BPMN コンポーネントをドラッグアンドドロップし、ビジネスプロセスロジック、接続、イベント、タスク、またはその他の要素を定義します。
- ビジネスプロセスのすべてのコンポーネントを追加して定義した後に、Save をクリックし、完了したビジネスプロセスを保存します。
4.2. ビジネスルールタスクの作成
ビジネスルールタスクは、Decision Model and Notation (DMN) モデルまたはルールフローグループを使用して意思決定を行うために使用されます。
手順
- ビジネスプロセスを作成します。
- プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
- Business Rule を選択します。
- プロセスデザイナーキャンバスの空白エリアをクリックします。
- 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。
表4.2 ビジネスルールタスクのパラメーター Label 説明 Name (文字列)
ビジネスルールタスクの名前。
Rule Language
タスクの出力言語。Decision Model and Notation (DMN) または Drools (DRL) を選択します。
Rule Flow Group
このビジネスタスクに関連付けられたルールフローグループ。一覧からルールフローグループを選択するか、新しいルールフローグループを指定します。
On Entry Action
タスクの開始時のアクションを指定する Java、JavaScript、または MVEL スクリプト。
On Exit Action
タスクの終了時にアクションを指定する Java、JavaScript、または MVEL スクリプト。
Is Async
このタスクを非同期で呼び出す必要がある場合に選択します。外部サービスによって実行されるタスクなど、タスクを瞬時に実行できない場合は、タスクを非同期にします。
Adhoc Autostart
これが自動的に開始される必要があるアドホックタスクである場合に選択します。Adhoc Autostart を使用すると、プロセスまたはケースインスタンスが作成されたときに、開始タスクによって開始されるのではなく、タスクが自動的に開始されます。多くの場合、ケース管理で使用されます。
SLA Due Date
サービスレベルアグリーメント (SLA) の有効期限が切れる日付。
Assignments
クリックしてローカル変数を追加します。
- Save をクリックします。
4.3. スクリプトタスクの作成
スクリプトタスクは、Java、JavaScript、または MVEL で記述されたコードを実行するために使用されます。これらには、スクリプトタスクのアクションを指定するコードスニペットが含まれています。スクリプトにグローバル変数とプロセス変数を含めることができます。
Java、JavaScript、および MVEL でアクションスクリプトを作成できます。MVEL は有効な Java コードをすべて受け入れ、さらにパラメーターのネストされたアクセスをサポートすることに留意してください。たとえば、Java 呼び出し person.getName()
に相当する MVEL は、person.name
です。MVEL は Java に対して他の改善も提供し、MVEL 式は一般にビジネスユーザーにとってより便利です。
手順
- ビジネスプロセスを作成します。
- プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
- Script を選択します。
- プロセスデザイナーキャンバスの空白エリアをクリックします。
- 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。
表4.3 スクリプトタスクのパラメーター Label 説明 Name (文字列)
ビジネスルールタスクの名前。
Documentation
タスクの説明を入力します。このフィールドのテキストは、プロセスのドキュメントに含まれています。プロセスデザイナーキャンバスの左上にある Documentation タブをクリックして、プロセスドキュメントを表示します。
Script
タスクによって実行されるスクリプトを Java、JavaScript、または MVEL で入力し、スクリプトタイプを選択します。
Is Async
このタスクを非同期で呼び出す必要がある場合に選択します。外部サービスによって実行されるタスクなど、タスクを瞬時に実行できない場合は、タスクを非同期にします。
Adhoc Autostart
これが自動的に開始される必要があるアドホックタスクである場合に選択します。Adhoc Autostart を使用すると、プロセスまたはケースインスタンスが作成されたときに、開始タスクによって開始されるのではなく、タスクが自動的に開始されます。多くの場合、ケース管理で使用されます。
- Save をクリックします。
4.4. ユーザータスクの作成
ユーザータスクは、ビジネスプロセスに人間が行うアクションをインプットとして追加するために使用します。
手順
- ビジネスプロセスを作成します。
- プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
- User を選択します。
- ビジネスルールをプロセスデザイナーキャンバスにドラッグアンドドロップするか、キャンバスの空白エリアをクリックします。
- 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。
表4.4 ユーザータスクパラメーター Label 説明 Name (文字列)
ビジネスルールタスクの表示名。
Documentation
タスクの説明を入力します。このフィールドのテキストは、プロセスのドキュメントに含まれています。プロセスデザイナーキャンバスの左上にある Documentation タブをクリックして、プロセスドキュメントを表示します。
Task Name
ヒューマンタスクの名前。
Subject
タスクの件名を入力します。
Actors
ヒューマンタスクの実行を担当するアクター。Add をクリックして行を追加し、一覧からアクターを選択するか、New をクリックして新しいアクターを追加します。
Groups
ヒューマンタスクの実行を担当するグループ。Add をクリックして行を追加し、一覧からグループを選択するか、New をクリックして新しいグループを追加します。
Assignments
このタスクのローカル変数。Task Data I/O ウィンドウをクリックして開き、必要に応じてデータの入力と出力を追加します。
Reassignments
別のアクターを指定して、このタスクを完了します。
Notifications
クリックして、タスクに関連付けられた通知を指定します。
Is Async
このタスクを非同期で呼び出す必要がある場合に選択します。外部サービスによって実行されるタスクなど、タスクを瞬時に実行できない場合は、タスクを非同期にします。
Skippable
このタスクが必須ではない場合に選択します。
Priority
タスクの優先度を指定します。
Description
ヒューマンタスクの説明を入力します。
Created By
このタスクを作成したユーザー。
Adhoc Autostart
これが自動的に開始される必要があるアドホックタスクである場合に選択します。Adhoc Autostart を使用すると、プロセスまたはケースインスタンスが作成されたときに、開始タスクによって開始されるのではなく、タスクが自動的に開始されます。多くの場合、ケース管理で使用されます。
Multiple Instance
このタスクに複数のインスタンスがある場合に選択します。
On Entry Action
タスクの開始時のアクションを指定する Java、JavaScript、または MVEL スクリプト。
On Exit Action
タスクの終了時にアクションを指定する Java、JavaScript、または MVEL スクリプト。
Content
スクリプトのコンテンツ。
SLA Due Date
サービスレベルアグリーメント (SLA) の有効期限が切れる日付。
- Save をクリックします。
4.5. サービスタスクの作成
サービスタスクは、プロセス外で実行されるプロセスの一部であるタスクですが、ヒューマンタスクではありません。サービスタスクの例には、これらのタスクがシステムによって実行されたときに電子メールを送信し、メッセージを記録することが含まれます。サービスタスクに関連付けられているパラメーター (入力) と結果 (出力) を定義できます。サービスタスクには、内向きの接続 1 つと外向きの接続 1 つが必要です。
手順
- ビジネスプロセスを作成します。
- プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
- Service Task を選択します。
- プロセスデザイナーキャンバスの空白エリアをクリックします。
- 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。
表4.5 サービスタスクパラメーター Label 説明 Name (文字列)
サービスタスクの名前。
Documentation
タスクの説明を入力します。このフィールドのテキストは、プロセスのドキュメントに含まれています。プロセスデザイナーキャンバスの左上にある Documentation タブをクリックして、プロセスドキュメントを表示します。
Implementation
タスクが Java で実装されているか、Web サービスであるかを指定します
Interface
org.xyz.HelloWorld
など、スクリプトの実装に使用されるクラス。Operation
sayHello()
など、インターフェースによって呼び出されるメソッド。Assignments
クリックしてローカル変数を追加します。
Adhoc Autostart
これが自動的に開始される必要があるアドホックタスクである場合に選択します。Adhoc Autostart を使用すると、プロセスまたはケースインスタンスが作成されたときに、開始タスクによって開始されるのではなく、タスクが自動的に開始されます。多くの場合、ケース管理で使用されます。
Is Async
このタスクを非同期で呼び出す必要がある場合に選択します。外部サービスによって実行されるタスクなど、タスクを瞬時に実行できない場合は、タスクを非同期にします。
Is Multiple Instance
このタスクに複数のインスタンスがある場合に選択します。
On Entry Action
タスクの開始時のアクションを指定する Java、JavaScript、または MVEL スクリプト。
On Exit Action
タスクの終了時にアクションを指定する Java、JavaScript、または MVEL スクリプト。
SLA Due Date
サービスレベルアグリーメント (SLA) の有効期限が切れる日付。
- Save をクリックします。
4.6. ビジネスプロセスのコピーの作成
Business Central でビジネスプロセスのコピーを作成し、必要に応じてコピーしたプロセスを変更できます。
手順
- ビジネスプロセスデザイナーで、右上のツールバーの Copy をクリックします。
- Make a Copy ウィンドウで、コピーしたビジネスプロセスの新しい名前を入力し、ターゲットパッケージを選択して、オプションでコメントを追加します。
- Make a Copy をクリックします。
- 必要に応じてコピーしたビジネスプロセスを変更し、Save をクリックして、更新されたビジネスプロセスを保存します。
4.7. 要素のサイズを変更し、ズーム機能を使用したビジネスプロセスの表示
ビジネスプロセスの個々の要素のサイズを変更し、ズームインまたはズームアウトして、ビジネスプロセスの表示を変更できます。
手順
- ビジネスプロセスデザイナーで、要素を選択し、要素の右下隅にある赤い点をクリックします。
赤い点をドラッグして、要素のサイズを変更します。
図4.1 要素のサイズ変更
ズームインまたはズームアウトしてダイアグラム全体を表示するには、キャンバスの右下にあるプラス記号またはマイナス記号をクリックします。
図4.2 ビジネスプロセスの拡大または縮小
4.8. Business Central でのプロセスドキュメントの生成
Business Central のプロセスデザイナーでは、プロセス定義のレポートを表示し、出力できます。プロセスドキュメントには、コンポーネント、データ、プロセスの視覚的なフローが簡単に出力して共有できるように PDF 形式でまとめられています。
手順
- Business Central で、ビジネスプロセスが含まれるプロジェクトに移動し、プロセスを選択します。
プロセスデザイナーの Documentation タブでプロセスファイルの概要を表示し、画面の右上隅の Print をクリックして PDF レポートを出力します。
図4.3 プロセスドキュメントの生成