Ho bisogno di un piccolo aiuto con Drools eval e assegnazione variabile.Drools recupera i dati dal database in fase di esecuzione
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
In questa regola provo ad accedere al repository e ottenere richieste attive per l'utente corrente. La regola viene compilata ed eseguita senza eccezioni o avvisi. In modalità debug si può vedere che il repository restituisce un elenco non vuoto e mi aspetto di vedere il messaggio di console 'You have active request' ma questo non accade. Credo che il problema è in questa linea
$activeRequests : List() from $repository.findActiveRequestsByEmployee($user.getValue())
perché questa regola funziona bene
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
Così qualcuno potrebbe indicare come risolvere questo problema?
Grazie!