Administration spécialisée > Personnalisation des objets métier > Administration des règles d'initialisation d'un objet > Utilisation des règles d'initialisation d'un objet > Indication de règles > Syntaxe de la balise VarDef
  
Syntaxe de la balise VarDef
Un document XML utilisé pour une règle peut contenir une ou plusieurs balises VarDef. Imbriquez toujours la balise VarDef dans une balise AttributeValues.
Chaque balise VarDef définit un nom de variable et une valeur qui peuvent être référencés dans des règles à l'aide de la balise VarRef. Les définitions de variable disponibles lorsque vous référencez une variable (à l'aide de la balise VarRef) sont déterminées par le type d'objet et les hiérarchies de contextes qui sont en place. Pour obtenir des informations sur l'utilisation de ces hiérarchies par les règles, consultez la section Fusion de règles pour créer une règle composite.
Par exemple, supposons que vous ayez créé dans le contexte de site une variable pouvant être utilisée dans les règles définies pour le type d'objet wt.doc.WTDocument. Cette définition est disponible dans tous les contextes pour les règles configurées pour le type d'objet wt.doc.WTDocument et ses sous-types. En général, la définition de la même variable dans un contexte enfant du site ou associée à un sous-type de wt.doc.WTDocument a priorité sur la définition dans le contexte du site si l'objet auquel les règles sont appliquées se trouve dans le contexte enfant ou est associé à un sous-type.
La valeur d'une variable n'est pas calculée tant que le traitement d'un élément de la règle, faisant référence à la variable, n'est pas terminé. Pour référencer une variable définie à l'aide de la balise VarDef, utilisez la valeur spécifiée dans l'attribut id de la balise VarDef, dans l'attribut id de la balise VarRef. Le premier élément traité lorsque la règle est appliquée et qui contient une référence à la variable déclenche le calcul de celle-ci et son stockage dans le cache. Ensuite, la valeur dans le cache est utilisée pour chaque référence à la variable traitée durant l'application de la règle.
La syntaxe de la balise VarDef est la suivante :
<VarDef id="nom_de_variable"
algorithm="algorithme_de_valeur_par_défaut">
arguments_d'algorithme
</VarDef>
variable_name est le nom de la variable utilisée lors de la désignation de la variable dans la balise VarRef. Ce nom peut être n'importe quel nom XML valide, qui vous soit parlant.
L'exemple suivant définit la variable GeneratedNumber qui permet de générer un numéro pour les documents, afin que vous puissiez associer le nom du document au numéro généré. Pour utiliser cette variable lors de la création de documents, imbriquez le code XML dans la balise AttributeValues du type d'objet wt.doc.WTDocument :
<VarDef id="GeneratedNumber"
algorithm=”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
</VarDef>
* 
La valeur de la variable définie dans la balise VarDef ne peut pas être déduite du calcul d'une autre valeur dans la même règle. Par exemple, vous ne pouvez pas définir une variable GeneratedNumber pour l'article à partir de la valeur de l'attribut number définie par la balise AttrValue dans la même règle. Pour plus d'informations, reportez-vous à la section .
En outre, vous pouvez inclure des attributs XML facultatifs dans la balise VarDef pour :
définir la variable spécifiée comme définition absolue à utiliser dans la règle composite ;
ignorer la définition spécifiée lorsqu'elle est héritée du contexte parent.