2012-03-07 2 views
1

私は今いつかilog jrulesを試しています。特にルールをオーバーライドする機能に興味がありますが、純粋なIRLでヒーローを作成し、ルールをプログラマチックにオーバーライドする方法があります。私は、ルール・スタジオをIRLに書くのではなく、ルール・オーバーライドに使用したいと考えています。ilog jrulesルールスタジオでルールオーバーライド

ルールスタジオのルールプロパティウィンドウには、オーバーライドするルールを指定するオプションがありますが、ルールの優先決定に使用する条件を指定する場所がありません。

誰もがこれにいくつかの光を投げることができますか?ルールを上書きするための条件はどこに追加しますか?それともIRLのプログラム的な方法でそれをやらなければならないのですか?

答えて

1

ルールは、実行時に同じルールタスクでこれらのルールが選択されている場合、1つ以上の他のルールを上書きできます。

あなたが忠誠プログラムで金の状態に達している場合は、あなたが& B. Aはあなたの一般的な割引を許可するルールを2つのルールがあるとしましょう:

ルールA:

if 
    the status of 'the customer' is gold 
then 
    add a 4% discount, reason: "Gold membership" 

ルールB:

ルールBは5%の割引とドイツの市場のために、このルールをオーバーライドする必要があります

if 
    the status of 'the customer' is gold 
    and the home country of 'the customer' is Germany 
then 
    add a 5% discount, reason: "German loyalty program: gold status" 

ルールBのプロパティは、ルールAをオーバーライドするように指定する必要があります(プロパティ:オーバーライドされたルール:[ルールA])。両方のルールを実行できる場合は、「ルールのオーバーライド」プロパティのためにルールBのみが選択されます。ルールAはオーバーライドされます。つまり、両方のルールが実行時に同じルールタスクで選択されます。私は上記のケースでルールを上書きしなかった場合の詳細については

その国ドイツで同じ顧客のために、と仮定し、ちょうど私の明確化のためthe documentation

+0

を見て、二つの規則が適用される、すなわち:4%割引(ルールA)と5%割引(ルールB)。そうですか? – cherit

+0

正確です。必要な結果を得るには他にも方法がありますが、複数の部署、異なる権限を持つユーザーなどがある場合は、上書きするのが気の利いた方法です。 – sdfx

関連する問題