변수
객체 초기화 규칙을 작성할 때 변수를 사용할 수 있습니다. VarDef 태그를 사용하여 변수를 정의한 다음 VarRef 태그를 사용하여 참조합니다. 변수를 사용하는 주요 이유는 값을 한 번 생성한 다음 설정한 규칙 내에서 생성된 이 값을 여러 번 사용하거나 복잡한 규칙을 간소화할 수 있기 때문입니다.
VarRef 태그로 변수를 참조할 때 사용할 수 있는 변수 정의는 객체 유형 및 사용 중인 컨텍스트 계층에 따라 결정됩니다. 변수를 참조하는 규칙 요소의 처리가 완료되어야 변수 값을 계산할 수 있습니다. 또한 평가 중인 규칙 세트의 다른 값에 대한 계산에서 변수 정의의 값을 파생할 수 없습니다.
다음 XML 샘플에서는 VarDef 태그를 사용하여 번호를 생성한 다음 VarRef 태그를 사용하여 부품의 이름과 번호를 생성된 번호로 설정합니다.
<AttributeValues objType="wt.part.WTPart">
<VarDef id="GeneratedNumber" algorithm=
”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator”>
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</VarDef>
<AttrValue id="name" algorithm=”wt.rule.algorithm.StringConstant”>
<VarRef id="GeneratedNumber"/>
</AttrValue>
<AttrValue id="number" algorithm=”wt.rule.algorithm.StringConstant”>
<VarRef id="GeneratedNumber"/>
</AttrValue>
<AttrConstraint id="name"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>
</AttrConstraint>
<AttrConstraint id="number"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>
<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>
</AttrConstraint>
</AttributeValues>
이 샘플 XML에서 GeneratedNumber 변수는 번호 생성기 알고리즘을 사용하여 설정됩니다. 그러면 변수 값이 이름 및 번호 속성의 값을 설정하는 데 사용됩니다.
* 
이 예에서는 예제에 나열된 제약 조건이 적용된다고 가정합니다. 이러한 제약 조건이 기본 제약 조건은 아닙니다. 기본 제약 조건의 경우에는 인터페이스에서 이름이 필요하며 생성되지 않습니다.
다음은 부품에 대한 번호를 생성한 다음 GeneratedNumber 변수를 정의하는 XML 샘플입니다. 여기서 이 변수의 값을 번호 속성의 값과 동일하게 설정합니다. 그러면 이름 속성이 GeneratedNumber 변수의 값으로 설정됩니다.
<AttributeValues objType="wt.part.WTPart">
<AttrValue id="number" algorithm=
"com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</AttrValue>
<VarDef id="GeneratedNumber" algorithm="wt.rule.algorithm.StringConstant">
< Attr id="number">
</VarDef>
<AttrValue id="name" algorithm=”wt.rule.algorithm.StringConstant”>
<VarRef id="GeneratedNumber"/>
</AttrValue>
.
.
.
</AttributeValues>
정의할 변수 값을 평가 중인 규칙 세트의 다른 값 계산에서 파생할 수 없으므로 이 샘플에서는 이름 및 번호 속성이 동일한 값으로 설정되지 않습니다. 이 경우 VarDef 태그에 식별되는 번호 속성 값은 동일한 규칙의 번호 속성에 대해 지정된 AttrValue 태그에 의해 설정되는 값이 아니라 이전에 캐시된 번호 속성 값(있는 경우)에서 가져옵니다.
도움이 되셨나요?