2014-04-10 6 views
3

ODM 8.5 (JRules 후속 버전)를 사용하고 있습니다. 내 Java 도메인에서 "000"에서 "999"까지의 숫자를 나타내는 세 문자 문자열 field이 있습니다. 나는 같은 논리 나타내는 의사 결정 테이블이 싶습니다XOM을 변경하지 않고 ODM 의사 결정 테이블에서 사용할 함수를 정의하는 방법은 무엇입니까?

if field is between "000" and "012" then set the result to "tiny" 
if field is between "013" and "060" then set the result to "less tiny" 
... 

IBM의 documentation on defining columns 상태를 - "A 조건 문은 불완전 BAL 술어의 표현이다 ...". BAL에 내가 원하는 String 비교 기능이 있습니까? 그렇지 않은 경우 BAL에서 IRL에 정의 된 함수를 호출 할 수 있습니까? 그렇다면 어떻게? 또한 ODM에서이 간단한 문제를 처리하는 방법에 대한 다른 제안 (기존 Java XOM을 변경하지 않고)에 대해서도 열려 있습니다. 지금 당장은 기본 로직이 의사 결정 테이블에 적합하지만 ODM 의사 결정 테이블을 사용할 수 없다고 생각합니다.

답변

2

이 답변은 저스틴 필립스의 OWD 8.5에 대해 업데이트 된 this question에 대한 좋은 답변을 기반으로합니다. 그의 대답을 더해주세요.

주요 아이디어는 규칙에서 호출 할 수있는 BOM (Business Object Model)에서 함수를 만드는 것입니다. BOM 함수를 추가하려면 다음을 수행하십시오.

  1. Eclipse 규칙 프로젝트에서 bom 폴더를 마우스 오른쪽 단추로 클릭하십시오.
  2. 메뉴에서 New -> BOM Entry을 선택하십시오.
  3. Create an empty BOM entry 옵션을 선택한 다음 Finish을 클릭하십시오.
  4. 새 BOM 항목을 두 번 클릭하여 BOM 편집기보기를 표시 한 다음 을 입력 한 다음 New Class을 클릭합니다.
  5. 클래스 이름을 입력 한 다음 Finish을 클릭하십시오.
  6. 목록에서 새 BOM 클래스를 두 번 클릭 한 다음 Members 섹션에서 New 버튼을 클릭합니다. New Member 대화 상자에서
  7. 는 방법 (boolean)에 대한 Name (isBetween), 반환 Type를 입력 Method 옵션을 선택하고 세 개의 문자열 매개 변수 (testee - 값이 테스트되고, minmax)를 추가합니다. Finish 버튼을 클릭합니다.
  8. Members 섹션 아래에서 새 방법을 두 번 클릭하고 StaticFinal 옵션을 선택하십시오.
  9. 는이 "회원 읽는 음성"섹션 아래 링크를 작성하고 BOM to XOM Mapping 섹션에서 {0} is between {1,min} to {2,max}
  10. 와 템플릿 텍스트 상자에 입력, 자바 코드를 입력하십시오.

enter image description here 11 돌아가서 클래스 레벨 BOM 편집기 및 섹션 "XOM 맵핑에 BOM의"의 값 voidExecution name을 설정합니다. 이는 BOM 클래스가 Java 클래스 (XOM)에 연결되어 있지 않음을 나타냅니다.

결정 표에 Condition ColumnTest을 기입 할 때 새로 생성 된 회원의 말로 표현할 수 있어야합니다.