0

私はilogで作業しており、5つのルールがあると言うデシジョンテーブルを持っています。条件として名前と年齢 (ダミーデータ) という入力フィールドがあり、それに関連するアクション部分があります。条件値をnullとして入力を渡すと、例外を処理してfalseを返した例外ハンドラが呼び出されます。しかし、問題は、最初の行で例外が発生した場合、例外をスローし、プログラムが直接最終アクションに到達する必要があることですが、私の場合、5 つのルールすべてが実行され、テーブル内の行数に等しい例外の 5 つの値を取得しています。

public boolean handleexception(IRLruntimeexception ex)
{
    errorcode=ex.getmessage();
    return false;
}

エラー コードの値が 5 回表示されますが、これは正しくありません

4

2 に答える 2

0

これはおそらく、アクションを実行する前にRetePlus アルゴリズムがすべての条件に一致するためです。

ruletask のアルゴリズムをシーケンシャルに変更してみてください。

于 2014-09-23T13:46:33.443 に答える
0

デシジョンテーブルの各行は実際には独立したルールであるため、ルールごとに例外ハンドラーが呼び出されます。各ルールの条件は、提供されたデータに対して評価されます。

他の言語でのプログラミングと同じようにルール プログラミングに取り組み、データをルールに渡す前にデータを検証/null 値をチェックする必要があります。たとえば、ルールフローまたは初期ア​​クションの最初のタスクは、null または無効なデータをチェックします。データが null チェックに合格すると、ルールフロー内の他のタスクが呼び出されます。

ルールへの入力データの null 値を処理する方法に関するその他の推奨事項については、ルール内の null 値の確認に関するドキュメントを参照してください。

于 2015-04-10T01:03:33.253 に答える