Написание drl в общем виде

Мое требование заключается в том, что мне нужно считать запросы на заказ от одного и того же клиента, не задавая жестко прописанные значения правила в правиле. Причина в том, что если у меня 1000 клиентов, мне нужно написать 1000 правил для них. Чтобы избежать этого, мне нужен универсальный способ обработки всех объектов клиента.

например, есть четыре объекта запроса заказа от customerA и customerB. Мое правило должно иметь возможность вычислять количество запросов от отдельного клиента, а также мне нужно хранить эти объекты.

В основном мне нужна группа sql эквивалентным методом в drools.

Пожалуйста, предоставьте указатели

1 ответ

Вы пробовали что-то подобное?

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

Это правило будет действовать даже для Клиентов без запроса OrderRequest. Если это не то, что вы ищете, то вы должны добавить ограничение на intValue в $n:

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

Надеюсь, поможет,

Другие вопросы по тегам