2016-09-28 2 views
2

Ich versuche, eine einfache Regel auf KIE Workbench/geifert in einer neuen DRL-Datei zu erstellen, und ich halte den folgenden Fehler auf Build immer & bereitstellenDrools- Regel Kompilierungsfehler Name kann nicht in eine Variable aufgelöst werden Syntaxfehler, einfügen ";" Statement abzuschließen

Regel Übersetzungsfehler Name kann nicht auf einem aufgelöst werden Variable Syntaxfehler, Einfügen ";" Statement

hier ist der Code zu vervollständigen:

package demo.people.peopleproject 
import demo.people.peopleproject.Person 

rule "is18rule" 
    when 
     Person(age>=18) 
    then 
     System.out.println(name + "is 18 or over") 
end 

und hier ist ein Screenshot von meinem Arbeitstisch, wenn hilfreich enter image description here

Ich bin neu zu geifert, TIA für Ihre Hilfe :)

EDIT: Ich sollte hinzufügen, dass einfach eine hinzufügen; wirklich überall hier hat nicht geholfen, also, ja, ich habe versucht, dass

+0

die RHS der Regel ist Java, so dass Sie benötigen; um Aussagen zu vervollständigen. – tarilabs

+0

Was das "name" -Feld der passenden Person betrifft, könnten Sie nach Ihrer eigenen Antwort handeln, oder alternativ, binden Sie die Variable als 'Person ($ name: name, ...)' in der LHS, und dann Referenz in RHS als '$ name'. – tarilabs

+0

ja, danke! – tls11

Antwort

2

Ich fand die Antwort - wenn hilfreich für alle in der Zukunft - hier ist der Code, der am Ende für mich arbeiten. Benötigte Semikolons und etwas andere Syntax.

package demo.people.peopleproject 
import demo.people.peopleproject.Person; 

rule 'is18rule' 
    when 
     p: Person(age >= 18) 
    then 
     System.out.println(p.getName() + "is 18 or over."); 
end 
Verwandte Themen