专业化管理 > 定制业务对象 > 对象初始化规则管理 > 使用对象初始化规则 > 指定规则 > VarDef 标记语法
  
VarDef 标记语法
用于规则的 XML 文档可包含一个或多个 VarDef 标记。始终将 VarDef 标记嵌套在 AttributeValues 标记中。
每个 VarDef 标记都会定义一个随后可使用 VarRef 标记在规则中引用的变量名及变量值。引用变量时 (使用 VarRef 标记) 可用的变量定义由对象类型和适当的上下文分层结构确定。有关规则如何使用这些分级的详细信息,请参阅合并规则以创建复合规则
例如,假定您在站点上下文中定义了一个变量,可用于为 wt.doc.WTDocument 对象类型定义的规则。则该定义在所有上下文中都可用于为 wt.doc.WTDocument 对象类型及其所有子类型所定义的规则。如果要应用规则的对象在子上下文中或者与子类型关联,则在站点子上下文或者与 wt.doc.WTDocument 的子类型关联的相同变量的定义通常优先于站点上下文中的定义。
只有规则元素经过处理引用变量后,才会计算变量的值。要引用通过 VarDef 标记定义的特定变量,请在 VarRef 标记的 id 属性中使用在 VarDef 标记的 id 属性中所指定的值。应用规则时首个处理的元素具有特殊的变量引用,这导致变量的值得以计算并被缓存。然后,每次对规则应用期间处理的变量进行引用时,都会使用缓存值。
VarDef 标记的语法如下所示:
<VarDef id="variable_name"
algorithm="default_value_algorithm">
algorithm_arguments
</VarDef>
其中,variable_name 是引用 VarRef 标记中的变量时所使用的变量名。该名称可以由任何有意义的有效 XML 名组成。
以下示例定义了 GeneratedNumber 变量,该变量可用于生成文档的编号,这样您就可以将文档的名称设置为生成的编号。可通过将 XML 嵌入到 wt.doc.WTDocument 对象类型的 AttributeValues 标记中来定义此变量,以供创建文档时使用:
<VarDef id="GeneratedNumber"
algorithm=”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
</VarDef>
* 
在 VarDef 标记中定义的变量值不能通过对同一规则中其他值的计算来获得。例如,不能通过由同一规则中的 AttrValue 标记所设置的编号属性值为 WTPart 定义 GeneratedNumber 变量。有关详细信息,请参阅变量
此外,还可以在 VarDef 标记中包含可选 XML 属性以执行如下操作:
对指定为在复合规则中使用的绝对定义的变量定义进行设置。
定义继承于父上下文时,忽略指定的定义。