2017-04-13 11 views
0

ドールズではwhenthenです。条件が満たされた場合、thenの条件に進み、obj.setStatus("transaction success", "review required")のようなステータスを更新します。"when"条件がdroolsで失敗したときのステータスの挿入または更新方法は?

ただし、whenの条件が満たされていない場合は、obj.setStatus("transaction Failed", "review not required")を更新します。

Droolsではこれがどのように可能ですか?

答えて

1

最も良い方法は、obj.statusを "failed"に初期化することです。すべてのルールが終了した後も、このステータスまたは更新されたステータスに「成功」​​が表示されます。単一のルールありません

rule "catch failures" 
salience -999999 
when 
    $obj: MyFact(status == null) // no initial value 
then 
    modify($obj){ setStatus("transaction Failed", "review not required") } 
end 
0

:あなたはルールの発火が必要な場合は

は、あなたが変更されていない事実を引くルールを記述することができます。私たちがそれを好きなら、ルールのサイズは大きくなります。

//FailureMessage :- Equipment breakdown coverage size is greater than 0 

ルール "CPP_ReviewLossControl" ルールフローグループ "CPPReview" ロックオンアクティブ $ commPolicy:CommlPolicyInfoBean(); $ STPRulesResponseBean:STPRulesResponseBean();$ lobInfo:$ commPolicy.getLobs();からLOBInfoBean( "CPP" .equalsIgnoreCase(lob)& & losses.size()> = 3); then System.out.println( "AMRの損失履歴タスクの作成"); $ STPRulesResponseBean.getResultMap()。put( "CPP_ORD_LOSS_CNTRL"、true); エンド

// FailureMessage: - ビジネスカテゴリは一般的なフレーミング、ウィンドウまたはウィンドウフレーミング、漆喰および/または石工/乾式壁の請負業者を含むEIFSのアプリケーションである必要があり、屋根、外壁サイディング/水校正/カシメ、その他の外装仕上げ作業。

ルール "CPP_ReviewBusinessCategory" ルールフローグループ "CPPReview" ロックオンアクティブ $ STPRulesResponseBean:STPRulesResponseBean(); $ commlPolicyInfoBean:CommlPolicyInfoBean();$ lobInfo:$ commlPolicyInfoBean.getLobs()のLOBInfoBean( "CPP" .equalsIgnoreCase(lob)); AccountInfoBean)($ commlPolicyInfoBean.getAccountInfoから(businessCategoryCodeが== "23" & &(primaryActivitiesが含まれています( "23813")|| primaryActivitiesが含まれています( "23831")|| primaryActivities)が "23816" が含まれる)、その後 のSystem.out .println( "ビジネスカテゴリの作成"); $ STPRulesResponseBean.getResultMap()。put( "CPP_REV_SPL_RISK"、true); end

と設定されています。

関連する問題