由多個組織擁有的零件編號
下列是範例規則 XML 片段,它會依據擁有該零件的組織在兩個編號 配置 之間進行切換。Org1 的配置會產生像 PRT-1234567 這樣的編號,而 Org2 的配置則會產生像 12345-PRT 這樣的編號。
|
在接下來的範例中,由於頁面寬度有限,某些 XML 元素跨越了多行。編碼 XML 文件時,在同一行上輸入各個 XML 元素。
|
<!-- Define a numbering scheme for Org1 -->
<VarDef id="Org1-GeneratedNumber" algorithm=
"com.ptc.windchill.enterprise.revisionControlled.server.impl. NumberGenerator">
<Arg>PRT-</Arg>
<Arg>{GEN:wt.enterprise.SequenceGenerator:ORG1_WTPARTID_seq:7:0}</Arg>
</VarDef>
<!-- Define a numbering scheme for Org2 -->
<VarDef id="Org2-GeneratedNumber" algorithm="
com.ptc.windchill.enterprise.revisionControlled.server.impl. NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:ORG2_WTPARTID_seq:5:0}</Arg>
<Arg>-PRT</Arg>
</VarDef>
<!-Set the number attribute using the appropriate scheme defined above -->
<AttrValue id="number" algorithm="wt.rule.algorithm.StringConstant">
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="wt.rule.algorithm.OrgNameEqualsTest">
<Attr id="organization.id"/>
<Arg>Org1</Arg>
</Value>
<VarRef id="Org1-GeneratedNumber"/>
<VarRef id="Org2-GeneratedNumber"/>
</Value>
</AttrValue>
在此範例中,每個編號配置會視不同序列而定。因為除非評估了對應的 VarDef 元素,否則便不會評估 VarRef 元素,所以只會生成一個編號。因此,會針對兩個組織建立零件,且應該連續指派編號。例如,如果兩個序列都從 1 起始,便會如下指派編號:
• 建立由 Org1 擁有的零件:PRT-0000001
• 建立由 Org2 擁有的零件:00001-PRT
• 建立由 Org2 擁有的零件:00002-PRT
• 建立由 Org1 擁有的零件:PRT-0000002
一如預期,任一個組織的編號序列中都不會出現間隔。