알고리즘 인수의 구문
AttrValue, AttrConstraint, Value 및 VarDef 태그 중 기본 객체 초기화 규칙 알고리즘의 인수를 지정하는 데 사용할 수 있는 태그는 세 가지입니다. 알고리즘마다 필요한 인수 집합은 다르지만 다음과 같이 인수를 분류할 수 있습니다.
• 문자열 인수에는 Arg 태그를 사용합니다.
• 속성으로 평가할 인수에는 Attr 태그를 사용합니다.
• 그리고 문자열 또는 인수를 제외한 모든 인수에 Value 태그를 사용합니다. 예를 들어, Value 태그를 사용하여 추가 알고리즘을 지정할 수 있습니다.
또한 AttrValue, AttrConstraint 및 Value 태그에서 VarRef 태그를 사용하여 규칙 변수의 값이 될 인수를 지정할 수 있습니다.
다음 단원에서는 각 인수의 구문과 인수의 사용 예제에 대해 설명합니다.
Arg 태그 구문
Arg 태그의 구문은 다음과 같습니다.
<Arg>string</Arg>
|
Arg 태그에 사용된 공백은 무시됩니다. 공백을 나타내려면 하이픈(-) 또는 다른 문자를 대신 사용합니다. 문자열에 XML 예약 문자를 포함해야 하는 경우 문자열을 CDATA 섹션으로 정의해야 합니다. 예약된 문자에는 앰퍼샌드(&)와 왼쪽 및 오른쪽 꺾쇠 괄호(< >)가 포함됩니다. 예를 들어, Arg 태그에 앰퍼샌드 문자(&)가 포함되는 경우 다음 구문을 사용하여 예상대로 작동하도록 합니다. <Arg><![CDATA[Text & Text]]></Arg>.
|
Attr 태그 구문
Attr 태그의 구문은 다음과 같습니다.
<Attr id="attribute_name"/>
여기서 attribute_name은 알고리즘을 실행할 때 사용할 기존 속성의 이름입니다. 속성을 작성할 때 내부 이름 필드에 지정한 값을 속성 이름으로 사용합니다.
|
속성에 해당하는 내부 이름이 없는 경우, 해당 속성을 수정할 수 있는 사용자가 유형 및 속성 관리 유틸리티를 사용하여 내부 이름을 추가할 수 있습니다.
|
Value 태그 구문
Value 태그의 구문은 지정하는 값에 따라 다릅니다. 지원되는 다른 태그를 사용하여 Value 태그 안에 추가 인수를 지정할 수 있습니다.
VarRef 태그 구문
VarRef 태그의 구문은 다음과 같습니다.
<VarRef id="variable_name"/>
여기서
variable_name은 알고리즘을 실행할 때 사용할 기존 변수의 이름입니다. 이 변수는 상위
AttributeValues 태그에 지정된 것과 동일한 객체 유형의 규칙에서
VarDef 태그를 사용하여 정의되어야 합니다.
참조하는 변수의 정의가 없는 경우 VarRef 태그를 평가할 때 오류가 생성됩니다.
Arg, Attr, Value 및 VarRef 태그 사용 예제
GeneratedNumber 변수를 정의하는 아래의 예제 XML에서는 Arg 태그를 사용하여 번호 생성의 시퀀스를 지정하고 있습니다.
<VarDef id="GeneratedNumber"
algorithm=”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</VarDef>
이 예제에서는 시퀀스 생성기가 문자열 값을 반환하며, 해당 값이 GeneratedNumber 변수 값으로 사용됩니다.
다음 예제 XML에서 VarRef 태그는 번호 속성의 기본값을 제공합니다.
<AttrValue id=”number”>
<VarRef id=”GeneratedNumber”/>
</AttrValue>
이 예제에서는 앞의 예제에 표시된 다른 규칙을 통해 GeneratedNumber에 대한 변수 정의를 사용할 수 있다고 가정합니다.
아래의 예제 XML에 있는 EqualsTest 알고리즘에는 인수가 두 개 필요합니다. 첫 번째 인수는 Attr 태그를 사용하여 이름 속성을 평가하고 두 번째 인수는 Value 태그를 사용하여 널 값을 반환하는 GetNullValue 알고리즘을 지정합니다.
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="name"/>
<Value algorithm="wt.rule.algorithm.GetNullValue"/>
</Value>