Слюни LHS проверить на необязательный факт
Мне нужно написать правило в Drools 6.5, которое проверяет наличие события типа A. Есть второй класс с именем B, который имеет поле date
,
При проверке на наличие события A
если хотя бы одно событие типа B
существует, A
должно произойти после последней B.date
для того, чтобы правило сработало; в противном случае правило должно срабатывать независимо от любого B
События.
Оба типа событий A
а также B
имеют свое собственное явное поле метки времени.
when
// TODO if at least one event of type B exists, A must happen after max(b.date). Otherwise, the rule must fire regardless of any B
$a : A( ... )
then
...
Как мне выполнить эту проверку?
РЕДАКТИРОВАТЬ: если нет B
присутствует в рабочей памяти, и A
соответствует требованиям, правило должно действовать независимо.
1 ответ
Это сработает для каждого А, удовлетворяющего временному ограничению, которое должно произойти после всех B.
$b: B()
not B(this after $b)
$a : A( this after $b )
Если вы хотите запустить это только один раз, для любого числа As, используйте exists
перед A
и опустите привязку.