Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei prossimi rilasci...9 Versione 1.0 15 ottobre 2003...9 Versione 1.1 Gennaio 2004...9 Versione 1.2 Aprile 2004...9 Scopo di questo documento Questo documento descrive il nuovo modulo Diapason denominato Configuratore Commerciale di Prodotto. Non viene descritta una specifica versione ma la struttura complessiva del progetto. L ultimo capitolo contiene una specifica delle funzioni disponibili nella prima versione e il piano di rilasci successivi. La versione è da considerare in controlled release. Il prodotto è infatti in uso presso due clienti pilota. Ringrazio in particolare Paolo Calzolari e Stefano Colombani di Meccanica Nova che hanno collaborato al raffinamento delle specifiche del prodotto e al test del prototipo. Questo documento contiene riferimenti al sistema di gestione offerta: per i dettagli si rimanda al relativo documento specifico. elab/mm&ls 1 di 9 Configuratore di Prodotto
Perché il nuovo Configuratore di Prodotto Diapason è da tempo dotato di un sottosistema di configurazione commerciale. Raccogliendo le esperienze di uso del parco clienti Formula ha deciso di svilupparne una nuova versione che mantenga i punti positivi della versione attuale, elimini i punti di debolezza e permetta di sostenere adeguatamente le nuove modalità di esecuzione del processo di vendita sia nella fase di emissione e aggiustamento dell offerta che nella fase di esecuzione dell ordine. Gli obiettivi principali che ci siamo dati sono: 1. Mantenere una forte integrazione con Diapason evitando la replica di dati e parametrazioni. 2. Fornire una interfaccia di configurazione semplice ed intuitiva, che permetta di cambiare in qualunque momento le scelte fatte in precedenza. 3. Permettere ad utenti diversi di passarsi l un l altro una configurazione in corso, riprendendola sempre dallo stato in cui è stata lasciata in precedenza. 4. Facilitare il reperimento, il riuso, la copia delle configurazioni simili già prodotte in precedenza. 5. Gestire le versioni della configurazione e dell offerta. 6. Permettere di usare il configuratore sia per la preparazione e il controllo di prodotti complessi che per la ricerca di prodotti sulla base delle loro caratteristiche di configurazione. 7. Produrre i documenti necessari durante il processo in modo facilmente personalizzabile. 8. Gestire sia la lingua dell operatore che la lingua del cliente. 9. Realizzare una architettura che permetta di utilizzare il configuratore via Internet, in modalità client server o in modalità client disconnessa, quindi sia all interno dell azienda che da parte di funzionari sul territorio che eventualmente da clienti. elab/mm&ls 2 di 9 Configuratore di Prodotto
Il configuratore di prodotto Quando il prodotto venduto non è pronto ma viene definito precisamente in base a necessità e preferenze del cliente, è necessario che il sistema ERP accetti l ordine di prodotti configurati aiutare le persone che gestiscono il processo commerciale a formulare correttamente e velocemente la descrizione del prodotto venduto e la produzione e alla gestione del documento offerta che deve essere inviato al cliente. La gestione dell offerta deve naturalmente permettere di includere prodotti configurati e/o prodotti non configurati (ad esempio ricambi). Naturalmente si presentano parecchi scenari nei quali è richiesto l uso di un sistema di Configurazione del Prodotto a seconda del tipo di prodotto e del processo di produzione. Lo scenario di riferimento per il progetto è quello dei macchinari complessi, ma le caratteristiche di ricerca di prodotti simili che sono state incluse lo rendono utile anche in situazione di produzioni semplici dove tuttavia le caratteristiche del prodotto ordinato sono scelte dal cliente. Il processo di configurazione si svolge in più passi: Acquisizione e controllo delle specifiche del cliente nell ambito delle opzioni possibili da parte del funzionario commerciale. Il processo può essere limitato ai soli dati necessari alla determinazione dell offerta commerciale (In qualunque momento si può chiedere al sistema di verificare se esistono già configurazioni di prodotto che soddisfano alle risposte date fino ad ora). Produzione dell offerta e flusso di approvazione e invio al cliente (o immissione diretta dell ordine del cliente). Completamento della configurazione con i dati di competenza tecnica. Produzione della scheda tecnica di prodotto (opzionale) Generazione della distinta base di produzione da parte del sistema ERP (Diapason). I passi si svolgono in fasi diverse del processo e nell ambito di responsabilità diverse, ma devono essere adeguatamente integrati. In altri scenari di produzioni più semplici, le fasi non sono distinte o alcune sono mancanti o trasparenti all utente. Dal punto di vista commerciale il configuratore è costituito da due moduli: il Configuratore di Prodotto (CP), che permette di configurare un singolo prodotto complesso. Il modulo di gestione dell Offerta (GO), che permette di gestire la produzione del documento di offerta che include più prodotti configurati o meno. Questo modulo di può essere utilizzato anche in mancanza del modulo CP, ovvero per la gestione di offerte di referenze non soggette a configurazione. Il configuratore di prodotto è costituito da due applicazioni distinte e da un insieme di funzioni accessorie: Programmazione Configurazioni (Designer): serve per scrivere il programma specializzato che serve per configurare un certo modello di macchina. E usato solo all interno dell azienda e ha tutte le caratteristiche di un ambiente di sviluppo, anche se fortemente specializzato. Il suo output è il programma, comunque sia codificato, che serve per preparare correttamente una elab/mm&ls 3 di 9 Configuratore di Prodotto
configurazione per il prodotto per cui è stato predisposto. Il programma è soggetto a versione, e sono disponibili le funzioni per tenerla sotto controllo. Preparazione configurazione (Configuratore): con il programma generato dal Designer uno o più funzionari commerciale e tecnici interni o esterni all azienda configurano il prodotto, predispongono l ordine o l offerta e i documenti tecnici necessari ad avviare il processo produttivo. Funzioni accessorie: o gestione delle variabili del configuratore tecnico e altre tabelle accessorie o gestione delle versioni (di programma e di configurazione) o allineamento delle funzioni client (quando non utilizzato on line via internet) o gestione del flusso o stampa della scheda tecnica del prodotto configurato L esecuzione di una configurazione si sviluppa normalmente attraverso la proposta di una serie di scelte (domande) la cui logica è determinata dal programma di configurazione definito via Designer. La risposta alle domande porta alla corretta costruzione degli output cercati: un insieme di informazioni che servono a chiudere la distinta base produttiva, l elenco delle righe d ordine opportunamente suddivise per potere essere incorporate nell offerta e determinare il prezzo i dati atti ad identificare in seguito le caratteristiche della configurazione stessa per possibili riutilizzi. Il configuratore di prodotto è integrato in Diapason: utilizza direttamente le tabelle del data base effettivo e non richiede alcuna replica di dati o di logiche. Figura 1: lo scenario di uso del configuratore 1 Un caso particolare è la determinazione di caratteristiche che sono a listino per fasce. elab/mm&ls 4 di 9 Configuratore di Prodotto
Architettura e impostazione tecnica Il tipo di funzionalità e il tipo di utilizzo hanno suggerito lo sviluppo di un sistema misto, ovvero con funzionalità che possono essere fruite in modalità stand-alone e funzioni che richiedono invece la disponibilità via Internet del sistema centrale. Concettualmente il sistema di configurazione è molto simile ad un sistema software e il ciclo di vita è identico. Di fatto il configuratore di un prodotto/modello è un programma, che deve essere sviluppato, testato e distribuito agli utenti per poi essere utilizzato per configurare il prodotto stesso per gestire il processo di vendita. Inoltre è importante tenere traccia delle versioni del programma di configurazione e delle offerte che vengono prodotte. L ambiente di sviluppo dei programmi di configurazione, che chiamiamo Designer, il cui scopo è creare e mantenere i programmi di configurazione è quindi un sistema di sviluppo di software a dominio ristretto, ovvero specializzato per costruire solo un certo tipo di programmi, appunto quelli di configurazione di prodotto. Il programma di configurazione descrive la struttura dell albero di configurazione, gli oggetti che devono essere inclusi e le regole che condizionano la navigazione e le scelte degli oggetti da includere. Abbiamo deciso di scegliere Java come linguaggio per la scrittura delle regole, naturalmente mettendo a disposizione un ampio insieme di oggetti che permettono di semplificare la scrittura del codice. Questa scelta, a fronte di una sintassi un po complessa ma totalmente standard, mette a disposizione del programmatore di configurazioni tutta la potenza del linguaggio, sia in termini di calcolo che di librerie e di accesso al data base. Il designer, come qualunque applicazione IDE, è un sistema client/server. Può tuttavia operare sia in modo connesso al data base (in linea), in questo caso tutti gli elementi immessi vengono immediatamente controllati, che fuori linea: in questo caso il programma viene classificato come dirty, ossia potenzialmente con errori, e verrà ricontrollato completamente la prima volta che il programma sarà aperto con connessione attiva. L ambiente di esecuzione dei programmi creati con il Designer, il configuratore vero e proprio, usato dal personale commerciale per creare offerte ed ordini, è disponibile in diverse modalità: 1. Direttamente nell ambiente di sviluppo (designer) per la verifica immediata dei programmi in corso di sviluppo 2. In modalità client-server connesso al sistema Diapason. 3. In modalità client disconnesso con trasferimento differito delle configurazione generata. 4. Via web per potere essere incluso in specifiche applicazioni di e-commerce e comunque basate su interfaccia Internet (come SalesCentral e Diapason Web). Le scelte di architettura sono funzione con questi requisiti: Il linguaggio di sviluppo è Java quindi il nucleo del prodotto è completamente portabile. Per lo sviluppo del designer abbiamo scelto un framework Open Source disegnato per sostenere ambienti di sviluppo software e sofisticate applicazioni client-server: NetBeans. Così l aspetto e le funzioni del designer elab/mm&ls 5 di 9 Configuratore di Prodotto
sono conformi a quelle attese da un moderno ambiente di sviluppo interattivo (IDE). Figura 2: Il Designer del configuratore di prodotto Il Designer contiene: Uno specifico ambiente di editing grafico che permette di mantenere il sorgente del programma di configurazione, memorizzato in forma di file XML. L editing può essere indifferentemente fatto direttamente sulla forma XML o sulla forma grafica: in entrambi i casi sono attivati gli stessi controlli di correttezza. Un editor contestuale per la definizione delle regole; queste sono espresse direttamente in grammatica Java avvalendosi di apposite macro che ne semplificano la scrittura. Un compilatore, o meglio un traduttore, che trasforma il sorgente XML è e genera un programma Java. Un sistema di supporto delle traduzioni che permette di predisporre e gestire le versioni multilingua dei programmi di configurazione generati. elab/mm&ls 6 di 9 Configuratore di Prodotto
Il supporto alla traduzione dei testi immessi nel programma di configurazione per potere generare configuratori multilingua. La versione 1.0 supporta la traduzione in italiano, francese, inglese e tedesco.questa funzione permette di preparare configuratori che parlano nella lingua del funzionario che lo utilizza per preparare l offerta. Il problema delle lingue in questa specifica applicazione è interessante e si sviluppa su tre piani distinti: 1- La lingua del tecnico che prepara la configurazione (Il designer è fornito solamente in Italiano nella versione 1.0) 2- La lingua del funzionario che prepara la configurazione (e questa è la traduzione di cui stiamo parlando) 3- La lingua del cliente cui è destinata l offerta. E il modulo di gestione offerte estrarrà dal data base le informazioni nella lingua giusta in funzione della lingua del cliente. Figura 3: : il supporto alle traduzioni dei programmi di configurazione Le funzioni di gestione del check-in e check-out dei programmi di configurazione (eseguibili e relativi sorgenti) e della relativa gestione delle versioni. elab/mm&ls 7 di 9 Configuratore di Prodotto
Il Configuratore (ambiente di esecuzione) contiene: un motore che viene specializzato dal programma generato dal Designer per operare esattamente le funzionalità richieste dallo specifico prodotto/modello. Il motore, basato su interfaccia grafica, gestisce le funzioni di Undo e di Refresh, che permettono di modificare le scelte fatte in precedenza. La funzione di refresh permette di modificare una risposta e rivalutare tutte le altre risposte date in precedenza a fronte del nuovo valore: il configuratore richiederà solo le risposte che risultano ora non coerenti rispetto ai nuovi valori immessi. Il sistema di gestione di check-in, check-out delle configurazioni generate e delle relative versioni. I meccanismi di collegamento alle funzioni di immissione e modifica degli ordini e delle offerte di Diapason e di SalesCentral. Le funzioni di ricerca delle configurazioni simili e di copia di una configurazione preesistente. I programmi di configurazione e le offerte prodotte sono mantenute sotto controllo di versione utilizzando apposite strutture di tabelle relazionali sul data base di Diapason. Figura 4: l'interfaccia c/s del configuratore elab/mm&ls 8 di 9 Configuratore di Prodotto
Piano dei prossimi rilasci Versione 1.0 15 ottobre 2003 Tutte le funzionalità descritte in precedenza, escluse: 1. Check-in dei programmi di configurazione 2. Interfaccia Internet del Configuratore 3. Versione client disconnessa 4. Integrazione con SalesCentral (order entry e funzioni di controllo) 5. Stampa scheda tecnica Versione 1.1 Gennaio 2004 Requisiti aggiuntivi (open source) Echo 1.0: versione HTML Struts dell interfaccia di configurazione EchoPoint 0.5: estensione di Echo J2EE 1.4.1 o superiori Tomcat: application server Netbeans Platform 3.5: Interactive Development Environment Contenuti funzionali Come la 1.0 e inoltre: 1. Check-in/out programmi di configurazione 2. Interfaccia Internet per la componente di esecuzione 3. Integrazione Diapason Web Edition (Dnow) 4. Integrazione con Sales Central 5. Stampa scheda tecnica 6. Funzioni di aiuto al Debugging dei programmi di configurazione 7. Integrazione della gestione offerte Versione 1.2 Aprile 2004 Contenuti funzionali 1. Versione client disconnessa 2. Altre funzioni da definire 2 Ad esempio nella scelta di una autovettura un certo insieme di accessori (kit inverno e simili) è un articolo commerciale, che ha un prezzo ma non un riflesso uno a uno nella distinta base produttiva. elab/mm&ls 9 di 9 Configuratore di Prodotto