표현식을 효과적이고 효율적으로 코딩할 수 있게 하는
몇 가지 Best Practices, 힌트 및 팁을 설명합니다.
- 제공된 표현식 예제는 이해하기 쉽도록 하기 위해 대부분
XML 내에 Java™ 코드가 포함되어 있습니다.
그러나, 실제로 규칙을 작성할 때에는 Java 코드는 외부 모듈에 작성하고
이러한 외부 모듈을 표현식의 일부로서 호출할 것을 권장합니다.
기존의 조각을 사용 또는 편집하거나 규칙 빌더에 새 조각을 작성하여
외부 모듈을 호출하기 위한 코드를 제공할 수 있습니다. 조각은
표현식 내에서 사용할 수 있는 소스 코드의 인용구입니다.
규칙 빌더에서는 조각 보기를 통해 조각을 사용할 수 있습니다.
이 방법을 사용하면 사용자가 선택한
IDE(Integrated Development Environment)를 통해 Java 코드의
설계, 개발, 편집, 테스트 및 디버깅 태스크를 수행하고
개발 프로세스의 일부로 제어할 수 있습니다.
- 표현식 코드가 XML로 구문 분석되는 것을 막으려면 코드를
CDATA 섹션으로 묶으십시오. 여기서 다음 예제와 같이 <![CDATA[는 코드 바로 앞에
오고 ]]>는 코드 바로 뒤에 나옵니다.
<onTimeOut>
<action expressionLanguage="java">
<![CDATA[
IEvent firstEvent = act_eventList.get(0);
System.out.println("Expired Item: " + firstEvent.getAttribute("sourceComponentId.location"));
]]>
</action>
</onTimeOut>
XML 구문 분석기는 CDATA 섹션 내부의 모든 내용을 무시합니다.
- 표현식에서 act_lib.getExternalContext() 메소드를 사용하는 경우,
규칙 세트 또는 규칙 블록 변수의 메소드로부터 리턴된 오브젝트를 저장하지 마십시오.
이유는 어플리케이션이 오브젝트 인스턴스에 대한 참조를 변경할 수 있으나
연관된 규칙 세트 또는 규칙 블록 변수는 갱신되지 않기 때문입니다.
- 표현식에서 <action> 요소 내에 return 문(return;)을 사용하고,
개별 규칙 응답이나 수명 주기 조치에 대해 추가로 <action> 요소가 코딩되어 있으면
코드 실행은 return 문이 코딩된 곳에서 종료되고 표현식에서 다음 <action> 요소에서 다시 시작됩니다.
- 규칙 관리 및 기타 ACT(Active Correlation Technology) 엔진 메소드는
규칙 응답이나 수명 주기 조치 내에서 호출할 수 없습니다.