variable 요소

<variable> 요소는 변수를 정의하고 표현식이 참조할 수 있는 양식으로 된 정보를 포함합니다. 변수는 규칙 세트, 규칙 블록 또는 규칙 레벨에서 정의할 수 있습니다.

세부사항

규칙 세트 변수
규칙 세트에 전체적으로 적용되고 해당 규칙 세트의 모든 표현식에 의해 참조될 수 있습니다.
규칙 블록 변수
규칙 블록 내에서 및 포함된 규칙 블록 내에서만 적용되고 해당 규칙 블록의 모든 표현식에 의해 참조될 수 있습니다.
규칙 변수
해당 규칙 내의 표현식에 적용됩니다.

변수는 규칙 계층 구조의 다른 레벨에는 동일한 이름이 있을 수 있습니다. 변수에 액세스할 때에는 변수의 대부분의 로컬 정의가 사용됩니다. 예를 들어, 변수가 규칙 세트 레벨, 규칙 블록 레벨 및 규칙 레벨에서 동일한 이름으로 정의된 경우에는 규칙 레벨의 변수 정의가 해당 규칙 내의 표현식에 의해 사용됩니다.

변수가 규칙 세트 또는 규칙 블록 레벨에서 정의되어 있으면 여러 규칙이 서로 다른 시간에 이러한 변수를 가져오고 설정합니다. 그러므로 변수값을 정확하게 유지하려면 규칙 세트에서 변수 간 상호작용을 코딩하는 방법을 알아야 합니다.

변수가 규칙 세트 또는 규칙 블록 레벨에서 정의되어 있으면 규칙 패턴이 일치한 후에 다시 초기화되지 않습니다.

다음 조건에서 규칙 세트 및 규칙 블록 변수의 가져오기 및 설정에 대해 잠금을 사용하면 변수값이 잘못 설정되는 것을 막을 수 있습니다.
  • 타이머 규칙은 <onTimeOut> 조치 동안에 변수를 가져오거나 설정하는 경우
  • ACT(Active Correlation Technology) 엔진이 임베드된 어플리케이션이 멀티스레드인 경우

규칙이 그룹화 키로 정의되고, <variable> 요소에 의해 정의된 규칙 변수가 수명 주기 조치 내에서 <activationInterval> 요소 내에 포함된 <activateOnEvent> 또는 <deactivateOnEvent> 요소 내에 포함된 <filteringPredicate> 요소 내에서 올바르지 않는 경우 이 경우 원인은 규칙 변수가 규칙 인스턴스에만 적용되고, 규칙 인스턴스가 이러한 표현식 실행 당시 존재하지 않기 때문입니다.

속성

<variable>에는 다음과 같은 속성이 있습니다.

표 1. <variable> 요소의 속성
이름 설명 데이터 유형 필수 여부
name 특정 변수를 식별합니다. 변수는 이름으로 참조됩니다. xsd:NMTOKEN
dataType 변수가 포함하는 정보의 유형을 식별합니다. 이는 java.lang.String과 같은 완전한 데이터 유형이어야 합니다. xsd:NMTOKEN

변수의 이름 제한사항

변수 이름에는 특정 제한사항이 있습니다. 그러므로 <variable> 요소에서 이름 속성값에는 다음과 같은 제한사항이 있습니다.
  • 다음과 같은 문자만을 포함할 수 있습니다.
    • 대문자 ASCII 라틴 문자 A-Z. 유니코드 표시는 \u0041-\u005a입니다.
    • 소문자 ASCII 라틴 문자 a-z. 유니코드 표시는 \u0061-\u007a입니다.
    • ASCII 밑줄(_). 유니코드 표시는 \u005f입니다.
    • 달러 부호($). 유니코드 표시는 \u0024입니다.
    • ASCII 숫자 0 – 9. 유니코드 표시는 \u0030-\u0039입니다.
  • 이름은 널(null)일 수 없습니다.
  • 이름은 빈 문자열일 수 없습니다.
  • 이름에는 공백을 포함할 수 없습니다.
  • 이름에는 마침표를 포함할 수 없습니다.
  • 모든 양식에서 act_로 시작할 수 없습니다(대문자, 소문자 또는 대소문자 혼합은 제외).

포함 위치

포함 요소

<variable>는 다음 요소를 포함합니다.

요소는 표시된 순서대로 코딩되어야 합니다. 요소가 선택적이면 코딩할 필요가 없지만 코딩된 모든 요소는 올바른 순서를 따라야 합니다.

표 2. <variable> 요소 내에 포함된 요소
요소 필수 또는 선택적 여부
<comment> 선택적. 0 또는 1 발생이 허용됩니다.
<varInitializer> 필수. 1 발생만이 허용됩니다.
관련 개념
변수