如何跟踪流口水中的多个匹配项
How to keep track of multiple matches in drools
我的规则会针对与我的产品代码匹配的产品触发多次。我如何获得所有已匹配的产品?我知道我可以使用全局和集合,但是还有其他方法吗?
global Set set
rule "match multiple products"
when $prod: Product(code=='PRD-MERCH') from productList
then
System.out.println('Matched Products');
set.add($prod);
end
首先,让我告诉你,你正在使用的 from productList
看起来很可疑。 productList
是全局的吗?
现在,回到你的问题,如果你对所有匹配的 Product
事实感兴趣,你可以使用 collect
模式:
rule "match multiple products"
when
$prods: List(size > 0) from collect (
Product(code=='PRD-MERCH') from productList
)
then
System.out.println("Matched Products"+ $prods);
end
希望对您有所帮助,
我的规则会针对与我的产品代码匹配的产品触发多次。我如何获得所有已匹配的产品?我知道我可以使用全局和集合,但是还有其他方法吗?
global Set set
rule "match multiple products"
when $prod: Product(code=='PRD-MERCH') from productList
then
System.out.println('Matched Products');
set.add($prod);
end
首先,让我告诉你,你正在使用的 from productList
看起来很可疑。 productList
是全局的吗?
现在,回到你的问题,如果你对所有匹配的 Product
事实感兴趣,你可以使用 collect
模式:
rule "match multiple products"
when
$prods: List(size > 0) from collect (
Product(code=='PRD-MERCH') from productList
)
then
System.out.println("Matched Products"+ $prods);
end
希望对您有所帮助,