我使用以下规则来获取两个收集列表。
rule "base"
when
$priceLineItem : PriceLineItem( $grade : grade , $style : style ,$prefix : prefix , basePrice == null )
then
end
rule "check-multiple instance-on-cover-type" extends "base"
when
accumulate (
$basePriceUpchargeConfig : BasePriceUpchargeConfig(
prefix contains $prefix,
style contains $style,
$baseCoverType : baseCoverType
)
and
$c : CoverUpChargeConfig(
baseCoverType contains $baseCoverType.get(0),
gradeOrder contains $grade,
prefix contains $prefix,
style contains $style
);
$collectList : collectList($c) )
accumulate (
$basePriceUpchargeConfig : BasePriceUpchargeConfig(
prefix contains $prefix,
style contains $style,
$baseCoverType : baseCoverType
)
and
$c : CoverUpChargeConfig(
baseCoverType contains $baseCoverType.get(0),
gradeOrder contains $grade,
prefix contains $prefix,
style contains $style
);
$collectList1 : collectList($basePriceUpchargeConfig) )
then
System.out.println($collectList);
System.out.println($collectList1);
end
我想要CoverUpChargeConfig和BasePriceUpchargeConfig对象的列表。
对于每个BasePriceUpchargeConfig;会有多个或恰好一个CoverUpChargeConfig对象。如果两个对象之间只有一对一的话;我想在规则的这一部分中使用它。
如果BasePriceUpchargeConfig中有一对多匹配 - > CoverUpChargeConfig;我想知道CoverUpChargeConfig对象的数量。
我能够以上述方式获得它,但我正在使用两个累积。
请帮忙。 感谢
答案 0 :(得分:1)
你可以在相同的累积CE中收集两个列表 - 我没有看到配对BasePriceUpchargeConfig和CoverUpChargeConfig的两个累积有任何差异。
rule "check-multiple instance-on-cover-type" extends "base"
when
accumulate ( $b: BasePriceUpchargeConfig(
prefix contains $prefix,
style contains $style,
$baseCoverType : baseCoverType )
and
$c : CoverUpChargeConfig(
baseCoverType contains $baseCoverType.get(0),
gradeOrder contains $grade,
prefix contains $prefix,
style contains $style );
$collectList1 : collectList($b)
$collectList : collectList($c) )