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 > Algorithmes de règle > Valeur par défaut générale et exemples d'algorithmes de contrainte > Exemples d'algorithme de chaîne et d'index
  
Exemples d'algorithme de chaîne et d'index
L'exemple suivant est un fragment de code XML qui utilise l'algorithme de valeur par défaut Substring pour spécifier que l'attribut name correspond aux cinq premiers caractères de l'attribut number.
<AttrValue id=”name” algorithm=”wt.rule.algorithm.Substring”>
<Attr id=”number”/>
<Arg>0</Arg>
<Arg>5</Arg>
</AttrValue>
L'exemple suivant est un fragment de code XML qui utilise les algorithmes Substring et IndexOf pour spécifier que le nom d'un document CAO correspond à son nom CAO sans l'extension :
<AttrValue id="name" algorithm="wt.rule.algorithm.Substring">
<Attr id="CADName"/>
<Arg>0</Arg>
<Value algorithm="wt.rule.algorithm.IndexOf">
<Attr id="CADName"/>
<Arg>.</Arg>
</Value>
</AttrValue>
Les arguments utilisés dans cet exemple sont les suivants :
Le premier argument utilise la balise Attr pour identifier la chaîne d'origine (en l'occurrence, un attribut).
Le deuxième argument utilise la balise Arg pour identifier l'index du premier caractère de la sous-chaîne, où 0 est l'index du premier caractère de la chaîne d'origine.
Le troisième argument utilise la balise Value pour déterminer l'index du caractère où la sous-chaîne s'arrête. La balise Value contient l'algorithme IndexOf qui requiert deux arguments supplémentaires pour créer l'index nécessaire.
Cet exemple suppose que le nom du document CAO ne contient qu'un point avant l'extension.
Si le nom d'un document CAO est susceptible de contenir plusieurs points, utilisez l'algorithme LastIndexOf au lieu d'IndexOf pour couper la chaîne de caractères après le dernier point, comme suit :
<AttrValue id="name" algorithm="wt.rule.algorithm.Substring">
<Attr id="CADName"/>
<Arg>0</Arg>
<Value algorithm="wt.rule.algorithm.LastIndexOf">
<Attr id="CADName"/>
<Arg>.</Arg>
</Value>
</AttrValue>