CER에서는 세션과 관련하여 HTML 문서를 출력할 수 있습니다("SessionDoc").
이 문서는 세션 중에 작성되며 테스트에서 함께 사용하면 디버깅하는 데 많은 도움이 될 수 있는 모든 규칙 오브젝트의 레코드를 제공합니다.
테스트 클래스에 있는 모든 테스트 메소드를 강제 실행하여 SessionDoc을 출력하도록 JUnit의 tearDown 후크 지점을 사용하면 유용할 수 있습니다.
@Override protected void tearDown() throws Exception { /* * 테스트 메소드의 이름을 따서 명명한 디렉토리에 SessionDoc을 * 작성합니다. */ final File sessionDocOutputDirectory = new File("./gen/sessiondoc/" + this.getName()); sessionDoc.write(sessionDocOutputDirectory); super.tearDown(); }
다음은 testSelfMadeMillionaireScenario 테스트의 기본 SessionDoc 페이지입니다.
이 페이지에 대한 몇 가지 주요 세부사항은 다음과 같습니다.
유일한 규칙 세트 FlexibleRetirementYearRuleSet에 대한 링크를 클릭하면 다음과 같이 규칙 오브젝트가 표시됩니다.
이 페이지에는 다음이 표시됩니다.
유일한 FlexibleRetirementYear 규칙 오브젝트에 대한 세부사항 링크를 클릭하면 다음과 같이 SessionDoc이 표시됩니다.
맨 위(표시되지 않음)에는 규칙 오브젝트의 요약 세부사항이 있으며, 그 다음에 규칙 오브젝트의 모든 규칙 속성이 다음과 같은 세부사항과 함께 나열됩니다.
규칙 속성의 이름
규칙 세트에 선언된 규칙 속성의 유형입니다. 실제 런타임 값은 이 선언된 유형의 하위 유형과 다를 수 있습니다.
다음 중 하나인 값의 상태입니다.
규칙이 계산함
정의된 계산을 대체하여 클라이언트가 명시적으로 지정했거나 1create 표현식의 일부로 초기화되었습니다.
명시적으로 지정되지 않았으며 규칙 실행 중에 계산되지 않음(다른 계산이나 테스트에서 값이 요청된 적이 없으므로). 또는
값을 계산하는 중에 오류가 발생했습니다(오류의 계산 누적 및 세부사항은 애플리케이션 로그 또는 콘솔 출력 참조).
화면에 표시되는 값입니다. 값을 계산한 적이 없거나(NOT_YET_CALCULATED) 값에 오류가 있는 경우(ERROR) "?"가 표시됩니다. 값이 규칙 오브젝트인 경우 해당 규칙 오브젝트의 세부사항을 볼 수 있도록 값이 탐색 가능한 하이퍼링크로 표시됩니다.
속성의 RuleDoc 파생 사항입니다(링크 없음). RuleDoc에 대한 자세한 정보는 RuleDoc의 내용을 참조하십시오.
이 값을 계산하는 데 사용한 속성의 링크입니다.
(선택사항) 값을 계산할 때 이 값을 사용한 속성의 링크입니다.
대형 데이터베이스에 대해 SessionDoc을 실행 중인 경우 "사용자" 링크 출력을 포함하면 SessionDoc이 매우 많은 규칙 오브젝트를 출력하게 될 수 있으므로 해당 링크의 출력을 억제하면 유용할 수 있습니다. "사용자" 링크의 출력을 억제하려면 curam.creole.execution.session.SessionDoc.write(File, boolean)을 사용하여 두 번째 매개변수로 false를 전달하십시오.
CER의 데이터베이스 테이블에 저장된 규칙 오브젝트의 경우 SessionDoc이 작성된 디렉토리의 이름을 단일 인수로 사용하여 curam.creole.util.DumpOutRuleObjects를 실행함으로써 저장된 규칙 오브젝트의 SessionDoc을 작성할 수 있습니다. DumpOutRuleObjects 유틸리티는 CER의 데이터베이스 테이블에서 모든 규칙 오브젝트를 검색하므로 각 외부 규칙 오브젝트의 조치가 "검색"됩니다. 내부 규칙 오브젝트가 작성(저장되지 않았으므로)되므로 "작성됨" 조치가 표시됩니다.
계산 결과에 도달한 방법을 표시하는 기술 보기와 함께 규칙 오브젝트에 대해 계산된 속성 값을 보려면 규칙 오브젝트를 찾아볼 수 있습니다.