Potrzebuję niewielkiej pomocy przy przypisywaniu Drools i zmiennych.Drools uzyskują fakty z bazy danych w środowisku wykonawczym
rule "check that no previously submitted requests exist"
when
$user : UserFormField(name == 'employeeId', value != null)
$repository : Repository()
$activeRequests : List() from $repository.findActiveRequestsByEmployee($user.getValue()) # call to repository
eval($activeRequests.size() > 0)
then
System.err.println(' You have active requests: ' + ((Request)$activeRequests.get(0)).getTitle);
insert(Boolean.TRUE);
end
W tej regule próbuję uzyskać dostęp do repozytorium i otrzymywać aktywne żądania dla bieżącego użytkownika. Reguła kompiluje i wykonuje bez żadnych wyjątków ani ostrzeżeń. W trybie debugowania można zauważyć, że repozytorium zwraca niepustą listę i oczekuję komunikatu konsoli "Masz aktywne żądania", ale tak się nie stanie. Myślę, że problem jest w tym wierszu
$activeRequests : List() from $repository.findActiveRequestsByEmployee($user.getValue())
ponieważ zasada ta działa dobrze
rule "check that no previously submitted requests exist"
when
$user : UserFormField(name == 'employeeId', value != null)
$repository : Repository()
eval($repository.findActiveRequestsByEmployee($user.getValue()).size() > 0)
then
System.err.println(' You have active requests !');
insert(Boolean.TRUE);
end
Więc może ktoś wskazać mi, jak rozwiązać ten problem?
Dzięki!