2016-12-22 3 views
1

私はEasyRulesと仕事をしようとしています。ルールは、優先順位に基づいて簡単なルールで排他的ではないのですか?

私は3つのルールA、B & Cを優先度1、2 & 3で作成しました。

ルールに評価され、最も高い優先度を有している場合でも、優先度の低い(すなわち、B & C)とのルールが評価されています。

このルールの優先順位はどのように機能しますか?

より高い優先度のルールがtrueと評価された場合、低い優先度のルールは評価されません。

答えて

1

優先度はルールが実行されるかどうかとは関係ありません。それはdocumentationからルール

の唯一の実行順序を示します。

簡単ルールの各ルールが優先されます。これは、登録されたルールが発効するデフォルトの の順序を表します。デフォルトでは、低い値の が優先順位が高くなります。

また、読むことができます:

複合ルールがトリガされ、その構成ルール のすべての条件が満たされた場合。複合ルールが適用されると、ルールを構成するすべての のアクションは、デフォルトのルール優先度である のルールの自然な順序で実行されます。

あなたはエンジンにしたい場合は、ルールが適用されたとき、あなたはtrueskipOnFirstAppliedRuleパラメータでエンジンをPARAMする必要があり、次のルールをスキップします。

あなたのケースでは、Aルールのみが実行されます。

+0

ありがとうございました。これで多くのことがクリアされました。つまり、優先度と '.withSkipOnFirstAppliedRule(true)'の組み合わせを使用して、目的の動作を達成する必要があります。 – amitection

+0

あなたは歓迎です:)私はそう思います。 – davidxxx

関連する問題