2010-08-10 4 views
1

데이터 모델의 유효성 검사를 수행하기위한 지식 기반을 보유하고 있습니다. UI의 수정 이벤트는 지식 기반을 업데이트하고 규칙을 실행하는 별도의 스레드에 비동기 적으로 게시됩니다. 유효성 검사 오류는 오류 객체의 논리적 삽입을 트리거합니다. 이벤트를 비동기 적으로 수집하여 UI 스레드로 다시 게시 할 수 있습니다. 그러나 UI를 최신 상태로 유지하기 쉽게하기 위해 사용자가 오류를 수정 한 경우 (즉, 오류 개체가 지식 기반에서 철회 된 경우) 이벤트를 게시하려고합니다.Drools 논리 철회 이벤트에 대한 알림 수신

나는 내가 좋아하는 어느 것도이 작업을 수행하는 방법에 대한 두 가지 아이디어가 있습니다
내가 프로 시저 코드에서 메모리 이벤트 작업을들을 수 있었다,하지만 그 지식 기반 내에서 유효성 검사 기능의 캡슐화를 위반하는 것입니다.

대체로, 오류 개체의 논리적 삽입과 쌍을 이루는 플래그 개체를 삽입하고 페어링되지 않은 플래그를 감지하고 오류를 수정 한 규칙을 기록한 다음 "오류가 수정되었습니다"이벤트가 발생합니다.

위에 설명 된 오류 개체의 논리적 철회를 기반으로 규칙을 활성화하는 깨끗하고 간단한 방법이 있습니까?

답변

1

자발적 답변이므로 나중에 더 쉽게 연결할 수 있습니다.

는 여기가 상처 접근의 복용 :

유효성 검사 규칙이 트리거
  1. , insertLogical 검증 오류 (예를 들어, ValidationMessage)를 나타내는 고유 ID를 가진 객체입니다.

  2. ValidationMessage에는 "플래그가있는"속성이 있으며, 기본값은 false입니다.

  3. 표시되지 않은 ValidationMessages가있을 때 트리거되는 규칙을 정의하십시오. RHS에서 메시지를 표시하고 전역 이벤트 핸들러에 대한 onAssert 호출을 만듭니다. ValidationMessage와 동일한 ID를 사용하여 두 번째 객체 (예 : ValidationMessageFlag)를 삽입합니다.

  4. 해당하는 ValidationMessage (동일한 ID가있는)가 없을 때 ValidationMessageFlag가있을 때 트리거하는 규칙을 정의합니다. RHS에서는 전역 이벤트 핸들러에서 onRetract를 호출합니다. ValidationMessageFlag를 취소합니다.

관련 문제