Bir Drools kuralı yazmak için yardıma ihtiyacım var. Context ve CreditReport adlı iki sınıfım var. Kurallar tetiklenmeden önce, bilgi oturumuna bir gerçeklik olarak bağlam eklenir.Bozukluklar: Nesneyi Nesne'den Nesne İçeren Kurallar
Ben doğrudan oturumuna CreditReport eklemek istiyorum, baskılar 'Mükemmel' konsolda Kredi Puan 800'den fazla
İdeal olan bir kural yazmak gerekir ama ne yazık ki ondan yok seçeneği.
ben iyi görünmüyor yazdık kural:
- sonra parçası olan bir eğer deyim ben
Yardımlarınız için teşekkürler!
// Context.java
public class Context {
private Map<String, Object> data = Maps.newHashMap();
public <T> T getData(final String key, final Class<T> clazz) {
return clazz.cast(data.get(key));
}
public void putData(final String key, final Object value) {
this.data.put(key, value);
}
}
// CreditReport.java
public class CreditReport {
private final String name;
private final int creditScore;
public String getName() {
return this.name;
}
public int getCreditScore() {
return this.creditScore;
}
}
// Ana yöntem
context.put("creditReport", new CreditReport("John", 810));
session.insert(Arrays.asList(context));
session.fireAllRules();
// Kural
rule "Excellent_Score"
when Context($creditReportObject : getData("creditReport"))
then
final CreditReport creditReport = (CreditReport) $creditReportObject;
if (creditReport.getCreditScore() >= 800) {
System.out.println("Excellent");
}
end
Teşekkür ederiz laune! Her konuda haklısın. Bir takip sorusu. İçerik, Hesap adı verilen başka bir nesne içeriyorsa. CreditReport.creditScore> = 800 VEYA Account.balance> = 5000 iken 'Mükemmel' yazan bir Kural yazmak isterim. Bir AND ilişkisini nasıl kuracağımı biliyoruz, ama OR ile değil, OR ile. Değerlendirmeyi de kullanmamaya çalışıyorum – user544192
Tek bir kuralla elde edilemeyecek kadar değil - Düzenlememe bakın. – laune
Anladım. Tekrar teşekkürler! :) – user544192