Administration spécialisée > Configuration de votre environnement Windchill > Règles métier > Règles métier disponibles > Règle d'attribut
  
Règle d'attribut
Une règle d'attribut sert à confirmer que les attributs définis respectent certaines conditions. Le type d'objet est la seule donnée requise pour la configuration d'une règle d'attribut. Le type d'objet doit être wt.fc.Persistable. Par exemple, com.ptc.Waiver est un sous-type de wt.change2.WTVariance.
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
</configs>
Vous pouvez définir le nom du type ou la valeur texte du type à l'aide du nom externe du type (com.ptc.Waiver ou WCTYPE|wt.change2.WTVariance|com.ptc.Waiver)
Dans la règle d'attribut, vous pouvez exclure certains sous-types des types d'objet définis. Par exemple, la configuration de la règle d'attribut suivante pour le type d'objet WTVariance exclut l'évaluation des variations de type com.ptc.Waiver et com.ptc.Deviation.
<configs>
<config name="objectType" value="wt.change2.WTVariance "></config>
<config name="excludedType" value="com.ptc.Waiver"></config>
<config name="excludedType" value="com.ptc.Deviation"></config>
</configs>
Pour configurer une condition valide par rapport à un attribut de type d'objet spécifié, le nom de la configuration doit correspondre à Nom d'attribut et la valeur, à Condition. La configuration d'attribut suivante vérifie si la quantité de com.ptc.Waiver est adéquate (entre 10 et 100).
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
<config name="approvedQuantity" value="[10..100]"></config>
</configs>
Dans l'exemple suivant, le poids est le nom interne d'un attribut global d'un sous-type d'article.
<configs>
<config name="objectType" value="com.ptc.SubTypePart"></config>
<config name="weight" value="<=100"></config>
</configs>
Le tableau suivant contient les opérations et les types d'objet pris en charge pour la configuration des règles d'attribut.
Opérateur
Types de valeur
Description
Exemples de conditions de charge
>, >=, <, <=
Long, chaîne, date, horodatage, nombre décimal, nombre décimal avec unité
Confirme que la valeur de l'attribut de l'objet est supérieure, supérieure ou égale, inférieure, ou inférieure ou égale à la valeur indiquée.
Les opérateurs sont des caractères réservés dans la charge d'importation. L'opérateur inférieur à (<) doit être indiqué par les caractères "&lt;" et l'opérateur supérieur à (>) par les caractères "&gt;".
&gt;2012-01-12 00:00:00=&lt;=20.002&gt;=10
[0..10]
Long, chaîne, date, horodatage, nombre décimal, nombre décimal avec unité
Confirme que la valeur de l'attribut de l'objet est dans la plage appropriée. Si aucune valeur minimale n'est indiquée pour la plage, la condition équivaut à l'opérateur "inférieur ou égal à". Si aucune valeur maximale n'est indiquée pour la plage, la condition équivaut à l'opérateur "supérieur ou égal à".
[-10.09..10.09][2012-01-12 00:00:00..2012-02-12 00:00:00][..100][0..]
=, !=
Booléen, long, chaîne, date, horodatage, nombre décimal, nombre décimal avec unité
Confirme que la valeur de l'attribut de l'objet est ou n'est pas la valeur indiquée.
L'opérateur ! est un caractère réservé dans la charge d'importation. Il doit être indiqué par "#33;".
=true#33;=2012-02-12 00:00:00=10.09
[A,B]
Booléen, long, chaîne, date, horodatage, nombre décimal, nombre décimal avec unité
Confirme que la valeur de l'attribut de l'objet est dans la liste de valeurs.
[true][2012-02-01 00:00:00,2012-02-15 00:00:00,2012-02-30 00:00:00][MAJOR,CRITICAL][10.01,10.02][10,100,1000]
SET
Booléen, long, chaîne, date, horodatage, nombre décimal, nombre décimal avec unité
Confirme que la valeur de l'attribut de l'objet n'est pas nulle. Seul le mot-clé SET est nécessaire à la définition de l'opération.
SET
NOT_SET
Booléen, long, chaîne, date, horodatage, nombre décimal, nombre décimal avec unité
Confirme que la valeur de l'attribut de l'objet est nulle. Seul le mot-clé NOT_SET est nécessaire à la définition de l'opération.
NOT_SET
EQUALS
Chaîne
Confirme que la valeur de l'attribut de l'objet est la chaîne indiquée.
EQUALS(MAJOR)
NOT_EQUALS
Chaîne
Confirme que la valeur de l'attribut de l'objet ne correspond pas à la chaîne indiquée.
NOT_EQUALS(MAJOR)
BEGINSWITH
Chaîne
Confirme que la valeur de l'attribut de l'objet commence par la chaîne indiquée.
BEGINSWITH(PN)
NOT_BEGINSWITH
Chaîne
Confirme que la valeur de l'attribut de l'objet ne commence pas par la chaîne indiquée.
NOT_BEGINSWITH(PN)
ENDSWITH
Chaîne
Confirme que la valeur de l'attribut de l'objet termine par la chaîne indiquée.
ENDSWITH(0)
NOT_ENDSWITH
Chaîne
Confirme que la valeur de l'attribut de l'objet ne se termine pas par la chaîne indiquée.
NOT_ENDSWITH(0)
CONTAINS
Chaîne
Confirme que la valeur de l'attribut de l'objet contient la chaîne indiquée.
CONTAINS(PN0)
NOT_CONTAINS
Chaîne
Confirme que la valeur d'attribut de l'objet ne contient pas la chaîne indiquée.
NOT_CONTAINS(PN0)
LENGTH
Chaîne
Confirme que la longueur de la valeur de l'attribut de l'objet est dans la plage appropriée.
LENGTH(0..40)LENGTH(0..)LENGTH(..40)
* 
La langue du système est utilisée pour définir le format des dates et de l'horodatage de la condition de l'attribut.
Exemple
Supposons que vous avez un sous-type spécifique d'article dont l'attribut nommé Poids représente la masse de l'article. Avant d'officialiser les articles ayant un poids, vous souhaitez vous assurer que cet attribut est défini sur un chiffre raisonnable. Pour cela, définissez une règle métier permettant de vérifier que l'attribut de poids est compris dans la plage 1-100.
Règle métier définie :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRuleSet SYSTEM "standardX20.dtd">
<BusinessRuleSet>
<ObjectID><localId>wt.businessRules.BusinessRuleSet:45347</localId>
</ObjectID>

<objectContainerPath>/wt.inf.container.OrgContainer=
BusinessRulesTestOrganization/wt.pdmlink.PDMLinkProduct=
BusinessRulesTestProduct</objectContainerPath>
<key>CHANGEABLE_PRE_RELEASE</key>
<name>Test_Changeable_ReleaseRuleSet</name>
<description>To test basic Attribute RuleSet Validation</description>
<enabled>true</enabled>
<overridable>true</overridable>
<updateIfExists>true</updateIfExists>
</BusinessRuleSet>
Règle métier :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRule SYSTEM "standardX20.dtd">
<BusinessRule>
<ObjectID><localId>wt.businessRules.BusinessRule:168926</localId></ObjectID>
<objectContainerPath>/wt.inf.container.OrgContainer=
BusinessRulesTestOrganization/wt.pdmlink.PDMLinkProduct=
BusinessRulesTestProduct</objectContainerPath>
<key>PART_ATTRIBUTE_RULE</key>
<selector>ATTRIBUTE_RULE</selector>
<name>Test Attribute Rule</name>
<description>Test Attribute Rule</description>
<enabled>true</enabled>
<updateIfExists>true</updateIfExists>
<configs>
<config name="objectType" value="wt.part.AttributeRulePart"></config>
<config name="weight" value="[0..100]"></config>
</configs>
</BusinessRule>
Lien de règle métier :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRuleLink SYSTEM "standardX20.dtd">
<BusinessRuleLink>
<ObjectID><localId>wt.businessRules.BusinessRuleLink:168919</localId>
</ObjectID>

<ruleSet><ObjectReference><localID>wt.businessRules.BusinessRuleSet:45347
</localId></ObjectReference></ruleSet>

<rule><ObjectReference><localID>wt.businessRules.BusinessRule:168926
</localId></ObjectReference></rule>
<blockNumber>1</blockNumber>
<updateIfExists>true</updateIfExists>
</BuisnessRuleLink>