Funzionalità per la gestione dei dati > Gestione di strutture di parti > Sviluppo della logica di selezione avanzata per i moduli configurabili > Esempi e best practice di logica di selezione avanzata > Creazione di strutture di prodotto configurabili modulari > Progettazione di una struttura di prodotto a moduli
  
Progettazione di una struttura di prodotto a moduli
Molti prodotti presentano diversi sottosistemi con propri insiemi di elementi opzionali. In alcuni casi, le opzioni per ogni sottosistema vengono elaborate in modo indipendente dal sistema in una progressione logica. In altri casi, tuttavia, potrebbe essere necessario che le selezioni effettuate in un sottosistema influiscano sulle opzioni disponibili in altri sottosistemi.
Si consideri, ad esempio, un espositore di metallo disponibile in diversi modelli con varie opzioni di esposizione, rifilo e illuminazione. A seconda del modello di espositore selezionato, le opzioni disponibili per esposizione, rifilo e illuminazione possono cambiare.
Per una struttura di prodotto semplice con pochi moduli e un insieme limitato di opzioni, è relativamente semplice creare e testare una struttura di prodotto configurabile appropriata. Se la struttura di prodotto, invece, presenta cinque moduli, ciascuno con sei possibili opzioni tra cui scegliere, il numero totale di permutazioni (in questo caso 5 x 6 o 30) può essere enorme.
L'approccio consigliato consiste nell'organizzare la struttura di prodotto del modulo in moduli configurabili, come illustrato nella figura seguente:
In questo esempio, si supponga che l'espositore sia disponibile in cinque diversi modelli, da Model_01 a Model_05, e che alcune opzioni siano applicabili solo a determinati modelli, come illustrato nella tabella seguente:
Modello 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
Il passo successivo consiste nel definire gli elementi logici appropriati in modo modulare affinché ciascun modulo di opzione possa essere testato indipendentemente e quindi integrato nella struttura di prodotto completa. Si consideri, ad esempio, la logica per il modulo Trim Options. Questo modulo richiede quattro parametri, come descritto di seguito.
askModel
Stringa, parametro di input
Prompt = "(TRIM OPTIONS) Select the desired display case model"
Vincolo: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
"hide when driven" = true
useStandard
Parametro booleano non di input
Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Standard
useTwin
Parametro booleano non di input
Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Twin
useDeluxe
Parametro booleano non di input
Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Deluxe
Successivamente, è necessaria una tabella casi, ad esempio pickTrim, per controllare l'applicabilità delle opzioni di rifilo per ciascun modello di espositore, come illustrato nella tabella seguente:
Modello 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
Il passo successivo consiste nel definire gli elementi logici appropriati in modo modulare affinché ciascun modulo di opzione possa essere testato indipendentemente e quindi integrato nella struttura di prodotto completa. Si consideri, ad esempio, la logica per il modulo Trim Options. Questo modulo richiede quattro parametri, come descritto di seguito.
askModel
Stringa, parametro di input
Prompt = "(TRIM OPTIONS) Select the desired display case model"
Vincolo: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
"hide when driven" = true
useStandard
Parametro booleano non di input
Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Standard
useTwin
Parametro booleano non di input
Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Twin
useDeluxe
Parametro booleano non di input
Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Deluxe
Successivamente, è necessaria una tabella casi, ad esempio pickTrim, per controllare l'applicabilità delle opzioni di rifilo per ciascun modello di espositore, come illustrato nella tabella seguente:
askModel
useStandard
useTwin
useDeluxe
Model_01
no
Model_02
no
Model_03
Model_04
Model_05
Queste espressioni logiche consentono di testare il modulo Trim Options in modo indipendente per assicurarsi che tutto funzioni come previsto.
* 
Se si utilizza lo stesso approccio per ciascun modulo, tuttavia, all'utente viene chiesto ripetutamente quale modello di Display Case desidera, situazione non auspicabile. Di conseguenza, dopo aver creato tutti i moduli e aver verificato che funzionino correttamente, è necessario integrarli.
Per integrare i moduli, attenersi alla procedura descritta di seguito.
1. Creare un parametro adatto per determinare il modello all'interno del modulo configurabile Display Case come segue:
askModel - Stringa, parametro obbligatorio di input
Prompt = "Select the desired display case model"
Vincolo: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
2. Stabilire un'equivalenza tra askModel nel modulo configurabile Display Case e tutti i relativi discendenti.
3. Rimuovere i vincoli per ciascun parametro askModel in ciascun modulo di opzione.
* 
La rimozione di questi vincoli è necessaria per evitare conflitti tra il modulo configurabile di livello superiore Display Case e i moduli configurabili che comprendono ogni modulo.
4. Verificare la struttura di prodotto configurabile completata. Poiché è già stato testato ogni modulo, è sufficiente verificare che il valore di askModel immesso dall'utente nel modulo configurabile di livello superiore Display Case sia stato copiato correttamente in ciascuno dei moduli.
* 
Se si visualizza l'albero della distinta base nella pagina Imposta parametri della finestra Configura e si utilizza il pulsante Applica, è possibile verificare rapidamente se il valore corrente di askModel nel modulo configurabile Display Case è stato copiato in ciascuno dei moduli.