4.3.9.1. イベントサブプロセスを利用して実行中のプロセスを変更する¶
- ロジックフロー
- Formaアプリケーション
コラム
コラム
- ロジックフロー: 「IM-LogicDesigner ユーザ操作ガイド」-「インポート/エクスポート」
- 「IM-FormaDesigner」で作成したアプリケーション : 「IM-FormaDesigner 作成者操作ガイド」-「インポート・エクスポートを利用した IM-FormaDesigner のアプリケーションやデータソース定義の移行」
コラム
4.3.9.1.1. プロセス定義を作成する¶
- 「メインの業務プロセス」を作成します。「プール」を設置します。
- 「通常のプロセス」を作成します。「開始イベント」を設置します。
- 通常のプロセスで処理をする「ユーザタスク」を設置します。
- 「ユーザタスク」の処理対象ユーザを設定します。「メインコンフィグ」タブから、「ユーザタスク」の処理対象ユーザを「aoyagi」にします。図: 「メインの業務プロセス」 - 「通常のプロセス」 - 「プロパティ」 - 「メインコンフィグ」
- 終了イベントを設置します。
- 「メインの業務プロセス」に「メッセージを受信した場合のプロセス」レーンを追加します。「通常のプロセス」レーンをクリックした状態でポップアップされる「」をクリックしてください。図: 「メインの業務プロセス」 - 「通常のプロセス」
- 新しく作成されたレーンに「イベントサブプロセス」を設置します。
- 「イベントサブプロセス」を実行する「メッセージ開始イベント」を設置します。
- 「メッセージ開始イベント」に対して送信する「メッセージ」を設定します。エレメントが設置されていないキャンパスの空白部分をクリックし、「プロパティ」をプロセス全体に切り替えます。「メッセージ&シグナル」タブの「メッセージ」の「追加」リンクをクリックします。図: プロセス全体 - 「プロパティ」 - 「メッセージ&シグナル」
- 「メッセージ」ダイアログから以下のように登録してください。
- ID : message
- 名前 : message
図: 「メッセージ」 - プロセス全体に登録した「メッセージ」を「メッセージ開始イベント」に紐づけます。「メッセージ開始イベント」をクリックし、「メインコンフィグ」タブの「参照メッセージ」から行います。ドロップダウンリストで「 message(ID:message) 」を選択します。図: 「メインの業務プロセス」 - 「メッセージを受信した場合のプロセス」 - 「イベントサブプロセス」 - 「メッセージ開始イベント」 - 「プロパティ」 - 「メインコンフィグ」
- メッセージを受信した場合に処理するユーザタスク「通常とは異なるタスク」を設置します。
- 処理対象ユーザと、表示するFormaアプリケーションを設定をします。ユーザタスクをクリックし、「メインコンフィグ」タブから以下のように項目を設定してください。
- 処理対象ユーザ : aoyagi
- フォームキー : forma:event_sub_process_usage
図: 「メインの業務プロセス」 - 「メッセージを受信した場合のプロセス」 - 「イベントサブプロセス」 - 「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」 - 表示するFormaアプリケーションを「プロセスを中断しました」に切り替える値を設定します。ユーザタスクをクリックし、「リスナ」タブから「タスクリスナ」の「追加」ボタンをクリックします。図: 「メインの業務プロセス」 - 「メッセージを受信した場合のプロセス」 - 「イベントサブプロセス」 - 「ユーザタスク」 - 「プロパティ」 - 「リスナ」
- 「タスクリスナ」ダイアログから、以下のように項目を設定してください。
処理対象ユーザ : create
タイプ : 式
式 : ${task.setVariableLocal('terminated','1')}
図: 「タスクリスナ」 - 「終了イベント」を設置します。
- 「通常のプロセスを終了させるプロセス」を作成します。「メインの業務プロセス」とは別の場所に、プールを設置します。
- 「通常のプロセスを終了させるプロセス」の処理対象ユーザを設定します。「プロセス」タブから、処理対象ユーザに「aoyagi」を設定します。図: 「通常のプロセスを終了させるプロセス」 - 「プロパティ」 - 「プロセス」
- 「通常のプロセスを終了させるプロセス」の開始イベントを設置します。
- 「通常のプロセスを終了させるプロセス」を開始した際に表示するFormaアプリケーションを設定します。開始イベントをクリックし、「メインコンフィグ」タブから「フォームキー」に「forma:event_sub_process_usage」と設定します。図 : 「通常のプロセスを終了させるプロセス」 - 「メッセージを送信するプロセス」 - 「開始イベント」 - 「プロパティ」 - 「メインコンフィグ」
- 「メッセージ開始イベント」に対してメッセージを送信する「IM-LogicDesignerタスク」を設置します。
- 実行するロジックフローの設定をします。「メインコンフィグ」タブから、項目を以下のように設定します。
フローID : logic_designer-event_sub_process_usage
利用するバージョン : 最新バージョンを利用
図: 「通常のプロセスを中止させるプロセス」 - 「メッセージを送信するプロセス」 - 「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」 - 「IM-LogicDesigner」に対する「入力データ」を設定します。入力データの「追加」リンクをクリックします。図: 「通常のプロセスを中止させるプロセス」 - 「メッセージを送信するプロセス」 - 「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」
- 「入力データ」ダイアログから、3つのデータを登録します以下のように項目を設定してください。
- execution_id
- 名前 : execution_id値 : ${execution_id}
- message
- 名前 : message値 : message
- terminate_reason
- 名前 : terminate_reason値 : ${terminate_reason}図: 「入力データ」
- 「終了イベント」を設置します。
4.3.9.1.2. IM-LogicDesignerのロジックフローを確認する¶
- チュートリアル開始前にインポートしたロジックフローを確認します。「サイトマップ」→「IM-LogicDesigner」→「フロー定義一覧」→「ロジックフロー定義一覧」画面を表示します。
- 左ペインのツリーから「BPMチュートリアル」カテゴリの開閉アイコンをクリックしカテゴリ配下を情報を表示します。フロー定義「メッセージを送信してイベントサブプロセスを起動する」を選択し「編集」をクリックし、「ロジックフロー定義編集」画面を開きます。図 : 「ロジックフロー定義一覧」
- プロセス定義から渡ってくる入力データに対する設定を確認します。メニューバーの「入出力設定」をクリックし、「入出力設定」ダイアログを表示します。図: 「ロジックフロー定義編集」
- 「入出力設定」ダイアログで、「入力」に以下のように設定されていることを確認します。
execution_id<string>
message<string>
terminate_reason<string>
図 : 「入出力設定」 - 「メッセージ送信」タスクのマッピングを確認します。「メッセージ送信」タスクを選択し、基本設定の「マッピング設定」から「マッピング設定」ダイアログを表示します。図 : 「ロジックフロー定義編集」 - 「メッセージ送信」
- 「マッピング設定」ダイアログで、左右で以下の値が登録・マッピングされていることを確認します。
4.3.9.1.3. 実行結果を確認する¶
このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行結果の確認を行います。
- 「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。
- プロセス開始一覧から、「メイン業務のプロセス」の「」アイコンをクリックします。図 : 「プロセス開始一覧」
- 実行したプロセスの状態と、プロセスインスタンスIDを確認します。画面左上の「タスク一覧」をクリックしてください。図 : 「プロセス開始一覧」
注意
「プロセス参照」画面は、「2018 Winter(Urara)」以降のバージョンで参照できます。それ以前のバージョンの場合、「IM-BPM管理者」のロールをもつユーザでログインし、「サイトマップ」→「BPM」→「タスク管理」画面から「プロセス詳細」を表示することで確認できます。 -
プロセス定義名 : メインの業務プロセス
タスク名 : 通常のタスク
図 : 「タスク一覧」 - 「プロセス参照」画面から、実行中のタスクが「通常のタスク」であることを確認し、プロセスインスタンスIDを控えます。図 : 「プロセス参照」
- 実行中のプロセスインスタンスを「通常のタスク」から、「通常とは異なるタスク」へ進行させます。「プロセス開始一覧」画面へ戻り、「通常のプロセスを中止させるプロセス」の「」ボタンをクリックします。図 : 「プロセス開始一覧」
- Formaアプリケーション「中断するプロセスインスタンスを指定する」が表示されます。先ほど控えたプロセスインスタンスIDと任意の理由を記入し、「中断」ボタンをクリックします。図 : 中断するプロセスインスタンスを指定する(IM-FormaDesigner)
-
プロセス定義名 : メインの業務プロセス
タスク名 : 通常とは異なるタスク
図 : 「タスク一覧」 - プロセス図で、イベントサブプロセスの「通常とは異なるタスク」に進行していることを確認します。また、Formaアプリケーションで指定したプロセスインスタンスと同一のIDであることを確認します。図 : 「プロセス参照」
-
図 : 「タスク一覧」
- 「個人タスク」に振り分けられたことを確認し、「」ボタンをクリックします。図 : 「プロセス詳細」
- Formaアプリケーション「プロセスを中断しました」が表示されるので、「確認ボタン」をクリックすることでタスクが完了します。図 : プロセスを中断しました(IM-FormaDesigner)
-
図 : 「プロセス詳細」
- 「プロセス詳細」画面から、「プロセス図とタイムラインを拡大表示」をクリックしてください。図 : 「プロセス詳細」
- 「プロセス図とタイムライン」が拡大表示されたポップアップが表示されます。「通常のタスク」へ進んでいたプロセスが、「通常とは異なるタスク」へ移行して終了していることを確認します。図:「メイン業務のプロセス」