저는 JESS에서는 초보자이고 Java에서는 보통입니다. ('필수'와 '중요하지 않은'상품을 포함)작성 방법 JESS defrule "목록에 값이 없으면 경고를 출력합니다."
내가 ('필수'와 '지역'상품을 포함) 특별 상품의 목록으로 'CLIST를'이, 모든 상품의 목록으로 'xList' 나는 규칙을 만들고 싶다 : '필수'라는 'xList'의 'xList'에서 'x'가 'cList'에 없으면 "필수 필수 상품 'x'가 누락되었습니다."
제 시스템의 패턴은 Jess71p2의 pricing_engine 예제와 동일합니다. OrderItems에
나는 자바 클래스에서 deftemplate 선언과 동일과 동일 CatalogItems로
- CLIST. 여기 deftemplate가 있습니다.
(import com.aisy.entity.*) (deftemplate oldList(declare (from-class oldList))) (deftemplate xList (declare (from-class xList))) (deftemplate cList (declare (from-class cList)))
여기 여기 cList.java 년대 xList.java
package com.aisy.entity; import java.sql.Timestamp; public class xList { private Long id_commodity; private String commodity; private String essentiality; private Timestamp update; public xList() { super(); } public xList(Long id_commodity, String commodity, String essentiality, Timestamp update) { super(); this.id_commodity = id_commodity; this.commodity = commodity; this.essentiality = essentiality; this.update = update; } public Long getId_commodity() { return this.id_commodity; } public void setId_Commodity(Long id_commodity) { this.id_commodity = id_commodity; } public String getCommodity() { return this.commoditty; } ....getter and setter methods for the rest fields }
이다;
public class cList { private Long id_commodity; private String commodity; private String price; private Double final_price; public cList(Long id_commodity, String commodity, String price, Double final_price) { super(); this.id_commodity = id_commodity; this.commodity = commodity; this.price = price; this.final_price = final_price; } public cList() { super(); } ...common getter and setter methods for all fields
여기 warning.java;
public class warning { private final String description; public warning(String aDescription) { description = aDescription; } public String getDescription() { return description; } }
다음은 불만입니다.
(defrule (xList (commodity ?essential_commodity) (essentiality /essential/)) (not(cList (commodity ?essential_commodity))) => (add (new warning "Missing essential commodity" ?essential_commodity)) )
내가 xList 및 CLIST를 위해 데이터베이스에 몇 가지 정보를 넣어하려고 : 내 규칙 엔진을 실행하면
xList("100000", "PEANUT", "2.45"); xList("100003", "BREAD", "1.5"); cList("100000", "PEANUT", "ESSENTIAL"); cList("100002", "CAKE", "ESSENTIAL"); cList("100003", "BREAD", "NON ESSENTIAL");
것과, 그 결과는
"Missing essential commodity 100002"
일해야하지만 내 현재 결과 :
"Missing essential commodity 100000" "Missing essential commodity 100002"
이 문제를 해결하려면 어떻게 작성합니까? 편집
: 2016년 7월 22일 당신이 일치하고있는 사실의 정확한 성격에, 물론, xList.java 및 cList.java
사실을 작성하고 삽입하는 동안 실수로 실수를 한 것일 수 있습니다. 코드 없이는 말할 수 없습니다. – laune