Fonctionnalités de gestion des données > Gestion de structures d'article > Développement d'une logique de sélection avancée pour les modules configurables > Exemples et bonnes pratiques concernant la logique de sélection avancée > Expressions logiques courantes > Expressions conditionnelles
  
Expressions conditionnelles
Dans certaines situations, vous pouvez avoir besoin d'un paramètre ayant deux valeurs différentes en fonction d'une condition donnée. Par exemple, vous disposez d'une petite table dotée de roulettes pour la rendre facilement déplaçable. Toutefois, dans certaines situations, la table peut être équipée de deux roulettes à verrouillage, afin de pouvoir contrôler son déplacement plus facilement.
Bien que vous puissiez obtenir ce résultat à l'aide d'un tableau de cas, vous pouvez également utiliser une expression conditionnelle telle que :
numberStandardCasters == (useLockingCaster ? 2 : 4)
Cette expression signifie : Si useLockingCaster est vrai, alors numberStandardCasters a la valeur 2, sinon il a la valeur 4.
Dans cet exemple, numberStandardCasters est un paramètre d'entier utilisé pour définir le nombre de roulettes standard (sans verrouillage) de la table. Ce paramètre doit être défini à l'aide d'un type de nombre entier ou réel, puis affecté au lien de cas d'emploi entre l'article parent (dans ce cas, la petite table) et l'article enfant (dans ce cas, les roulettes standard) à l'aide du champ Option de quantité de l'onglet Composants de l'article parent.
Cet exemple utilise également le paramètre booléen useLockingCaster, dont la valeur est vrai si vous souhaitez disposer de roulettes verrouillables, et faux lorsque vous ne le souhaitez pas. Par conséquent, si vous souhaitez disposer de roulettes verrouillables, la valeur de useLockingCaster est vrai et la valeur de numberStandardCasters est égale à 2.
* 
Bien qu'une expression conditionnelle de ce type soit très puissante, elle ne peut pas être utilisée pour effectuer des affectations conditionnelles. Les expressions semblables aux suivantes ne sont pas prises en charge :
(useLockingCaster) ? legLength == 48 : legLength == 52