2017-08-03 4 views
1

各条件のリストとして入力と一致するように、条件付きルールを作成します。Droolsの:私は</p> <p>1)入力リストである場合、一致する条件付きルールを作成するにはどうすればよいの順列及び組合せのDroolsで

2)各条件欄の意志が独自のリストを持ってい

3)私の決定テーブルが形式の下である場合の条件は、すべての条件のリスト

の順列と組み合わせに一致する必要があり

------------------------------------------------ 
COND. | CONDITION | CONDITION| ACTION 
------------------------------------------------ 
Store | ProjectCode | Country | ArticleNumber 
------------------------------------------------ 
10 | 1001  | USA | AD112 
20 | 1002  | UK  | AD113 
30 | 1003  | USA | AD114 
40 | 1004  | SWE | AD112 
50 | 1005  | GER | AD114 

以下のようなリスト形式の条件があります。

ArticleRule{ 
List<String> stores = Arrays.asList("10","30","40","50"); 
List<String> projectCodes = Arrays.asList("1001","1002","1004","1005"); 
List<String> countries = Arrays.asList("USA","GER","UK"); 
} 

私の結果は、すべてのリストの順列と組み合わせを作成することになります。 出力:(AD112、AD114)

実際の使用では、各リストに1000個の値が入っている可能性があります。 私の意思決定表には100万件の記録があります。

どのようにしてdroolsを使用して達成できますか?

答えて

0

各行は、フィールドがstoreprojectCodecountryarticleNumberのファクトアーティクルとして存在する必要があります。あなたのルールは

rule select 
when 
    $article: Article(
     store in ("10","30","40","50"), 
     projectCode in ("1001","1002","1004","1005"), 
     country in ("USA","GER","UK")) 
then 
    System.out.println($article.getArticleNumber); 
end 
です
関連する問題