전문 관리 > 비즈니스 객체 변경 > 객체 초기화 규칙 관리 > 객체 초기화 규칙 이해 > 객체 초기화 규칙에 사용되는 XML 문서의 컨텐트 정의 > 조건 논리 알고리즘 > 조건 논리 알고리즘 예제
  
조건 논리 알고리즘 예제
* 
다음 예제에서는 페이지 너비로 인해 일부 XML 요소가 여러 줄에 걸쳐 있습니다. 실제로 XML 문서를 코딩할 때는 각 XML 요소를 한 줄에 하나씩 입력하십시오.
다음 XML에서는 BooleanBranch 및 EqualsTest 알고리즘을 모두 사용하여 genericType 속성에서 "변형"으로 식별된 특정 유형의 부품이 있는지 테스트한 다음 이 유형의 부품에 번호를 지정할 때 V 접두사를 설정합니다.
<AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.
server.impl.NumberGenerator">
<!-- add a V prefix for variant parts -->
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="genericType"/>
<Arg>variant</Arg>
</Value>
<Arg>V</Arg>
<Arg></Arg>
</Value>
<!-- the sequence -->
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</AttrValue>
다음 예제에서는 BooleanBranch 및 IfContainerTypeEqualsProjectTest 알고리즘을 사용하여 프로젝트 또는 프로그램의 번호에 대한 고유한 표시 제약 조건을 설정합니다. 이 예제에서는 프로젝트 또는 프로그램의 번호가 생성된 후 표시되며 이를 사용자가 변경할 수 있습니다. 다른 컨텍스트의 번호는 생성되지만 사용자가 변경할 수 없습니다.
<AttrConstraint id="number" algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="com.ptc.core.rule.server.impl.
IfContainerTypeEqualsProjectTest"/>
<Value algorithm="com.ptc.core.rule.server.impl.GatherAttribute
Constraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
</Value>
<Value algorithm="com.ptc.core.rule.server.impl.GatherAttribute
Constraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
<Value algorithm="com.ptc.core.rule.server.impl.GetImmutable
Constraint"/>
</Value>
</AttrConstraint>