5.7. ロジックフローのエラーハンドリング¶
この章では、ロジックフローにおいてエラーハンドリングを行う方法を説明します。
5.7.1. ロジックフローのエラーハンドリングとは¶
- エレメントでエラーが発生した場合、以降の処理を継続するかを決定する(エラー発生時のハンドリング)。
- 自身より前に処理が行われたエレメントのエラー状況をもとに、自身の振る舞いを制御する(エラー発生後のハンドリング)。
- エラー発生時のハンドリング - エレメントに対するエラーハンドリングの設定方法。
- エラー発生後のハンドリング - 受け取ったエラー状況(IM-LogicDesignerではこれを処理結果情報と呼びます)をもとに振る舞いを変更する方法。
5.7.2. エラーハンドリングの設定、および、動作確認¶
- 処理を継続する
- フロー全体のエラーとして処理を中断する
コラム
エラー処理フローによるエラーハンドリング
5.7.2.1. フローの準備¶
- 「サイトマップ」→「LogicDesigner」→「フロー定義一覧」から、ロジックフロー定義一覧を開きます。ロジックフロー定義一覧画面左上の「ロジックフロー新規作成」をクリックします。
「ユーザプロファイルの取得」タスク(IM共通マスタ)をフロー編集画面に追加し、以下のエレメント間に線を引きます。
ロジックフローを以下のとおりに保存します。
コラム
今回準備したフローについて
5.7.2.2. デフォルトの動作を確認する¶
ロジックフロー定義編集画面上部、ヘッダ内の「デバッグ」をクリックし、デバッグ画面を表示します。
デバッグ画面上部、ヘッダ内の「実行」をクリックし、デバッグ実行を行います。
「ユーザプロファイルの取得」タスク実行時にエラーが発生し、ロジックフローが異常終了することを確認してください。
5.7.2.3. エラーハンドリングの設定を行う¶
デバッグ画面を開いている場合は、デバッグ画面を閉じます。
「ユーザプロファイルの取得」タスクをクリックし、プロパティ画面を表示します。
タスク固有設定の項目を以下のとおりに変更します。
ロジックフローを保存します。
5.7.2.4. エラーハンドリング設定後の動作を確認する。¶
ロジックフロー定義編集画面上部、ヘッダ内の「デバッグ」をクリックし、デバッグ画面を表示します。
デバッグ画面上部、ヘッダ内の「実行」をクリックし、デバッグ実行を行います。
「ユーザプロファイルの取得」タスク実行時にエラーが発生しますが、ロジックフローが「正常に終了」したことを確認してください。
注意
エラー発生後の動作について
5.7.3. 処理結果情報の利用方法、および、動作確認¶
5.7.3.1. 処理結果情報の詳細¶
プロパティ名 詳細 error<boolean> エレメントの処理がエラーだった場合trueが指定されます。エレメントの処理が正常に終了した場合はfalseが指定されます。errorMessage<string> エラー発生時のエラーメッセージが指定されます。エレメントの処理が正常に終了した場合はnullが指定されます。errorReport<string> エラー発生時のエラー詳細が指定されます。エラー詳細に含まれる情報以下の通りです。
エラー発生日時 エラーメッセージ エレメントの実行ID スレッドID リクエストID 実行ユーザ 呼び出しURL フロー呼び出しパラメータ タスク実行時パラメータ 例外スタックトレース※エラー発生箇所により値が取得できない項目は nullが設定されます。executeId<string> この処理結果情報が紐づくエレメントの実行IDが指定されます。stackTrace<string> エラー発生時の例外スタックトレースが指定されます。
5.7.3.2. エラー発生後のハンドリングを行うフローの作成¶
新しくロジックフローの入力として、ユーザコードを受け取る。
「ユーザプロファイルの取得」タスクは、入力のユーザコードを利用してユーザプロファイルを取得する。
- 「ユーザプロファイルの取得」タスクの処理結果に応じて以下のように振る舞うフローを定義する。
- 正常に処理出来た場合は、取得結果からユーザ名を「ログ出力」タスクを利用して出力する。
- 処理がエラーとなった場合は、処理がエラーになった旨を「ログ出力」タスクを利用して出力する。
ロジックフロー定義編集画面上部、ヘッダ内の「入出力設定」をクリックし、入出力設定画面を開きます。
入力に以下のパラメータを定義します。
「ユーザプロファイルの取得」タスクをクリックした上で、「マッピング設定」をクリックし、マッピング設定画面を開きます。
マッピング設定を以下のとおりに設定します。
以下のエレメントをフロー編集画面上に追加します。
追加したエレメント、および、既存のフローについて 以下のエレメント間に線を引きます。
「分岐」制御要素をクリックし、プロパティのタスク固有設定の項目を以下のとおりに変更します。
「ログ出力」タスク(エラー発生時用)をクリックした上で、「マッピング設定」をクリックし、マッピング設定画面を開きます。
マッピング設定を以下のとおりに設定します。
「ログ出力」タスク(正常処理用)をクリックした上で、「マッピング設定」をクリックし、マッピング設定画面を開きます。
マッピング設定を以下のとおりに設定します。
ロジックフローを保存します。
5.7.3.3. エラー発生後のハンドリングを行うフローの動作確認¶
ロジックフロー定義編集画面上部、ヘッダ内の「デバッグ」をクリックし、デバッグ画面を表示します。
デバッグ画面上部、ヘッダ内の「実行」をクリックします。
デバッグ実行の入力値として以下を定義し、実行します。
実行結果として以下を確認してください。
- ロジックフローがエラーを発生せずに正常終了していること。
- 「ログ出力」タスクからサーバのコンソールに「青柳辰巳」が出力されていること。
デバッグ画面上部、ヘッダ内の「実行」をクリックします。
デバッグ実行の入力値として以下を定義し、実行します。
実行結果として以下を確認してください。
- ロジックフローはエラーが発生しているが、正常に終了していること。
- 「ログ出力」タスクからサーバのコンソールに「[E.IWP.LOGIC.IMMASTER.00003] ユーザコードが指定されていません。」というエラーメッセージが出力されていること。