複数の組織が所有する部品の番号付け
以下のサンプル XML は、部品を所有する組織に基づいて 2 つの番号付けスキームを切り替える規則を示しています。Org1 のスキームは PRT-1234567 形式の番号を生成し、Org2 のスキームは 12345-PRT 形式の番号を生成します。
|
以下の例では、ページ幅を考慮し、一部の XML 要素が複数行に分割されています。ただし、XML ドキュメントをコーディングする場合は、各 XML 要素を 1 行に入力します。
|
<!-- 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>
この例では、2 つの番号付けスキームにそれぞれ異なるシーケンスが適用されます。対応する VarRef 要素が評価されないかぎり VarDef 要素は評価されないので、常に番号が 1 つだけ生成されます。したがって、2 つの組織で部品が作成されるとすると、それらの番号が順番に割り当てられます。たとえば、どちらのシーケンスも 1 で始まる場合は、以下のように番号が生成されます。
• Org1 が所有する部品を作成: PRT-0000001
• Org2 が所有する部品を作成: 00001-PRT
• Org2 が所有する部品を作成: 00002-PRT
• Org1 が所有する部品を作成: 0000002
もちろん、どちらの組織についても、欠番がないように連続番号が割り当てられます。