條件邏輯演算法範例
* 
在接下來的範例中,由於頁面寬度有限,某些 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>
這是否有幫助?