2010-02-17 4 views
0

우리 팀은 평가를 위해 Drools 규칙 흐름을 사용하고 있습니다. 이제 의사 결정 테이블로 마이그레이션 할 계획입니다.Drools 4.x의 의사 결정 테이블에서 사실 개체를 검색하는 방법

Drools 규칙 흐름 버전에서는 작업 메모리에서 DRL 파일의 컨텍스트 내에서 만들어진 개체를 추출하는 쿼리 구성 요소가있는 DRL 파일을 사용했습니다.

의사 결정 테이블에서 동일한 작업을 수행해야합니까? 우리는 발사 규칙에 StatefulSession을 사용하고 있습니다. 또한 이러한 사실은 규칙의 RHS에 삽입됩니다. 우리는 그들을 해고 할 때 FactHandles를 가지고 있지 않습니다.

다음과 같이 Drools가 규칙 엔진을 부트 스트랩하는 데 사용되는 코드는 다음과 같습니다

query "resultQuery" 
    response : Outcome() 
end 

감사

답변

0

직접이 없습니다를 :

쿼리를 검색하는 데 사용되는이 샘 파일로 보았다
RuleBase ruleBase = RuleBaseFactory.newRuleBase(); 
StatefulSession session = ruleBase.newStatefulSession(); 
MyFacts nmrs = new MyFacts(); 
session.insert(nmrs); 
session.fireAllRules(); 

은 다음과 현재 XLS 의사 결정 테이블에서 쿼리를 지원합니다. 그러나 의사 결정 테이블은 자체적으로 drl로 컴파일되므로 사실을 인수로 프로그래밍 방식으로 쿼리를 (별도의 DRL 파일에) 추가 할 수 있습니다.

당신은 모든 사실 핸들의 컬렉션을 얻을 수 있습니다 (추한) 나는 StringReader를 (queryString이)와 함께 패키지 빌더에 addPackageFromDRL으로 쿼리를 추가하려고하면 ... 등 instanceof를 결과, 찾고 통해

+0

를 반복, 그것을 어떤 이유로 실패합니다. 나는 마지막 룰 파일을 추가하는 추악한 해킹을해야한다. – Maddy

관련 문제