归多个组织所有的部件的编号
以下为一个示例规则 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>
在本例中,每种编号方案都基于一个不同的序列。由于仅在评估了对应的 VarRef 元素时才会评估 VarDef 元素,所以无论何时都只生成一个编号。因此,由于部件是为两个组织创建的,所以应按顺序分配编号。例如,如果两个序列均从 1 开始,则应如下所示分配编号:
• 创建 Org1 所拥有的部件:PRT-0000001
• 创建 Org2 所拥有的部件:00001-PRT
• 创建 Org2 所拥有的部件:00002-PRT
• 创建 Org1 所拥有的部件:PRT-0000002
就像预期的那样,每个组织的编号序列都是连续的。