0

私の要件は、ルールで顧客 ID をハードコーディングせずに、同じ顧客からの注文要求をカウントする必要があるということです。その理由は、1000 人の顧客がいる場合、同じものに対して 1000 のルールを作成する必要があるためです。これを回避するには、すべての顧客オブジェクトを処理する一般的な方法が必要です。

たとえば、customerA と customerB からの 4 つの注文リクエスト オブジェクトがあります。私のルールは、個々の顧客からのリクエストの数を把握できるはずであり、それらのオブジェクトを保存する必要もあります。

基本的に私は drools の同等の方法で sql のグループが必要です。

ポインタを提供してください

4

1 に答える 1

0

このようなことを試しましたか?:

rule 'Count Order Requests'
when
    $c: Customer()
    $n: Number() from accumulate( 
        $o: OrderRequest(customer == $c),
        count($o)
    )
then
    //use $n
end

このルールは、OrderRequestがない顧客に対しても実行されます。それがあなたが探しているものではない場合は、$nのintValueに制約を追加する必要があります。

$n: Number(intValue > 0) from accumulate (....)

それが役に立てば幸い、

于 2013-02-20T09:04:26.600 に答える