4.4. プロセスデザイナーでの BPMN2 カスタムタスク
BPMN2 仕様は、bpmn2:task
要素を拡張してソフトウェア実装でカスタムタスクを作成する機能をサポートします。標準の BPMN タスクと同様に、カスタムタスクは、ビジネスプロセスモデルで完了するアクションを特定しますが、これには、特定のタイプ (REST、電子メール、または Web サービス) の外部サービスとの互換性や、プロセス (マイルストーン) 内のチェックポイント動作などの特化した機能も含まれます。
Red Hat Process Automation Manager は、BPMN モデラーパレットの Custom Tasks の下に、以下の事前定義済みのカスタムタスクを提供します。
カスタムタスクのタイプ | カスタムタスクのノード |
---|---|
Rest |
|
電子メール |
|
ログ |
|
WebService |
|
マイルストーン |
|
DecisionTask |
|
BusinessRuleTask |
|
KafkaPublishMessages |
|
Business Central でのカスタムタスクを有効または無効にする方法は、58章Business Central でのカスタムタスクの管理 を参照してください。
BPMN モデラーでは、一部のカスタムタスクに対して以下の一般的なプロパティーを設定できます。
ラベル | 説明 |
---|---|
名前 | タスクの名前を識別します。タスクノードをダブルクリックして名前を編集することもできます。 |
ドキュメント | タスクについて記述します。このフィールドのテキストはプロセスドキュメントに含まれます (該当する場合)。 |
非同期です | このタスクが非同期で呼び出されるかどうかを決定します。 |
アドホックの自動開始 | これが自動的に開始されるアドホックタスクであるかどうかを決定します。このオプションを使用すると、タスクは、シグナルイベントにより開始するのではなく、プロセスが作成されたときに自動的に開始します。 |
開始時アクション | タスクの開始時のアクションを指定する Java、JavaScript、または MVEL スクリプトを定義します。 |
終了時アクション | タスクの終了時にアクションを指定する Java、JavaScript、または MVEL スクリプトを定義します。 |
SLA 期日 |
サービスレベルアグリーメント (SLA) の有効期限が切れるまでの期間 (文字列タイプ) を指定します。期間は、日数、分、秒、およびミリ秒で指定できます。たとえば、SLA due date フィールドの |
割当 | タスクのデータの入力と出力を定義します。 |
Metadata Attributes | メタデータ属性が存在する場合に何らかのアクションを実装するリスナーなど、カスタムイベントリスナーに使用するカスタムメタデータ属性の名前と値を定義します。
メタデータ属性は、BPMN 図に新しい |
Rest
Rest カスタムタスクは、リモートの RESTful サービスを呼び出すか、プロセスから HTTP 要求を実行するために使用されます。

Rest カスタムタスクを使用するには、プロセスモデラーに URL、HTTP メソッド、および認証情報を設定します。プロセスが Rest カスタムタスクに到達したら、HTTP 要求を生成し、応答を文字列として返します。
Properties パネルで Assignments をクリックし、REST Data I/O ウィンドウを開きます。REST Data I/O ウィンドウで、必要に応じてデータの入力と出力を設定できます。たとえば、Rest カスタムタスクを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- URL: REST サービスのエンドポイント URL。この属性は必須です。
-
Method: 呼び出されたエンドポイントのメソッド (例:
GET
およびPOST
など)。デフォルト値はGET
です。 -
ContentType: データ送信時のデータタイプ。この属性は、
POST
およびPUT
要求では必須です。 -
ContentTypeCharset:
ContentType
に設定された文字セット。 - Content: 送信するデータ。この属性は後方互換性に対応し、代わりに ContentData 属性を使用します。
-
ContentData: 送信するデータ。この属性は、
POST
およびPUT
要求では必須です。 - ConnectTimeout: 接続タイムアウト (秒単位)。デフォルト値は 60000 ミリ秒です。入力値はミリ秒単位で指定する必要があります。
- ReadTimeout: 応答のタイムアウト (秒単位)。デフォルト値は 60000 ミリ秒です。入力値はミリ秒単位で指定する必要があります。
- Username: 認証用のユーザー名。
- Password: 認証用のパスワード。
- AuthUrl: 認証を処理する URL。
- AuthType: 認証を処理する URL のタイプ。
- HandleResponseErrors (オプション): 応答コードが失敗した場合に、エラーを発生させるようにハンドラーに指示 (2XX は除く)。
- ResultClass: 応答がアンマーシャリングされるクラスの有効な名前。指定されない場合は、未加工の応答が文字列形式で返されます。
- AcceptHeader: Accept ヘッダーの値。
- AcceptCharset: Accept ヘッダーの文字セット。
-
Headers: REST 呼び出しへ渡すヘッダー (例:
content-type=text/html
など)。
以下のデータの出力を Data Outputs and Assignments に追加し、タスク実行の出力を保存できます。
- Result: 残りのカスタムタスクの出力変数 (オブジェクトタイプ)。
電子メール
プロセスからの電子メールの送信には、電子メールのカスタムタスクが使用されます。これには、関連する電子メールボディーが含まれます。

電子メールのカスタムタスクがアクティブになると、電子メールデータがタスクのデータ入力プロパティーに割り当てられます。関連する電子メールが送信されると、電子メールのカスタムタスクを完了します。
Properties パネルで Assignments をクリックし、Email Data I/O ウィンドウを開きます。Email Data I/O ウィンドウで、必要に応じてデータ入力を設定できます。たとえば、電子メールカスタムタスクを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- Body: 電子メールのボディー
- From: 送信者の電子メールアドレス。
- Subject: 電子メールの件名。
- To: 受信者の電子メールアドレス。セミコロン (;) で区切られた複数の電子メールアドレスを指定できます。
-
Template (任意): 電子メールのボディーを生成するテンプレート。
Template
属性は、入力した場合にはBody
パラメーターをオーバーライドします。 - Reply-To: 返信メッセージの送信先となる電子メールアドレス。
- Cc: カーボンコピーの受信者の電子メールアドレス。セミコロン (;) で区切られた複数の電子メールアドレスを指定できます。
- Bcc: ブラインドカーボンコピーの受信者の電子メールアドレス。セミコロン (;) で区切られた複数の電子メールアドレスを指定できます。
- Attachments: 電子メールと共に送信する添付ファイル。
- Debug: デバッグロギングを有効にするフラグ。
ログ
ログカスタムタスクは、プロセスからメッセージをログに記録する際に使用されます。ビジネスプロセスがログカスタムタスクに到達すると、メッセージデータがデータ入力プロパティーに割り当てられます。

関連付けられたメッセージがログに記録されると、ログカスタムタスクを完了します。Properties パネルで Assignments をクリックし、Log Data I/O ウィンドウを開きます。Log Data I/O ウィンドウで、必要に応じてデータ入力を設定できます。たとえば、ログカスタムタスクを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- Message: プロセスからのログメッセージ。
WebService
プロセスから Web サービスを呼び出すために使用される Web サービスのカスタムタスク。このカスタムタスクは、文字列として保存された Web サービス応答を使用して Web サービスクライアントとして機能します。

プロセスから Web サービスを呼び出すには、正しいタスクタイプを使用する必要があります。Properties パネルで Assignments をクリックし、WS Data I/O ウィンドウを開きます。WS Data I/O ウィンドウで、必要に応じてデータ入力と出力を設定できます。たとえば、Web サービスタスクを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- Endpoint: 呼び出す Web サービスのエンドポイントの場所。
-
Interface:
Weather
などのサービスの名前。 -
Mode:
SYNC
、ASYNC
、またはONEWAY
などのサービスのモード。 -
Namespace: Web サービスの名前空間 (例:
http://ws.cdyne.com/WeatherWS/
)。 - Operation: 呼び出し用のメソッド名。
- Parameter: 操作に送信するオブジェクトまたは配列。
-
Url: Web サービスの URL (
http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
など)。
以下のデータの出力を Data Outputs and Assignments に追加し、タスク実行の出力を保存できます。
- Result: Web サービスタスクの出力変数 (オブジェクトタイプ)。
マイルストーン
マイルストーンは、プロセスインスタンス内の 1 つの達成地点を表します。マイルストーンを使用して、特定のイベントにフラグを付けて他のタスクをトリガーするか、プロセスの進捗を追跡できます。

マイルストーンは、重要業績評価指標 (KPI) の追跡や、完了前のタスクの特定に役立ちます。マイルストーンは、プロセスのステージの最後に発生したり、他のマイルストーンを達成した結果として発生したりする場合もあります。
マイルストーンは、プロセスの実行中に以下の状態に到達できます。
-
Active
: マイルストーンの条件がマイルストーンノードに対して定義されているが、条件がまだ満たされていない。 -
Completed
: マイルストーンの条件が満たされ (該当する場合)、マイルストーンが達成されたため、このプロセスは次のタスクに進むか、または終了することができる。
Properties パネルで Assignments をクリックし、Milestone Data I/O ウィンドウを開きます。Milestone Data I/O ウィンドウで、必要に応じてデータ入力を設定できます。たとえば、マイルストーンを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- Condition: マイルストーンが満たす条件。たとえば、プロセス変数を使用する Java 式 (文字列データタイプ) を入力します。
DecisionTask
デシジョンタスクを使用して、DMN ダイアグラムを実行し、プロセスからデシジョンエンジンサービスを呼び出します。デフォルトでは、デシジョンタスクは DMN デシジョンにマッピングします。

デシジョンタスクを使用して、プロセスで運用上の意思決定を行うことができます。デシジョンタスクは、プロセスにおいて下す必要のある主要なデシジョンを特定する際に役立ちます。
Properties パネルで Assignments をクリックし、Decision Task Data I/O ウィンドウを開きます。Decision Task Data I/O ウィンドウで、必要に応じてデータ入力を設定できます。たとえば、デシジョンタスクを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- Decision: プロセスで下すデシジョン。
- Language: デシジョンタスクの言語。デフォルトは DMN です。
- Model: DMN モデル名。
- Namespace: DMN モデルの名前空間。
BusinessRuleTask
ビジネスルールタスクを使用して、DRL ルールを評価し、プロセスからデシジョンエンジンサービスを呼び出します。デフォルトでは、ビジネスルールタスクは DRL ルールにマッピングします。

ビジネスルールタスクを使用して、ビジネスプロセスで主要なビジネスルールを評価できます。Properties パネルで Assignments をクリックし、Business Rule Task Data I/O ウィンドウを開きます。Business Rule Task Data I/O ウィンドウで、必要に応じてデータ入力を設定できます。たとえば、ビジネスルールタスクを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- KieSessionName: KIE セッションの名前。
- KieSessionType: KIE セッションのタイプ。
- Language: ビジネスルールタスクの言語。デフォルトは DRL です。
KafkaPublishMessages
Kafka ワークアイテムは、イベントを Kafka トピックに送信するために使用されます。このカスタムタスクには、Kafka プロデューサーを使用して特定の Kafka サーバートピックにメッセージを送信するワークアイテムハンドラーが含まれます。たとえば、KafkaPublishMessages
タスクは、プロセスから Kafka トピックにメッセージを公開します。

Properties パネルで Assignments をクリックし、KafkaPublishMessages Data I/O ウィンドウを開きます。KafkaPublishMessages Data I/O ウィンドウで、必要に応じてデータ入力と出力を設定できます。たとえば、Kafka のワークアイテムを実行するには、Data Inputs and Assignments フィールドで以下のデータ入力を実行します。
- Key: 送信される Kafka メッセージのキー。
- Topic: Kafka トピックの名前。
- Value: 送信される Kafka メッセージの値
以下のデータの出力を Data Outputs and Assignments に追加し、ワークアイテム実行の出力を保存できます。
- Result: ワークアイテムの出力変数 (文字列タイプ)。
ビジネスプロセスでの KafkaPublishMessages
の詳細は Red Hat Process Automation Manager と Red Hat AMQ Streams の統合 を参照してください。