Début du domaine contenu

Documentation syntaxe Contraintes : restrictions Localiser le document dans l'arbre de navigation

Dans la section RESTRICTIONS d’une contrainte, vous saisissez les contrôles de cohérence qui doivent être effectués par la contrainte. La contrainte signale une incohérence si la section « restrictions » n’est pas vérifiée.

Note

Vous ne pouvez pas saisir d’expressions non déclaratives, telles que NOT SPECIFIED (voir Liens déclaratifs).

Exemple :

Vous pouvez utiliser une contrainte pour déterminer que le pilote WIN98 d’une imprimante doit être sélectionné si le système d’exploitation WIN98 est sélectionné pour un PC :

OBJECTS:
(300) PC
where SE = SYSTEME_EXPLOITATION,
(300) IMPRIMANTE
where PI = PILOTE_IMPRIMANTE

RESTRICTIONS:
PD =
' Pilote_WIN98 ' if SE eq ' WIN98 '

Vous pouvez également saisir plusieurs restrictions. Vous utilisez une virgule pour séparer les différentes restrictions. Il existe une relation AND entre les restrictions. Les relations OR ne sont pas possibles.

Exemple :

RESTRICTIONS:
PI =
' Pilote_WIN98 ' if SE eq ' WIN98 ' ,
PI =
' Pilote_OS/2 ' if SE eq ' OS/2 ' ,
PI =
' Pilote_NT ' if SE eq ' NT ' .

False

Vous pouvez aussi utiliser l’expression FALSE comme restriction. Cela signifie que les situations décrites dans la section condition sont incohérentes. Dans ce cas, le système génère un message d’incohérence.

Exemple :

OBJECTS:
PC IS_A (300) PC

CONDITION:
PC.UC =
' PII ' and PC.ACCESSOIRES = ' RIMM 128Mo ' .

RESTRICTIONS:
FALSE.

Cette contrainte signale une incohérence dès que la valeur « PII » est affectée à l’UC et que la valeur « RIMM 128Mo » est affectée à Accessoires.

Appels de table

Dans la section RESTRICTIONS d’une contrainte, vous pouvez aussi appeler des tables préalablement définies. Une contrainte est donc un outil puissant, puisque vous pouvez y remplacer un grand nombre de conditions préalables par un appel de table.

Dans les contraintes, vous pouvez utiliser des tables pour assurer la cohérence des valeurs affectées ou pour déduire des valeurs. Pour les caractéristiques avec restrictions, vous pouvez aussi utiliser une table pour restreindre de manière dynamique les valeurs autorisées d’une caractéristique. Ainsi, un appel de table peut servir, par exemple, à définir les combinaisons de valeurs pour le boîtier et le disque dur d’un PC. Si vous faites référence à une table dans une contrainte, seules les combinaisons de valeurs définies dans la table sont valables.

Définition de valeurs dans la section restrictions

Dans certains cas, il est possible de déduire des valeurs à partir des saisies effectuées dans la section restrictions, sans devoir passer par la section INFERENCES. C’est le cas pour les équations dont la partie gauche contient exactement une variable pour une caractéristique. La caractéristique ne peut pas autoriser les restrictions.

Exemple

Tension = Résistance * Courant

UC = 'PII'

Dans le premier exemple, la tension d’un circuit est déduite automatiquement à partir de l’équation sans qu’il soit nécessaire d’effectuer une saisie sous INFERENCES. Dans le deuxième exemple, la valeur « PII » est automatiquement définie pour l’UC dans la configuration.

 

 

 

Fin du domaine contenu