2017-07-06 6 views
2

条件に基づいて保険商品の価格を計算するルールを作成しようとしています。 'when'では、ポリシーホルダ以外のドライバの詳細を含むAdditionalDriverというオブジェクトを使用しています。これから、追加の運転手が親、友人、配偶者などであるかどうかに基づいて異なる価格を計算することができます。下記を参照してください。Drools - 空のオブジェクトでルールを実行する

このルールは、追加のドライバが追加された場合に機能します。ただし、追加のドライバがない場合、オブジェクトは空であり、ルールは実行されません。このルールを実行するには、オブジェクトが空であっても何をする必要がありますか?

ありがとうございます。

+0

「空のオブジェクト」とは何ですか?クラスコード、コンストラクタ、初期化によって定義されたフィールドを持つオブジェクトが存在するか、存在しないか存在しません。 – laune

+0

あなたの質問launeに感謝します。私は、それが存在しないということを意味すると思います。ルールによっては発動しないため、問題が発生するのは後者です。 – ASnape

答えて

0

あなたは相対的または知人のクラスごとに1つのルール記述する必要があります:要求されていない追加のドライバについては

when 
    PolicyHolder($phid: id) 
    AdditionalDriver(relationToProposer == "P", belongsTo == $phid) 
then 
    //prices 
end 

を、ルールを記述

when 
    PolicyHolder($phid: id) 
    not AdditionalDriver(belongsTo == $phid) 
then 
    // cheaper prices 
end 

は、あなたの中に条件文を使用しないでください事実をさらに区別するための結果。これはコードの匂いです。

関連する問題