在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 :(得分:0)
您应该将每一行作为事实文章,其中包含字段store
,projectCode
,country
,articleNumber
。你的规则是
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