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 > Création de structures produit configurables modulaires > Conception d'une structure produit modulaire
  
Conception d'une structure produit modulaire
De nombreux produits comportent différents sous-systèmes comprenant leurs propres ensembles d'éléments facultatifs. Dans certains cas, les options de chaque sous-système sont traitées indépendamment par le système dans un ordre logique. Toutefois, dans d'autres cas, il peut être nécessaire que les options disponibles dans un sous-système soient affectées par les sélections effectuées dans d'autres sous-systèmes.
Prenons l'exemple d'un présentoir métallique disponible dans différents modèles avec diverses options de présentation, d'habillage et d'éclairage. Les options disponibles pour les éléments de présentation, d'habillage et d'éclairage peuvent varier selon le modèle de présentoir sélectionné.
Dans le cas d'une structure produit simple ne comportant que quelques modules et qu'un ensemble limité d'options, il est relativement facile de créer et de tester une structure produit configurable appropriée. En revanche, si la structure produit comporte au moins cinq modules, possédant chacun six options possibles, le nombre total de permutations (5 x 6 ou 30, dans ce cas) peut être très difficile à gérer.
L'approche suggérée consiste à organiser la structure produit en modules configurables, comme illustré dans la figure suivante.
Dans cet exemple, supposons que le présentoir soit disponible dans cinq modèles différents, Model_01 à Model_05, et que certaines options ne s'appliquent qu'à certains modèles, comme indiqué dans le tableau ci-après.
Modèle de Display Case
Trim Options
Lighting Options
Display Options
Model_01
Twin Standard
Single Double
Shelf, Ventilated Shelf, Solid
Model_02
Standard Deluxe
Double, Triple
Shelf, Ventilated Shelf, Solid
Model_03
Twin Standard Deluxe
Single Double Triple
Shelf, Ventilated Rack
Model_04
Twin Standard Deluxe
Single Double Triple
Shelf, Ventilated Shelf, Solid Rack
Model_05
Twin Standard Deluxe
Single Double Triple
Shelf, Ventilated Shelf, Solid Rack
L'étape suivante consiste à définir les éléments logiques appropriés de manière modulaire afin que chaque module d'options puisse être testé indépendamment, puis intégré dans la structure produit complète. Par exemple, examinons la logique du module Trim Options. Ce module requiert les quatre paramètres suivants :
askModel
Paramètre d'entrée de type chaîne
Invite = "(TRIM OPTIONS) Select the desired display case model"
Contrainte : "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
"hide when driven" = true
useStandard
Paramètre non-entrée de type booléen
Ajouté à l'option d'inclusion sous l'onglet Composants du module configurable Display Case pour l'article Bumper, Standard
useTwin
Paramètre non-entrée de type booléen
Ajouté à l'option d'inclusion sous l'onglet Composants du module configurable Display Case pour l'article Bumper, Twin
useDeluxe
Paramètre non-entrée de type booléen
Ajouté à l'option d'inclusion sous l'onglet Composants du module configurable Display Case pour l'article Bumper, Deluxe
Ensuite, vous avez besoin d'un tableau de cas, tel que pickTrim, pour contrôler l'applicabilité des options d'habillage pour chaque modèle de présentoir, comme indiqué dans le tableau suivant.
Modèle de Display Case
Trim Options
Lighting Options
Display Options
Model_03
TwinStandardDeluxe
SingleDoubleTriple
Shelf, Ventilated Rack
Model_04
TwinStandardDeluxe
SingleDoubleTriple
Shelf, Ventilated Shelf, Solid Rack
Model_05
TwinStandardDeluxe
SingleDoubleTriple
Shelf, Ventilated Shelf, Solid Rack
L'étape suivante consiste à définir les éléments logiques appropriés de manière modulaire afin que chaque module d'options puisse être testé indépendamment, puis intégré dans la structure produit complète. Par exemple, examinons la logique du module Trim Options. Ce module requiert les quatre paramètres suivants :
askModel
Paramètre d'entrée de type chaîne
Invite = "(TRIM OPTIONS) Select the desired display case model"
Contrainte : "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
"hide when driven" = true
useStandard
Paramètre non-entrée de type booléen
Ajouté à l'option d'inclusion sous l'onglet Composants du module configurable Display Case pour l'article Bumper, Standard
useTwin
Paramètre non-entrée de type booléen
Ajouté à l'option d'inclusion sous l'onglet Composants du module configurable Display Case pour l'article Bumper, Twin
useDeluxe
Paramètre non-entrée de type booléen
Ajouté à l'option d'inclusion sous l'onglet Composants du module configurable Display Case pour l'article Bumper, Deluxe
Ensuite, vous avez besoin d'un tableau de cas, tel que pickTrim, pour contrôler l'applicabilité des options d'habillage pour chaque modèle de présentoir, comme indiqué dans le tableau suivant.
askModel
useStandard
useTwin
useDeluxe
Model_01
yes
yes
no
Model_02
yes
no
yes
Model_03
yes
yes
yes
Model_04
yes
yes
yes
Model_05
yes
yes
yes
Ces expressions logiques vous permettent de tester le module Trim Options de manière indépendante, afin de vous assurer que tout fonctionne comme vous le souhaitez.
* 
Toutefois, si vous utilisez la même approche pour chacun des modules, l'utilisateur est chaque fois invité à indiquer le modèle de Display Case qui l'intéresse, ce qui n'est pas souhaitable. Par conséquent, après avoir créé chacun des modules et vérifié leur bon fonctionnement, vous devez les intégrer les uns aux autres.
Pour intégrer les modules :
1. Créez un paramètre approprié pour déterminer le modèle dans le module configurable Display Case comme suit :
askModel : paramètre d'entrée obligatoire de type chaîne
Invite = "Select the desired display case model"
Contrainte : "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
2. Etablissez une équivalence entre askModel dans le module configurable Display Case et tous ses descendants.
3. Supprimez les contraintes pour chaque paramètre askModel dans chacun des modules d'options.
* 
La suppression de ces contraintes est nécessaire pour éviter les conflits entre le module configurable de niveau supérieur Display Case et les modules configurables qui composent chaque module.
4. Testez la structure produit configurable terminée. Etant donné que vous avez déjà testé chacun des modules, il vous suffit de vérifier que la valeur du paramètre askModel saisie par l'utilisateur dans le module configurable de niveau supérieur Display Case est correctement copiée dans chacun des modules.
* 
Si vous affichez l'arbre de la nomenclature dans la page Définir les paramètres de la fenêtre Configurer et que vous utilisez le bouton Appliquer, vous pouvez rapidement savoir si la valeur actuelle d'askModel dans le module configurable Display Case a été copiée dans chacun des modules.