Impostazione Configuratore di Prodotto | |||
|
Nome programma: BSCPIMCO.DLL
Moduli richiesti: Config. su distinta neutra
Questo programma permette di gestire i configuratori di prodotto.
Dopo una prima schermata iniziale in cui viene chiesto di indicare il codice di un articolo a cui intestare un nuovo configuratore (se si sceglie di creare un nuovo configuratore) oppure viene chiesto di indicare il codice di un articolo al quale è già intestato un configuratore (se si sceglie di visualizzare un configuratore già esistente), si accede alla finestra principale del programma (quella predisposta alla gestione del configuratore stesso).
NOTA 1
è importante sottolineare che per poter avere un configuratore agganciato, un articolo deve essere in anagrafica un "P.F./S.L. Neutro" oppure una "M.P. Neutra".
Tale finestra si compone sul lato sinistro di una struttura ad albero (del tutto analoga a quella, a cui siamo abituati, del file system) che permette di rendere conto in ogni momento, navigando attraverso di essa come si è soliti fare, della sequenza di "domande" e "risposte" a cui sarà necessario rispondere per poter configurare un determinato prodotto.
NOTA 2
Nel nostro configuratore una "domanda" (rappresentata nella struttura ad albero da una cartella gialla) sarà per noi un "insieme" (o "casella-insieme"), mentre una "risposta" (rappresentata nella struttura ad albero da un foglio bianco) sarà per noi una "casella" (o "casella semplice").
Attenzione, poiché è possibile che una "risposta" sia allo stesso tempo anche una "domanda", la struttura ad albero può essere costituita da più livelli di domande e risposte, uno innestato dentro l'altro.
è importante sottolineare che si può arrivare fino a 6 livelli successivi di domande e risposte.
Sul lato destro in basso viene invece visualizzata una griglia, il cui contenuto cambia ogni qual volta che muovendosi nell'albero si seleziona un particolare insieme, e che mostra le caselle costituenti la totalità delle risposte possibili a fronte della domanda selezionata.
Sul lato destro in alto è invece visualizzato un riquadro con le caratteristiche principali della casella selezionata in quel momento nell'albero.
Si procede ora alla spiegazione degli attributi impostabili a livello di singola casella:
Id. Casella
Identificativo numerico univoco della singola casella. Viene gestito dall'applicazione.
Posiz.
Permette di cambiare l'ordinamento delle caselle nella struttura del configuratore; tale ordinamento non sarebbe altrimenti manipolabile da parte dell'utente essendo vincolato al solo attributo "Id. Casella"
Stringa Raggr.
Permette di effettuare raggruppamenti logici fra caselle diverse.
Cod. Casella
Identificativo alfanumerico della singola casella. Tale attributo può anche non essere indicato, ma qualora lo sia deve essere assolutamente univoco all'interno del configuratore.
Questo vincolo è legato al fatto che tale "Cod. Casella" sarà utilizzato per riferirsi ad una determinata casella
e su questo quindi non dovrà esserci ambiguità.
Descr. Casella
è la descrizione della casella che si sta inserendo.
Si tratta di un attributo obbligatorio.
Descr. Ridotta
è una descrizione più sintetica della casella che si sta inserendo.
Insieme
Stabilisce se la casella costituisce una domanda (ed è quindi una casella-insieme) che avrà quindi un certo numero di risposte oppure se si tratta di una risposta ad una domanda (ed è quindi una casella semplice).
Tipo Insieme
Permette di stabilire un importante attributo per gli "insiemi" (altresì detti "caselle-insieme").
Un "insieme" si dirà "a sottocaselle alternative" qualora le caselle costituenti le possibili risposte alla domanda che tale insieme rappresenta, siano alternative:
quindi una risposta deve essere data, ma una sola risposta è possibile.
Es:
Colore
Giallo
Rosso
Verde
Il colore può essere o giallo o rosso o verde! Una risposta la devo dare, ma deve essere unica.
Un "insieme" si dirà "a sottocaselle multiple" qualora le caselle costituenti le possibili risposte alla domanda che tale insieme rappresenta, non siano alternative fra di loro ma costituiscano invece delle risposte a caratteristiche diverse che la domanda richiede:
quindi una risposta deve essere data, ma più risposte sono possibili.
Es:
Barra
Altezza
Lunghezza
Larghezza
Per la barra dovrò indicare sia l'altezza, che la lunghezza, che la larghezza! Devo dare tre risposte.
Un "insieme" si dirà "a sottocaselle facoltative" nelle stesse condizioni del caso di insieme a "sotto-caselle multiple", ma con la differenza che può non essere data alcuna risposta.
Es:
Optional
Climatizzatore
Airbag
Autoradio
Io potrei decidere di non volere il climatizzatore, di non volere l'airbag, di non volere l'autoradio.
In questo caso posso anche non dare risposte alla domanda.
RIEPILOGANDO:
"Insieme a caselle alternative": 1 ed 1 sola risposta/casella selezionabile.
"Insieme a caselle multiple": 1 o più risposte/caselle selezionabili.
"Insieme a caselle facoltative": 0 o più risposte/caselle selezionabili.
Obbligatorio
Indica che la casella è obbligatoria. In fase di configurazione tale casella dovrà essere selezionata.
Testo
Indica che in fase di configurazione se si desidera selezionare quella casella, sarà necessario indicare del testo aggiuntivo.
Prezzo
Indica che in fase di configurazione se si desidera selezionare quella casella, sarà necessario indicare un prezzo.
Valore
Indica che in fase di configurazione se si desidera selezionare quella casella, sarà necessario indicare un valore.
Valore predefinito
Per le caselle con obbligo di indicazione di un valore affinchè siano selezionabili, è possibile indicare in questo attributo un valore numerico; esso sarà automaticamente proposto come valore numerico per quella casella al momento della creazione di una nuova configurazione.
Default
Indicando che una casella è di default, in fase di creazione di un nuovo prodotto a partire da questo configuratore, tale casella risulterà automaticamente selezionata.
Note
Si possono introdurre delle note particolari per ogni insieme/casella facente parte del configuratore.
Data inizio/fine validità
Sono le date di inizio e di fine validità per quella casella all'interno del configuratore.
Al momento in cui si andrà a configurare un prodotto sulla base di questo configuratore, l'utente potrà
vedere (e quindi selezionare) solo le caselle valide alla data che stabilirà di dare come data di inizio validità per il prodotto configurato.
NOTA 3
Tutte le caselle che, alla data di sistema, risulteranno scadute, verranno mostrate in griglia evidenziate in grigio.
Codice casella corrispondente di livello inferiore
Questa casella deve essere obbligatoriamente indicata in presenza di multi-istanza di un oggetto all'interno dello stesso configuratore.
Mentre il Codice Casella deve essere univoco all'interno dello stesso configuratore, il Codice casella corrispondente di livello inferiore può essere lo stesso a fronte di codici casella diversi fra loro, ciò è legato al fatto che caselle diverse di un configuratore, corrispondono alla stessa casella nel configuratore di livello inferiore (cioè quello logicamente sottostante).
Es:
Nella distinta base neutra di una automobile (prodotto finito) abbiamo indicato nei materiali 3 volte il semilavorato neutro SSL1 (= sedile posteriore) presente con coeff. di impiego pari a 1 in tutti e 3 i casi.
SSL1 è un semilavorato neutro poiché evidentemente la sua composizione dipende dalle scelte effettuate a livello di configurazione, ed è presente 3 volte distinte fra i materiali poiché evidentemente è possibile effettuare a livello di configuratore scelte diverse per ciascuno dei 3 sedili posteriori.
A livello di configuratore del prodotto finito automobile dovremo quindi indicare il sedile posteriore con tutte le sue specifiche ben 3 volte, con codici casella necessariamente diversi per i 3 sedili posteriori a parità di domanda/risposta.
Vediamo una parte del configuratore per l'automobile:
(evidenziando il Cod. Casella)
.......................
.......................
SEDP (1° sedile posteriore)
TESS (tessuto primo sedile posteriore)
PELLE
STOFFA
TIPO (tipo 1° sedile posteriore)
CLASSIC
AVANTGUARDE
SEDP2 (2° sedile posteriore)
TESS2 (tessuto secondo sedile posteriore)
PELLE2
STOFFA2
TIPO (tipo 2° sedile posteriore)
CLASSIC2
AVANTGUARDE2
SEDP3 (3° sedile posteriore)
TESS3 (tessuto terzo sedile posteriore)
PELLE3
STOFFA3
TIPO3 (tipo 3° sedile posteriore)
CLASSIC3
AVANTGUARDE3
.........................
.........................
Serve allora qualcosa che ricolleghi il codice casella indicato nel configuratore dell'automobile, con il codice casella nel configuratore (di livello inferiore) del sedile posteriore (configuratore che esisterà necessariamente essendo il sedile posteriore a sua volta un articolo neutro, quindi dipendente dalle scelte effettuate a fronte di esso).
Per fare ciò si usa appunto il Codice casella corrispondente nel livello inferiore che lega la casella nel configuratore di livello superiore alla casella nel configuratore di livello inferiore.
Vediamo il configuratore del sedile posteriore:
(evidenziando il Cod. Casella)
TESS (tessuto sedile posteriore)
PELLE
STOFFA
TIPO (tipo sedile posteriore)
CLASSIC
AVANTGUARDE
Il campo Cod. Casella-Insieme indicato a livello di testata del configuratore del sedile posteriore sarà SEDP
Il giusto modo di legare le caselle del configuratore di livello superiore (automobile) con le caselle del configuratore di livello sottostante (sedile posteriore) sarà dunque il seguente:
Vediamo nuovamente parte del configuratore dell'automobile:
(evidenziando il Cod. Casella ed il Cod. Casella corrispondente di livello inferiore)
.......................
.......................
SEDP (1° sedile posteriore) <non indicato>
TESS (tessuto primo sedile posteriore) <non indicato>
PELLE <non indicato>
STOFFA <non indicato>
TIPO (tipo 1° sedile posteriore) <non indicato>
CLASSIC <non indicato>
AVANTGUARDE <non indicato>
SEDP2 (2° sedile posteriore) SEDP
TESS2 (tessuto secondo sedile posteriore) TESS
PELLE2 PELLE
STOFFA2 STOFFA
TIPO2 (tipo 2° sedile posteriore) TIPO
CLASSIC2 CLASSIC
AVANTGUARDE2 AVANTGUARDE
SEDP3 (3° sedile posteriore) SEDP
TESS3 (tessuto terzo sedile posteriore) TESS
PELLE3 PELLE
STOFFA3 STOFFA
TIPO3 (tipo 3° sedile posteriore) TIPO
CLASSIC3 CLASSIC
AVANTGUARDE3 AVANTGUARDE
.........................
.........................
NOTA 4
In tutti i casi in cui il Codice casella corrispondente nel livello inferiore non è indicato è perché la corrispondenza è sottinteso che avvenga direttamente per Codice casella.
è il caso, decisamente più frequente, della mono-istanza di un oggetto all'interno di un configuratore.
Cod. Funzione di validazione scelta di configurazione
Se indicato, è il codice di una funzione VBScript che deve essere eseguita all'atto della selezione/deselezione della casella in fase di configurazione.
Permette di effettuare delle validazioni/controlli incrociati fra più caselle con la potenza di un vero e proprio linguaggio di programmazione quindi con un qualsiasi livello di sofisticatezza, permettendo di restituire anche messaggi a video.
Se opportunamente impostata, permette persino di annullare/effettuare altre scelte in relazione alla avvenuta selezione/deselezione della casella stessa.
Cod. Form./Funz per determinazione prezzo scelta di configurazione
Se indicato, è il codice di una funzione o espressione VBScript che deve essere eseguita all'atto della selezione/deselezione della casella in fase di configurazione.
Permette di determinare il prezzo da attribuire a quella casella; prezzo che può dipendere dall'avvenuta selezione o meno di altre caselle in fase di configurazione così come può dipendere dalle informazioni specifiche inserite a livello di configurazione.
Sottintesa
Il significato di questo attributo è legato alla possibilità nel tempo di aggiungere nuove scelte/opzioni al configuratore di un determinato prodotto, senza per questo perdere la possibilità di poter riconoscere articoli già esistenti, evitando di generarne di nuovi aventi le stesse caratteristiche di altri esistenti.
Es:
Ipotizziamo che nel configuratore di una automobile venga aggiunto a partire da una certa data un nuovo insieme (una nuova possibile scelta con delle opzioni), nella fattispecie la possibilità di montare 1 o 2 airbag.
Nel configuratore dell'automobile dovrei aggiungere:
(evidenziando il Cod. Casella ed l'attributo Sottintesa)
AIRBAG Sì
NESSUNO Sì
1 No
2 No
Fino ad oggi tutte le automobili configurate non avevano airbag, ma da oggi è possibile montarne 1 o 2.
Quello che vorrei evitare è che andando a fare oggi una configurazione perfettamente identica ad un'altra
già esistente, con la sola differenza che questa volta ho specificatamente indicato la scelta AIRBAG = NESSUNO, l'applicazione mi dica che non esiste già un'automobile siffatta e mi generi a livello di anagrafica articolo una nuova automobile del tutto identica ad un'altra, provocando una inutile proliferazione di codici.
Allora per ottenere questo risultato, andrò ad indicare che le caselle AIRBAG e NESSUNO sono sottintese,
ciò farà sì che quando l'applicazione andrà a cercare un prodotto già configurato avente le stesse caratteristiche di questo, non confronterà le caselle selezionate (cioè le scelte effettuate) che hanno l'attributo Sottintesa = Sì e quindi sarà in grado di individuare una automobile identica a questa e non genererà un nuovo prodotto.
Valore Sottinteso
Il significato di questo attributo è lo stesso dell'attributo precedente ed entra in gioco in presenza di caselle con obbligo di indicazione di un valore/misura.
Es:
Ipotizziamo che nel configuratore di una automobile venga aggiunta a partire da una certa data, la possibilità di indicare per una barra delle sospensioni oltre a lunghezza e larghezza, anche l'altezza.
L'altezza viene impostata come casella con obbligo di indicazione di un valore.
Nel configuratore dell'automobile dovrei aggiungere una nuova casella ALTEZZA:
(evidenziando il Cod. Casella, l'attributo Sottintesa, e l'attributo Valore Sottinteso)
BARRA No 0
LUNGHEZZA No 0
LARGHEZZA No 0
ALTEZZA Si 2
Fino ad oggi in tutte le automobili configurate l'altezza della barra non era configurabile ma era fissa ed uguale a 2cm, ma da oggi è possibile scegliere anche l'altezza della barra.
Quello che vorrei evitare è che andando a fare oggi una configurazione perfettamente identica ad un'altra
già esistente, con la sola differenza che questa volta ho specificatamente indicato la scelta ALTEZZA = 2, l'applicazione mi dica che non esiste già un'automobile siffatta e mi generi a livello di anagrafica articolo una nuova automobile del tutto identica ad un'altra, provocando una inutile proliferazione di codici.
Allora per ottenere questo risultato, andrò ad indicare che le casella ALTEZZA è sottintesa ed è sottintesa per valore uguale a 2, ciò farà sì che quando l'applicazione andrà a cercare un prodotto già configurato avente le stesse caratteristiche di questo, non confronterà le caselle selezionate (cioè le scelte effettuate) che hanno l'attributo Sottintesa = Sì ed hanno contemporaneamente nel campo misura/qtà un valore che è proprio uguale al valore sottinteso e quindi sarà in grado di individuare una automobile identica a questa e non genererà un nuovo prodotto.
Premendo il pulsante Dati Configuratore si accede alla finestra con le informazioni legate al configuratore nella sua interezza e quindi globali alla totalità delle caselle che lo compongono.
Si procede ora alla spiegazione degli attributi impostabili a livello di configuratore:
Configuratore
è il cod. articolo neutro a cui il configuratore è agganciato.
Tipo Insieme
è lo stesso attributo che si imposta per ogni singola casella-insieme, solamente che questa volta si riferisce alla casella-insieme (virtuale, in quanto in realtà non è affatto una casella) costituente la root (o radice) della struttura ad albero.
Tale casella-insieme (virtuale) rappresenta l'intestazione dell'intera struttura del configuratore, viene quindi
intestata al cod. articolo neutro di cui quello è il suo configuratore.
In pratica l'attributo Tipo Insieme fa riferimento alle caselle di 1° livello del configuratore, stabilendo se sono alternative, multiple o facoltative.
Cod. Casella Insieme
Attribuisce un Cod. Casella al configuratore nella sua globalità.
Questo campo può servire fondamentalmente per 2 scopi diversi.
che può essere presente più volte (multi-istanza) all'interno di un configuratore di livello superiore (per es.
nel configuratore del prodotto finito), allora questo campo diventa di fatto obbligatorio.
Tale Cod. Casella-Insieme indicherà il Cod. Casella che dovrà avere la casella-insieme presente nel
configuratore di livello superiore adibita a contenere al proprio interno tutte le caselle del configuratore di
livello inferiore (in particolare la sua 1a istanza);
contemporaneamente tale Cod. Casella-Insieme indicherà il Cod. Casella corrispondente di livello
inferiore che dovrà avere ciascuna casella-insieme presente nel configuratore di livello superiore adibita
a contenere al proprio interno tutte le caselle del configuratore di livello inferiore (per le altre
istanze diversa dalla 1a).
Vedi nell'esempio già fatto di multi-istanza il caso delle caselle SEDP, SEDP2 e SEDP3.
neutre presenti una sola volta (mono-istanza) per poter scrivere in modo più agevole le
funzioni/espressioni di generazione del codice articolo reale configurato e della descrizione dell'articolo
reale configurato.
In tale ipotesi, il Cod. Casella-Insieme indicherà il Cod. Casella che dovrà avere la casella-insieme
presente nel configuratore di livello superiore adibita a contenere al proprio interno tutte le caselle del
configuratore di livello inferiore (in particolare la sua 1a istanza);
Cod. Form./Funz. per generazione cod. articolo
è obbligatorio, ed è il codice di una funzione o espressione VBScript che deve essere eseguita per determinare il cod. dell'articolo reale configurato in relazione alle scelte di configurazione effettuate.
Cod. Form./Funz. per generazione descr. articolo
è il codice di una funzione o espressione VBScript che sarà eseguita per determinare la descrizione dell'articolo reale configurato in relazione alle scelte di configurazione effettuate.
Se non indicata, la descrizione dell'articolo reale configurato sarà impostata uguale alla descrizione dell'articolo neutro a cui è agganciato il configuratore da cui siamo partiti per fare la configurazione.
Cod. Funz. per validazione configurazione
è il codice di una funzione VBScript che sarà eseguita al momento in cui si tenterà di salvare una configurazione, per effettuare delle validazioni/controlli finali fra tutte le caselle con la potenza di un vero e proprio linguaggio di programmazione quindi con un qualsiasi livello di sofisticatezza, permettendo di restituire anche messaggi a video, ma soprattutto permettendo di invalidare le scelte effettuate perché incompatibili.
Non è obbligatoria, ma soprattutto è importante sottolineare che ha senso impostarla esclusivamente sul configuratore del prodotto finito (è da quello che partirò per effettuare le mie configurazioni e creare i vari prodotti reali), impostarla sui sotto-configuratori di semilavorati e materie prime neutre non sortirà alcun tipo di controllo.
Data/Ora ultimo aggiornamento & Operatore che ha effettuato la modifica
Coppia di dati per la rintracciabilità dell'ultimo intervento in modifica su quel configuratore.
Si procede infine alla spiegazione delle funzioni specifiche (non standard) di questo programma:
Menu File
Aggiorna Configuratore senza uscire
Permette di salvare tutte le modifiche apportate al configuratore senza chiuderlo.
Molto utile per poter avere sempre aggiornate all'ultima modifica tutte le variabili d'ambiente e predefinite
da utilizzarsi in fase di impostazione di formule e/o funzioni.
Taglia Livello Configuratore
Molto utile abbinato alla funzione di duplicazione di un configuratore.
Infatti permette facilmente di creare tutti i sotto-configuratori (dei semilavorati e materie prime neutre), duplicando il configuratore del prodotto finito e poi eseguendo operazioni di cancellazione di caselle e di tagli di livello.
Per taglio di livello si intende l'eliminazione di una casella-insieme, portando al livello superiore tutte la struttura di caselle ad essa sottostante.
Importa da Configuratore
Permette di importare all'interno di un configuratore, tutte le caselle di un altro configuratore.
Risulta molto comodo, in presenza di multi-istanza di un oggetto all'interno dello stesso configuratore, in quanto permette di importare l'oggetto multi-istanziato (configuratore di un semi-lavorato o materia prima neutra) più volte all'interno dello stesso configuratore, occupandosi in automatico di scrivere nel campo cod. casella corr. nel config. di livello inferiore il codice casella da importare (quello di origine), qualora esso risulti già presente nel configuratore di destinazione.
Non solo, ma è anche possibile indicare, in presenza di caselle da importare che risultino già presenti nel configuratore di destinazione, delle regole (mediante applicazione di un prefisso o di un suffisso) per determinare un nuovo cod. casella, in modo che venga direttamente inserito nel configuratore di destinazione (senza poi doverlo fare a mano) in fase di importazione.
Rivisualizza Struttura Configuratore
Serve per riordinare le caselle dell'albero costituente la struttura del configuratore, nel caso siano stati effettuati cambiamenti del campo posizione di una o più caselle.
Menu Record
Nuova Casella-Insieme
Trasforma, una casella-semplice, in casella-insieme.
Cancella Caselle dell'Insieme
Cancella tutte le caselle sottostanti ad una determinata casella-insieme.
Questa funzione è diversa dalla Cancella Casella, che nel caso di una casella-insieme comporterebbe oltre alla cancellazione di tutte le caselle sottostanti, anche quella della casella stessa.