Fonctionnalités de gestion des données > Gestion de structures d'article > Fonctionnalités des Options et variantes Windchill > Filtrage d'une structure produit configurable à l'aide du filtre d'options > Evaluation des expressions durant le filtrage des options
  
Evaluation des expressions durant le filtrage des options
Lors du filtrage du lien de cas d'emploi, deux sortes d'expressions sont prises en compte : celles qui sont affectées au lien de cas d'emploi et celles qui sont affectées à l'article enfant de ce dernier. S'il existe une expression pour l'article enfant, celle-ci est toujours utilisée pour filtrer l'article enfant configurable. Si l'article ne peut pas être configuré, l'expression n'est prise en compte (et ne peut être affectée via l'interface utilisateur) que si la préférence Allow Assignment of Expressions to Non-Configurable Items est définie sur la valeur true.
Le lien de cas d'emploi est filtré si l'un de ces deux types d'expression (lorsque ces deux types sont présents) a pour valeur FALSE.
Evaluation d'expressions booléennes
Pendant le filtrage, le système évalue les expressions affectées en les comparant aux sélections effectuées dans le filtre d'options. Si certains choix sont sélectionnés pour une option, ces choix se voient affecter la valeur true ; les choix non sélectionnés sont associés à la valeur false. Ces valeurs sont remplacées dans l'expression et cette dernière est évaluée. L'évaluation en court-circuit d'une expression booléenne détermine la valeur de l'expression, même si certaines de ses variables ne sont pas définies. Prenons les exemples suivants :
Cas 1
L'expression est la suivante : RED && LARGE
Si la valeur de la variable RED ou LARGE correspond à FALSE, la valeur de l'expression entière est FALSE, quelle que soit la valeur de l'autre variable.
Cas 2
L'expression est la suivante : RED||LARGE
Si la valeur de la variable RED ou LARGE correspond à TRUE, la valeur de l'expression entière est TRUE, quelle que soit la valeur de l'autre variable.
Cas général
Ces exemples peuvent être étendus au cas général relatif aux expressions booléennes. En effet, ils peuvent être décomposés en conjonctions/disjonctions/négations imbriquées. Etudions cette expression :
(X || Y) && (Z && W) && (V || W)
Si la valeur de la variable Z est FALSE, alors l'expression booléenne dans son ensemble a pour valeur FALSE, quelles que soient les valeurs des variables X, Y, W et V.
Cas d'utilisation supplémentaires associés au filtrage
D'autres cas d'utilisation sont à prendre en compte lors du filtrage d'une structure configurable :
Une structure produit peut présenter des expressions de base et avancées affectées à différentes variantes de module. Le filtrage d'options se comporte comme suit :
Pour les expressions de base, le filtre tient compte de l'association des sélections sur l'élément et sur le lien de cas d'emploi. Si au moins une expression présente le statut d'évaluation VRAI, la variante de module n'est pas filtrée.
Avec les expressions avancées, seulement si les expressions de l'élément et du lien de cas d'emploi de cet élément doivent présenter le statut d'évaluation VRAI, la variante de module n'est pas filtrée.
Une expression est affectée au lien de cas d'emploi et aux occurrences de cette variante de module dans la structure produit configurée. Le filtre d'options commence par évaluer l'expression affectée au lien de cas d'emploi, puis traite l'expression affectée à ses occurrences, dans l'ordre suivant :
Si l'expression affectée présente le statut d'évaluation FAUX, la variante de module est filtrée, avec l'ensemble de ses occurrences.
Si l'expression affectée présente le statut d'évaluation VRAI, le filtre d'options évalue l'expression affectée aux occurrences. Si elle présente le statut d'évaluation FAUX, une occurrence est filtrée.