Page tree

ルール セット内の例外を処理するには、以下の 2 つの方法があります。

  1. 結果例外イベント — アクションで結果の例外イベントに直接接続されるルールを作成します。

この方法の利点は、アクションに至る完全なルール例外チェーンを使用できること、およびその結果として、例外処理の一部として問題に関するより多くの情報を報告できることです。
欠点は、例外を発生させる可能性があるルール セット内に複数のアクションが存在する場合に、多くの重複するルールが使用される可能性があることです。

  1. ルート例外イベント — ルート例外イベントをルール セットに追加してルールを接続します。

この方法の利点は、ルール チェーン内の例外が発生した場所に関係なく、例外が取得および報告されることです。
欠点は、例外に至るまでのコンテキストが使用できなくなることです。 報告に使用できるのは、例外の発生元のルールの名前および例外に関連するメッセージのみです。
通常は両方を組み合わせた方法が最も効果的です。 詳細なコンテキスト情報が必要な場合は結果イベント例外ハンドラを実装しますが、他のすべての例外に対してはルート イベント ハンドラを提供します。
Prinergy 6 より前には、両方の例外ハンドラが実装された場合、両方のハンドラが実行されていました。 結果イベント例外ハンドラ ルール チェーンが実行され、その後でルール イベント 例外ハンドラ ルール チェーンが実行されます。 この結果、エラーが重複して報告されることがありました。 Prinergy 6 では、例外処理の動作が変更されています。 現在は、アクションで結果イベント例外ハンドラが実装されていない場合のみ、ルート イベント例外ハンドラが実行されます。 ユーザーが以前の動作を再現できるようにするために、例外の送信アクションが追加されており、結果イベント例外ハンドラからルート例外イベント ハンドラに例外を伝達することができます。
注: Prinergy 6.1.1 では、バグ PRINERGY-34294 のために例外の送信アクションは正常に動作しません。 ルール セットに設定しようとすると、ルール ビルダがクラッシュします。

  • No labels