メインコンテンツまでスキップ

アクションのエラーハンドリング - IM-BloomMaker

IM-BloomMakerアクションでのエラーハンドリングをどのように実装するか、その判断方法と基本的な実装を説明します。

ここでは、マスタメンテナンステンプレートの資材をもとに、実装方法の一例を紹介しています。

ヒント

入力フォームのバリデーション(入力規則の検証)については、入力フォームの検証の記載を参照してください。

説明

  1. ハンドリングしたいエラーの分類が「システムエラー」と「業務ロジックエラー」のどちらかに該当するかを判断する
  • 参考:「エラーの内容」「エラーのレベル」
  1. 「エラーハンドリングの方法」にあるリンク先の記載を参考にして実装する
システムエラー
業務ロジックエラー
エラーの内容
  • 通信エラー
  • インフラ障害
  • アプリケーションエラー
  • カスタムスクリプトのコーディングエラー
  • 業務ルールとの不整合
  • データの不整合
エラーのレベル

ユーザが通常の操作で対処できない致命的なエラー

ユーザが通常の操作で対処できる業務上のエラー

エラーハンドリングの方法

サンプル資材

このページでは、Accel Studioの業務テンプレートにあるマスタメンテナンステンプレートで作成できる資材を例に説明しています。

備考

上記資材の内容を確認するには以下の手順で操作します。

サイトマップAccel Studioアプリケーション作成業務テンプレート一覧の画面で、ベーステンプレートにあるマスタメンテナンスから作成すると、Accel Studioアプリケーション管理アプリケーション一覧自動生成されたアプリケーションに資材が表示されます。

実装イメージ

ヒント
  • 以下のようにすると、どのアクションに対するエラーハンドリング処理なのかを明確にできます。
    • ひとつのアクションに複数のアクションアイテムを設定しないようにする
    • エラーが発生したときで設定するアクションに実行条件を設定する
  • プレビュー環境では、以下のような開発者向けのメッセージが表示されます。
    • アクションでエラーが発生すると、開発者ツールのコンソールには、以下のようにエラーが発生したアクションの情報が表示される
      • アクション名:「登録ボタンが押されたとき」の「アクションが呼ばれたとき」に定義されているアクションの1番目のアクション「カスタムスクリプトを実行する」でエラーが発生しました。
    • システムエラーの場合、アクションの実行に失敗しました。ブラウザのコンソールを確認してください。というエラーダイアログが表示される

定型エラーメッセージを表示する

IM-BloomMakerでは、アクションの実行でシステムエラーが発生すると、アクションエディタのエラーが発生したときに設定されたアクションが実行される仕組みになっています。

サンプル資材においては、エラーが発生したときに設定されたアクションで、多言語変数に定義しているエラーメッセージを表示するようにしています。

以下の手順では、サンプル資材にエラー発生用のカスタムスクリプトを追加することで、エラーが発生したときに設定されたアクションが実行されることを体験するまでの流れを説明しています。

  1. サンプル資材の画面コンテンツから登録・編集・参照画面を開く
  2. アクション一覧で登録ボタンが押されたとき編集する
  3. カスタムスクリプトを実行するアクションが呼ばれたときの先頭に追加する
  • カスタムスクリプトの内容は、例外が発生するようなエラーを書きます。例:throw new Error('test');
  • このエラーが捕捉されると、エラーが発生したときに登録されているアクションが実行されます。
  1. 決定をクリックして、アクションエディタを閉じる
  2. 画面コンテンツを上書き保存して、プレビューを開く
  3. 登録をクリックする
  • エラーが発生したときに登録されているアクションにより、登録処理に失敗しました。というエラーダイアログが表示されます。

ロジックフローのエラーメッセージを表示する

IM-BloomMakerでは、IM-LogicDesignerのフロールーティングへのリクエストでエラーが発生した場合、以下のいずれかのエラーメッセージを取得できる仕組みがあります。

  • (A) エラー終了タスクまでフローが遷移した場合、そのタスクで設定されているエラーメッセージ
  • (B) エラーを送出したタスクによって返却されたエラーメッセージ

サンプル資材においては、IM-BloomMakerでフロールーティングとのデータ受け渡しを担う変数構造のendPointをリンク先の記事のように定義しています。ここではこのように変数定義している前提で説明しています。

以下の手順は、上記 (A) を実装する場合の例です。サンプル資材にフロールーティングからのエラーメッセージを表示するアクションを追加することで、エラーハンドリングの流れを体験できます。

備考

(B) を実装する場合もendPointの変数構造やエラーハンドリングの方法は同一です。IM-LogicDesigner側でエラーメッセージを設定するタスクが異なるだけです。

  1. サンプル資材の画面コンテンツから登録・編集・参照画面を開く
  2. アクション一覧で削除ボタンが押されたとき編集する
  3. メッセージ〇をエラーダイアログで表示するエラーが発生したときに追加する
  4. 決定をクリックして、アクションエディタを閉じる
  5. 画面コンテンツを上書き保存して、プレビューを開く
  6. 主キーに任意の文字を入力して、登録をクリックする
  7. 登録した項目の編集アイコンをクリックして、編集画面を表示する
  8. 別のウィンドウでテナント管理TableMaintenanceテーブル一覧で登録したレコードを削除する
  • テーブル名は、Accel Studioのアプリケーション管理エンティティデータ定義で確認できます。
  1. 編集画面削除をクリックする
  • エラーが発生したときに登録したアクションにより、削除対象が見つかりませんでした。というエラーダイアログが表示されます。

ロジックフローの出力を検証して、定型エラーメッセージを表示する

IM-BloomMakerでは、IM-LogicDesignerのフロールーティングからのレスポンスデータを利用してエラーハンドリングをすることができます。

サンプル資材においては、IM-BloomMakerでフロールーティングとのデータ受け渡しを担う変数構造のendPointをリンク先の記事のように定義しています。ここではこのように変数定義している前提で説明しています。

以下の手順でエラーハンドリングの流れを体験できます。

  1. サンプル資材の画面コンテンツから登録・編集・参照画面を開く
  2. プレビューを開く
  3. 主キーに登録済みの文字(例:00000001)を入力して、登録をクリックする
  • フロールーティングのアクションのあとに登録されているアクションにより、既にレコードが存在しています。というエラーダイアログが表示されます。
  • このエラーダイアログ表示の実行条件には、レスポンスデータの内容を評価する処理が含まれています。