2017-08-03 47 views
1

在Drools中如何创建一个条件规则匹配,如果Drools的:创建一个条件规则来匹配输入的列表与排列组合

1)输入列表中的每个条件。

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个值。 而我的决策表可以有一百万条记录。

我该如何实现使用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 
相关问题