2017-09-08 2 views
0

Je ne reviendrai pas de l'objet de requête Société. Mais IDE société indecate aussi inattendueDrools indecate variable comme inattendu

enter image description here

Quelle est mon erreur:

dialect "java" 

query getBalance(World world, Company company) 
    $company := Company(companyName == "Intel") from world.getCompanies() 
end 

rule "BMWCarsToPerson" 
when 
    $world : World() 

    $company : Company() 

    getBalance($world, $company) 
    /*$company : Company() from $world.getCompanies()*/ 

    $manager : Manager() from $company.getManagers() 
     exists Car(name == BrandOfCar.BMW) from $manager.getCars() 

    $bmwCarsFromManager : Car(
     name == BrandOfCar.BMW 
     ) from $manager.getCars() 

    $person : Person(
     name == "Elvis" 
     ) from $world.getPersons() 

    /*$listMageners : List() from $manager*/ 

then 
end 
+0

Vous n'avez pas besoin 'existe voiture (nom == BrandOfCar.BMW) de manager.getCars $()' comme il est suivi d'un modèle qui a gagné » t tirez sauf si l'existant est vrai. Par conséquent, il est redondant. – laune

Répondre

0

Vous ne devriez pas (et ne peut pas) utiliser une requête pour cette tâche simple. Replace

$company : Company() 
getBalance($world, $company) 

par

$company: Company(companyName == "Intel") from $world.getCompanies() 
+0

Merci. Mais, je le sais, mais je ne veux pas tester la requête dans Drools. –

+0

Ensuite, vous devriez suivre l'exemple de la documentation Drools où une requête est exécutée via l'API. – laune