2016-08-04 19 views
0

Ich muss deptNo (Bindungsvariable) an loc (normale Variable) verketten und in deptFullName Variable speichern. Der Zweck ist, deptFullName für die Suche in einer Karte von deptDetail zu verwenden.Verkettung in Drools

Schreiben dsl so etwas wie (Zeilenumbrüche fpror bessere Lesbarkeit hinzugefügt):

[condition][]Get decision for Depertment{deptName} and location{loc} 
      to be paid higher with employee count {count}= 
      Company($deptDetails : deptDetails , $deptNo : deptNo) 
      String($deptFullName : ($deptNo+"_"+"{loc}")) 
      Company($deptDetails.containsKey($deptFullName), 
         $deptDetails.get($deptFullName) != null) 

aber nicht in der Lage, da in String($deptFullName : ($deptNo+"_"+"{loc}")) Bindung Variable verketten nicht auf der rechten Seite sein kann.

Antwort

0

Wiederholen Sie einfach die Verkettung:

[condition][]Get decision for Depertment{deptName} and location{loc} 
      to be paid higher with employee count {count}= 
      Company($deptDetails : deptDetails , $deptNo : deptNo, 
         $deptDetails.containsKey($deptNo+"_"+"{loc}"), 
         $deptDetails.get($deptNo+"_"+"{loc}") != null) 

Es ist möglich, dass Sie containsKey weglassen - der Test, ob das Ergebnis eines bekommen mit dem gleichen Schlüssel nicht null ist ausreichend sein sollte.