第4章 プロセスデザイナーでの BPMN2 タスク

タスクは、プロセスモデルに定義されている自動アクティビティーで、プロセスフロー内で最小の作業単位です。BPMN 2 仕様に定義されているタスクタイプで、Red Hat Process Automation Manager のプロセスデザイナーパレットで利用できるのは以下のとおりです。

  • ビジネスルールタスク
  • スクリプトタスク
  • ユーザータスク
  • サービスタスク
  • タスクなし

表4.1 タスク

ビジネスルールタスク

bpmn business rule task

スクリプトタスク

bpmn script task

ユーザータスク

bpmn user task

サービスタスク

bpmn service task

タスクなし

bpmn none task

さらに、BPMN2 仕様では、カスタムタスクの作成が可能になります。Red Hat Process Automation Manager には、以下の事前定義済みのカスタムタスクが含まれます。

  • REST サービスタスク: リモートの RESTful サービスの呼び出しに使用します。
  • メールサービスタスク: メールの送信に使用します。
  • ログサービスタスク: メッセージのログ記録に使用します。
  • Java サービスタスク: Java コードの呼び出しに使用
  • WebService サービスタスク: リモートの WebService コールの呼び出しに使用します。
  • DecisionTask タスク: DMN ダイアグラム実行に使用します。

ビジネスルールタスク

ビジネスルールタスクは、DMN モデルまたはルールフローグループを使用して、意思決定を行う方法を定義します。

bpmn business rule task

プロセスが DMN モデルで定義したビジネスルールタスクに到達したら、プロセスエンジンが、入力された内容を使用して DMN モデルを実行します。

プロセスがルールフローグループで定義したビジネスルールタスクに到達したら、プロセスエンジンは、定義済みのルールフローグループでルールを実行開始します。ルールフローグループにアクティブなルールがない場合には、実行は次の要素に移動します。ルールフローグループの実行中は、アクティブなルールフローグループに所属するアクティベーションは、他のルールで変更されるので、新たにアジェンダに追加できます。

スクリプトタスク

スクリプトタスクは、プロセス実行中に実行されるスクリプトを表します。

bpmn script task

関連付けられたスクリプトは、プロセス変数やグローバル変数にアクセスできます。スクリプトタスクを使用する前に以下の一覧をレビューしてください。

  • プロセスでは詳細にわたる実装の内容は回避してください。スクリプトタスクは、変数の操作に使用できますが、より複雑な操作をモデル化する場合にサービスタスクの使用を検討してください。
  • 即座にスクリプトを実行するようにしてください。すぐに実行しない場合には、非同期サービスタスクを使用してください。
  • スクリプトタスクを使用して外部のサービスの問い合わせを回避してください。サービスタスクを使用して、外部サービスとの通信をモデル化します。
  • スクリプトで例外がスローされないようにしてください。ランタイムの例外はスクリプト内などで、キャッチし、管理するか、プロセス内で処理できるシグナルまたはエラーに変換する必要があります。

実行中にスクリプトタスクに到達したら、スクリプトが実行され、外向きフローに移動します。

ユーザータスク

ユーザータスクは、システムで自動的に実行できないプロセスワークフローに含まれるタスクなので、ユーザー (人間)、つまり、アクターの介入が必要です。

bpmn user task

実行時に、ユーザータスク要素は、1 つ以上のアクターのタスク一覧に表示されるタスクとしてインスタンス化されます。ユーザータスク要素で Groups 属性が定義されている場合に、このユーザータスク要素は、グループに所属する全ユーザー一覧に表示されます。このグループに所属するメンバーは誰でもタスクを要求できます。

タスクが要求されると、他のユーザーのタスク一覧からこのタスクは消失します。

ユーザータスクは、ドメイン固有のタスクとして実装され、カスタムタスクのベースとして機能します。

サービスタスク

サービスタスクは、人間の介入を必要としないタスクです。これらは、外部のソフトウェアサービスによって自動的に完了します。

bpmn service task

タスクなし

アクティベーション時に完了するタスクはありません。これは概念モデルのみです。タスクなしは、IT システムによって実際に実行されることはありません。

bpmn none task

4.1. Business Central でのビジネスプロセスの作成

プロセスデザイナーは、Red Hat Process Automation Manager のプロセスモデラーです。モデラーの出力は、BPMN 2.0 プロセス定義ファイルです。この定義は、定義に基づいてプロセスインスタンスを作成する Red Hat Process Automation Manager プロセスエンジンの入力として使用されます。

このセクションの手順では、簡単なビジネスプロセスを作成する方法の概要を説明します。より詳細なビジネスプロセスの例については、『Getting started with business processes』を参照してください。

前提条件

手順

  1. Business Central で、MenuDesignProjects に移動します。
  2. プロジェクト名をクリックして、プロジェクトのアセットリストを開きます。
  3. Add Asset → Business Process の順にクリックします。
  4. Create new Business Process ウィザードで、以下の値を入力します。

    • Business Process: 新しいビジネスプロセス名
    • Package: 新しいビジネスプロセスのパッケージの場所。例: com.myspace.myProject
  5. OK をクリックしてプロセスデザイナーを開きます。
  6. 右上隅の Diagram properties diagram properties アイコンをクリックし、プロセスデータや変数などのビジネスプロセスプロパティー情報を追加します。

    1. スクロールダウンして、Process Data を展開します。
    2. Process Variables の横にある btn plus をクリックして、ビジネスプロセスで使用するプロセス変数を定義します。
  7. プロセスデザイナーキャンバスで、左側のツールバーを使用して BPMN コンポーネントをドラッグアンドドロップし、ビジネスプロセスロジック、接続、イベント、タスク、またはその他の要素を定義します。
  8. ビジネスプロセスのすべてのコンポーネントを追加して定義した後に、Save をクリックし、完了したビジネスプロセスを保存します。

4.2. ビジネスルールタスクの作成

ビジネスルールタスクは、Decision Model and Notation (DMN) モデルまたはルールフローグループを使用して意思決定を行うために使用されます。

手順

  1. ビジネスプロセスを作成します。
  2. プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
  3. Business Rule を選択します。
  4. プロセスデザイナーキャンバスの空白エリアをクリックします。
  5. 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
  6. 必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。

    表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

    クリックしてローカル変数を追加します。

  7. Save をクリックします。

4.3. スクリプトタスクの作成

スクリプトタスクは、Java、JavaScript、または MVEL で記述されたコードを実行するために使用されます。これらには、スクリプトタスクのアクションを指定するコードスニペットが含まれています。スクリプトにグローバル変数とプロセス変数を含めることができます。

Java、JavaScript、および MVEL でアクションスクリプトを作成できます。MVEL は有効な Java コードをすべて受け入れ、さらにパラメーターのネストされたアクセスをサポートすることに留意してください。たとえば、Java 呼び出し person.getName() に相当する MVEL は、person.name です。MVEL は Java に対して他の改善も提供し、MVEL 式は一般にビジネスユーザーにとってより便利です。

手順

  1. ビジネスプロセスを作成します。
  2. プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
  3. Script を選択します。
  4. プロセスデザイナーキャンバスの空白エリアをクリックします。
  5. 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
  6. 必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。

    表4.3 スクリプトタスクのパラメーター

    Label説明

    Name (文字列)

    ビジネスルールタスクの名前。

    Documentation

    タスクの説明を入力します。このフィールドのテキストは、プロセスのドキュメントに含まれています。プロセスデザイナーキャンバスの左上にある Documentation タブをクリックして、プロセスドキュメントを表示します。

    Script

    タスクによって実行されるスクリプトを Java、JavaScript、または MVEL で入力し、スクリプトタイプを選択します。

    Is Async

    このタスクを非同期で呼び出す必要がある場合に選択します。外部サービスによって実行されるタスクなど、タスクを瞬時に実行できない場合は、タスクを非同期にします。

    Adhoc Autostart

    これが自動的に開始される必要があるアドホックタスクである場合に選択します。Adhoc Autostart を使用すると、プロセスまたはケースインスタンスが作成されたときに、開始タスクによって開始されるのではなく、タスクが自動的に開始されます。多くの場合、ケース管理で使用されます。

  7. Save をクリックします。

4.4. ユーザータスクの作成

ユーザータスクは、ビジネスプロセスに人間が行うアクションをインプットとして追加するために使用します。

手順

  1. ビジネスプロセスを作成します。
  2. プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
  3. User を選択します。
  4. ビジネスルールをプロセスデザイナーキャンバスにドラッグアンドドロップするか、キャンバスの空白エリアをクリックします。
  5. 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
  6. 必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。

    表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) の有効期限が切れる日付。

  7. Save をクリックします。

4.5. サービスタスクの作成

サービスタスクは、プロセス外で実行されるプロセスの一部であるタスクですが、ヒューマンタスクではありません。サービスタスクの例には、これらのタスクがシステムによって実行されたときに電子メールを送信し、メッセージを記録することが含まれます。サービスタスクに関連付けられているパラメーター (入力) と結果 (出力) を定義できます。サービスタスクには、内向きの接続 1 つと外向きの接続 1 つが必要です。

手順

  1. ビジネスプロセスを作成します。
  2. プロセスデザイナーで、ツールパレットから Activities ツールを選択します。
  3. Service Task を選択します。
  4. プロセスデザイナーキャンバスの空白エリアをクリックします。
  5. 必要に応じて、画面の右上隅で、Properties アイコンをクリックします。
  6. 必要に応じて、以下の表に一覧表示されているタスク情報を追加または定義します。

    表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) の有効期限が切れる日付。

  7. Save をクリックします。

4.6. ビジネスプロセスのコピーの作成

Business Central でビジネスプロセスのコピーを作成し、必要に応じてコピーしたプロセスを変更できます。

手順

  1. ビジネスプロセスデザイナーで、右上のツールバーの Copy をクリックします。
  2. Make a Copy ウィンドウで、コピーしたビジネスプロセスの新しい名前を入力し、ターゲットパッケージを選択して、オプションでコメントを追加します。
  3. Make a Copy をクリックします。
  4. 必要に応じてコピーしたビジネスプロセスを変更し、Save をクリックして、更新されたビジネスプロセスを保存します。

4.7. 要素のサイズを変更し、ズーム機能を使用したビジネスプロセスの表示

ビジネスプロセスの個々の要素のサイズを変更し、ズームインまたはズームアウトして、ビジネスプロセスの表示を変更できます。

手順

  1. ビジネスプロセスデザイナーで、要素を選択し、要素の右下隅にある赤い点をクリックします。
  2. 赤い点をドラッグして、要素のサイズを変更します。

    図4.1 要素のサイズ変更

    Resizing an element
  3. ズームインまたはズームアウトしてダイアグラム全体を表示するには、キャンバスの右下にあるプラス記号またはマイナス記号をクリックします。

    図4.2 ビジネスプロセスの拡大または縮小

    Zooming to view the entire diagram

4.8. Business Central でのプロセスドキュメントの生成

Business Central のプロセスデザイナーでは、プロセス定義のレポートを表示し、出力できます。プロセスドキュメントには、コンポーネント、データ、プロセスの視覚的なフローが簡単に出力して共有できるように PDF 形式でまとめられています。

手順

  1. Business Central で、ビジネスプロセスが含まれるプロジェクトに移動し、プロセスを選択します。
  2. プロセスデザイナーの Documentation タブでプロセスファイルの概要を表示し、画面の右上隅の Print をクリックして PDF レポートを出力します。

    図4.3 プロセスドキュメントの生成

    Project-level service task settings