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 > Sélection d'options pour un module configurable > Sélection d'une option parmi un ensemble d'options
  
Sélection d'une option parmi un ensemble d'options
Vous pouvez vouloir sélectionner une option unique parmi un ensemble d'options possibles en fonction de la réponse de l'utilisateur. Toutefois, lorsque le nombre d'options est très élevé, il peut être difficile d'organiser ou de gérer un seul tableau de cas comportant une colonne allouée pour chaque option.
Prenons l'exemple d'un plateau de table en bois disponible dans un très grand nombre de matières et de finitions, telles qu'Oak Veneer, Solid Oak, Solid Oak with Maple Trim, Maple Veneer, Solid Maple, Solid Maple with Oak Trim, Cherry Veneer, Solid Cherry et Solid Cherry with Maple Trim.
Pour faciliter la gestion de ces informations, vous pouvez introduire un paramètre intermédiaire afin de relier le tableau de cas aux paramètres booléens qui déterminent le sous-assemblage facultatif à inclure. Avec cette approche, la requête de l'utilisateur est capturée dans un paramètre d'entrée qui est évalué par un tableau de cas d'options valides. Les résultats, ou la sortie, du tableau de cas sont capturés dans un seul paramètre. Pour finir, la valeur de chaque booléen est déterminée par l'évaluation de ce paramètre intermédiaire.
Pour sélectionner une option parmi un ensemble d'options :
1. Créez un module configurable.
2. Attachez un article enfant pour chacune des options de finition appropriées.
3. Ajoutez au module configurable un paramètre d'entrée de type chaîne ; par exemple, askFinish.
Définissez une valeur d'invite appropriée pour le paramètre de chaîne.
Définissez une liste de contraintes pour le paramètre de chaîne avec les valeurs suivantes :
Oak Veneer
Solid Oak
Solid Oak with Maple Trim
4. Définissez un paramètre non-entrée de type chaîne utilisé pour mettre en correspondance la réponse de l'utilisateur avec le sous-assemblage approprié ; par exemple, pickFinish. Ce paramètre joue le rôle d'intermédiaire entre le tableau de cas et les paramètres booléens.
5. Ajoutez au module configurable un paramètre non-entrée de type booléen pour chacune des options appropriées. Par exemple :
useOakVeneer : pour représenter l'utilisation de la matière Oak Veneer
useSolidOak : pour représenter l'utilisation de la matière Solid Oak
useSolidOakMaple : pour représenter l'utilisation de la matière Solid Oak with Maple Trim
6. Ajoutez à chaque paramètre booléen une expression par défaut qui évalue le paramètre intermédiaire. Par exemple :
pickFinish.equals(“OakVeneer”) : pour le booléen Oak Veneer
pickFinish.equals(“SolidOak”) : pour le booléen Solid Oak
pickFinish.equals(“SolidOakMaple”) : pour le booléen Solid Oak with Maple Trim
7. Ajoutez le paramètre booléen à Option d'inclusion de ce module configurable pour l'article enfant approprié pour chaque option, comme suit :
useOakVeneer : pour le sous-assemblage de finition Oak Veneer
useSolidOak : pour le sous-assemblage de finition Solid Oak
useSolidOakMaple : pour le sous-assemblage de finition Solid Oak with Maple Trim
8. Définissez une contrainte de tableau de cas pour mapper les réponses de l'utilisateur sur la valeur correcte du paramètre intermédiaire. Prenons l'exemple de la contrainte de tableau de cas pickFinish.
askFinish
pickFinish
Oak Veneer
Oak Veneer
Solid Oak
Solid Oak
Solid Oak with Maple Trim
SolidOakMaple
Maple Veneer
Maple Veneer
Solid Maple
Solid Maple
Solid Maple with Oak Trim
SolidMapleOak
* 
Pour que cette approche fonctionne correctement, toutes les valeurs de la colonne pickFinish du tableau de cas doivent être uniques.
Dans cette approche, une fois que l'utilisateur a sélectionné une valeur spécifique, telle qu'Oak Veneer, le tableau de cas attribue la valeur OakVeneer au paramètre pickFinish. Le paramètre booléen useOakVeneer évalue son expression par défaut {pickFinish.equals(“OakVeneer”)} comme étant vraie, et le sous-assemblage Oak Veneer est inclus dans la structure produit de variante.