4.3. ルールのアクティべーショングループ
アクティベーショングループは、同じ activation-group ルールの属性によってバインドされている一連のルールです。このグループでは、実行できるルールは 1 つだけです。実行するそのグループのルールの条件が一致すると、そのアクティベーショングループで保留となっているその他のすべてのルール実行がアジェンダから削除されます。
たとえば、以下の DRL ルールのサンプルは、指定されたアクティベーショングループに属し、以下に示す順序でデシジョンエンジンのスタックにリスト化されています。
銀行取引における DRL ルールのサンプル
rule "Print balance for AccountPeriod1"
activation-group "report"
when
ap : AccountPeriod1()
acc : Account()
then
System.out.println( acc.accountNo +
" : " + acc.balance );
end
rule "Print balance for AccountPeriod2"
activation-group "report"
when
ap : AccountPeriod2()
acc : Account()
then
System.out.println( acc.accountNo +
" : " + acc.balance );
end
この例では、"report" アクティベーショングループの最初のルールが実行すると、グループの 2 番目のルールとアジェンダにある実行可能なその他のルールがすべてアジェンダから削除されます。