2012-04-18 3 views
0

JRules Studio를 사용하여 매우 간단한 규칙을 개발하고 있습니다. 규칙은 IN_OUT 매개 변수를 채 웁니다. 테스트가 끝나면 IN_OUT 오브젝트의 값을 조사하는 방법이 있습니까?JRules Studio - 테스트 중에 IN_OUT 매개 변수 값 표시

처음에는 디버거에서 질문하고 싶습니다. 그러나 다른 아이디어도 환영 할 것입니다.

+0

수를하는 데 도움이 희망이다 좀 더 자세히 설명해 주시겠습니까? 규칙 실행 후 정확히 무엇을하고 싶습니까? – sdfx

답변

0

나는 질문을 이해 확실하지 오전 :

자바 코드는 다음과 같다 : 어떤 자바와 함께 할 것입니다 당신이 ... 당신의 "밖으로"매개 변수와 함께 연주 후
IlrSessionFactory factory = new IlrJ2SESessionFactory();
IlrStatelessSession session = factory.createStatelessSession();
IlrSessionRequest sessionRequest = factory.createRequest();
sessionRequest.setRulesetPath(“/RuleAppName/rulesetName”);
sessionRequest.setTraceEnabled(true);
sessionRequest.getTraceFilter().setInfoAllFilters(true);
Map inputParameters = new HashMap();
Report in_report = new Report(); // no-arg constructor
// ... populate the Object ...
inputParameters.put("report", in_report);
sessionRequest.setInputParameters(inputParameters);
IlrSessionResponse sessionResponse = session.execute(sessionRequest);
Report out_report = (Report)sessionResponse.getOutputParameters().get("report“);


과 디버그 시간을보고 싶다면

객체, 내가 말할 것이다 :

1/(테스트하지) 디버거에서 "작업 메모리 탭"을 보라 관점
나는 확실하지 오전하지만 그것이 여기

2/추가하여 규칙 플로우의 시작 지점의 초기 행동 (테스트) 가시의 경우 찾을 수있는 가장 쉬운 방법입니다 :
context.insert ( 매개 변수의 기술적 이름);
"회사 이름"이 아닙니다. 어쨌든 규칙 흐름, IRL 규칙과 같은 기술적 인 유물에서 BAL을 사용하지 마십시오!

이렇게하면 엔진이 강제로 작업 메모리에 매개 변수를 삽입합니다.
없음 중복 (그것이 매력처럼 작동합니다, 걱정하지 마세요)하지만 지금까지 내가 이것을 기억할 수 JRules를에서 이클립스 디버거에서 그들을 볼 수 있도록 할 수있는 가장 짧은 방법

그것이

+0

BTW : 규칙 자체 내에 중단 점을 추가 할 수 있습니다. 그러나 행동 부분에서만. 이것은 엔진이 어떤 조건 테스트가 어떤 규칙인지를 반드시 알 필요가 없다는 사실 때문입니다. 즉, 엔진은 (user.age)와 같은 질문을하고 사용자 질문에 대한 응답을 유지할 수 있습니다. 어느 엔진이 더 빨리 달리고 항상 같은 질문을 계속합니다. 예를 들어 결정 테이블에서 항상 그렇습니다. – Damien

+0

팁 : 조건 부분의 변수 값을 알고 싶으면 트릭을 작성하는 것이 쉽습니다 . boolean을 반환하는 BOM에 메소드를 생성하고 메소드의 본문에 매개 변수를 간단히 인쇄하십시오. :) – Damien