Funciones de gestión de datos > Gestión de estructuras de artículos > Desarrollo de lógica de selección avanzada para módulos configurables > Ejemplos y prácticas adecuadas de la lógica de selección avanzada > Selección de opciones para un módulo configurable > Selección de una opción de un conjunto de varias opciones
  
Selección de una opción de un conjunto de varias opciones
Es posible que desee seleccionar una única opción de un conjunto de varias opciones posibles en función de la respuesta del usuario. Sin embargo, puede haber tantas opciones que una sola tabla de casos con una columna asignada para cada opción pueda ser difícil de organizar o mantener.
Por ejemplo, es posible que la parte superior de la mesa de madera esté disponible en un gran número de materiales y acabados, tales como Oak Veneer, Solid Oak, Solid Oak with Maple Trim, Maple Veneer, Solid Maple, Solid Maple with Oak Trim, Cherry Veneer, Solid Cherry y Solid Cherry with Maple Trim.
Para facilitar la gestión de esta información, se puede introducir un parámetro intermedio para conectar la tabla de casos con los parámetros booleanos que determinan el subconjunto opcional que se debe incluir. Con este enfoque, la solicitud del usuario se captura en un parámetro de entrada que se evalúa en una tabla de casos de opciones válidas. Los resultados, o la salida, de la tabla de casos se capturan en un solo parámetro. Por último, el valor de cada booleano se determina mediante la evaluación de este parámetro intermedio.
Para seleccionar una opción de un conjunto de varias opciones:
1. Cree un módulo configurable.
2. Adjunte un artículo hijo para cada una de las opciones de acabado pertinentes.
3. Añada un parámetro de entrada de cadena al módulo configurable; por ejemplo, askFinish.
Defina un valor de indicador adecuado para el parámetro de cadena.
Defina una lista de restricciones para el parámetro de cadena con estos valores:
Oak Veneer
Solid Oak
Solid Oak with Maple Trim
4. Defina un parámetro de cadena que no sea de entrada y que se utilice para hacer coincidir la respuesta del usuario con el subconjunto correcto; por ejemplo, pickFinish. Este parámetro funciona como un intermediario entre la tabla de casos y los parámetros booleanos.
5. Añada un parámetro booleano que no sea de entrada al módulo configurable para cada una de las opciones pertinentes. Por ejemplo:
useOakVeneer: permite representar el uso del material Oak Veneer
useSolidOak: permite representar el uso del material Solid Oak
useSolidOakMaple: permite representar el uso del material Solid Oak with Maple Trim
6. Añada una expresión por defecto a cada parámetro booleano que evalúe el parámetro intermediario. Por ejemplo:
pickFinish.equals(“OakVeneer”): para el valor booleano Oak Veneer
pickFinish.equals(“SolidOak”): para el valor booleano Solid Oak
pickFinish.equals(“SolidOakMaple”): para el valor booleano Solid Oak with Maple Trim
7. Añada el parámetro booleano a la Opción de inclusión de este módulo configurable para el artículo hijo pertinente de cada opción, tal como se indica a continuación:
useOakVeneer: para el subconjunto de acabado Oak Veneer
useSolidOak: para el subconjunto de acabado Solid Oak
useSolidOakMaple: para el subconjunto de acabado Solid Oak with Maple Trim
8. Establezca una restricción de tabla de casos para asignar las respuestas del usuario al valor correcto del parámetro intermediario. Por ejemplo, considere la restricción de la tabla de casos 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
* 
Para que este enfoque funcione correctamente, todos los valores de la columna pickFinish de la tabla de casos deben ser únicos.
En este enfoque, después de que el usuario seleccione un valor concreto, como Oak Veneer, la tabla de casos asigna el valor OakVeneer al parámetro pickFinish. El parámetro booleano useOakVeneer evalúa su expresión por defecto {pickFinish.equals(“OakVeneer”)} como verdadera y el subconjunto de Oak Veneer se incluye en la estructura del producto de variante.