Compilazione Ciclo di un Oggetto per Reparto

di il
19 risposte

Compilazione Ciclo di un Oggetto per Reparto

Ciao a tutti,
dovrei costruire un'applicazione che vada a gestire il ciclo di vita di un "Articolo".

Attualmente viene utilizzato un file Excel dove,per ogni articolo, devono essere compilati circa 50 campi in colonna.
Questi campi sono divisi in Categorie, in base al tipo di lavoro che deve essere fatto. Alcune categorie possono essere ripetute n volte.
Ogni campo viene compilato da un certo reparto a seconda del tipo di articolo.
L'articolo viene inizializzato da un reparto "amministratori", poi passa in gestione agli utenti degli altri reparti.

La mia idea è quella di creare una tabella Articolo in cui inserire l'anagrafica principale, e una tabella per ogni Categoria poichè possono essere ripetute se quel ciclo non va a buon fine.

A livello visivo invece, costruirei poi un'interfaccia di Login, che riporta ad una lista degli articoli non completati.
In questa lista saranno disponibili solo gli articoli, in cui il prossimo campo da compilare è dedicato al reparto del loggato.
Selezionato un articolo, si apre una maschera in cui ci sarà una Casella Combinata che contiene la lista dei campi che devono essere ancora compilati e una Casella di Testo in cui si inserisce il valore (data o testo). Una volta salvato, il record si salva nel campo selezionato.

Questa è una spiegazione breve, spero di essere riuscito a spiegarmi. Prima di iniziare volevo condividere la mia idea per capire se era la più corretta/ottimale.

19 Risposte

  • Re: Compilazione Ciclo di un Oggetto per Reparto

    In linea di massima mi sembra ok.
    Bisogna poi vedere l'implementazione pratica...

    Personalmente però non farei una tabella per ogni Categoria, ma una tabella anagrafica delle Categorie ed una tabella anagrafica dei Campi, abbinati ciascuno alla propria Categoria, esempio:

    Tabella Categorie
    IDCategoria, Categoria

    Tabella Campi
    IDCampo, Campo, IDCategoria

    In questo modo, la gestione sarà totalmente flessibile e dinamica e potrai aggiungere sia nuove Categorie, sia nuovi Campi (ovviamente prevedendo maschere apposite).

    Al contrario, creando una tabella per ogni Categoria, ad ogni nuovo Campo/Categoria saresti costretto a modificare la struttura del database.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Sicuramente come dici tu la gestione è dinamica e flessibile.
    Però avrei il problema per gestire una categoria n volte per lo stesso articolo.
    Cerco di spiegarmi meglio:
    se ho la categoria esempio ControlloQualità, che comprende i campi [Creazione], [Lavaggio], [Controllo], una volta arrivato a compilare l'ultimo campo, come faccio a dire che se il controllo non va bene, di aggiungere un nuovo ciclo di ControlloQualità quindi di ricominciare dal campo [Creazione] senza sovrascrivere i dati precedenti?
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Non hai mai parlato di cicli ma di Categorie.
    In tal caso la questione cambia.
    Non conoscnedo le tue esigenze, mi fermo qui.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Mi dispiace se non mi sono spiegato a dovere.
    Ho un'anagrafica dell'articolo iniziale, per cui devono essere compilati diversi campi. Questi campi sono raggruppati in categorie (categoria1 contiene campo1, campo2, campo3, ...), di cui alcune possono essere ripetute per lo stesso articolo (articolo1 può avere una categoria1, due categoria2, una categoria 3, ecc..).
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Avrei bisogno di creare un'applicazione che mi permetta di gestire questo, provo a spiegare meglio:

    - Ho un Articolo che deve effettuare un determinato ciclo di vita, a seconda della Categoria di cui fa parte.
    - Questo articolo deve passare per diverse Fasi, che alcune di esse possono essere ripetute. (Un Articolo può avere 4 Fase1, 1 Fase2, ecc..)
    - Queste fasi sono composte da delle Iterazioni che sono perlopiù date o commenti.
    - Ogni singola iterazione viene compilata da un singolo Utente in base al proprio Reparto e alla Categoria dell'articolo a cui è associato.

    Un esempio pratico per capirci:
    Ho da fare un Articolo che è una BiciclettaX1, che fa parte della Categoria Mountain Bike.
    Essa dovrà attraversare diverse Fasi, una di Progettazione, una di Costruzione e una di Prova su Strada.
    Nella Fase di Progettazione c'è ad esempio una Iterazione di Disegno, che verrà associata al Reparto Disegnatori, e una Iterazione di Aerodinamicità associata al Reparto Ingegneri..
    Se una di queste va male, la Fase va ripetuta sempre per la stessa bici, se va bene passa alla Fase successiva e cosi via..

    Oltre questo dovrei tenere un campo in cui viene compilato un campo e da quale utente specifico.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Ho la sensazione che tu tendi a raccontarci FASI, PROCESSI ecc...per cui poi pensi che deve essere tracciato tutto questo in senso...poi...sequenziale. Quello che noto tu dimentichi è la "fratellanza" di alcune cose che dici che (per me) potrebbero essere accomunate in pochi campi. Quello che non devi dimenticare mai di un database è l'omogeneità dati di OGNI SINGOLA TABELLA che in Access ha un significato ben preciso, abbandonando qualsiasi riferimento a Excel.
    50 campi, per quanto possibili in una tabella Access, mi puzzano di errata progettazione.
    Secondo me si può partire da qui:

    Articoli
    IDArticolo (PK)
    Descrizione

    TipiLavorazioni
    IDTL (PK)
    TipoLavorazione

    Lavorazioni
    IDLavorazione
    TimeInizio
    TimeFine
    IDTL (FK)
    IDArticolo (FK)

    Relazioni:
    Articoli.IDArticolo uno-a-molti Lavorazioni.IDArticolo
    TipiLavorazioni.IDTL uno-a-molti Lavorazioni.IDTL

    Questo può essere un primo approccio.
    Non ho capito per ora come vorresti utilizzare Utenti, Categorie, Reparti…

    Ti ricordo nello spirito del regolamento del forum:
    1. Forse questa tua discussione andava postata nella sezione "Progettazione database" (per ora è andata...proseguiamo qui...trattandosi comunque di Access)
    2. Non possiamo fornire "pappa pronta"
    3. Devi fornire qualcosa di "concreto" da cui sei partito TU
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Ciao Osvaldo, ti ringrazio per la risposta e mi scuso per la sezione sbagliata e per la confusione.
    Sicuramente non chiedo la pappa pronta, volevo solo vedere se il mio ragionamento era corretto prima di iniziare la costruzione.
    Se preferisci si può chiudere e riapro nella sezione corretta provando a spiegare meglio la mia esigenza.

    Il campo Categoria mi serve per identificare l'articolo e in base a questo vengono utilizzati o meno dei campi.
    Il campo Reparto mi serve per identificare chi compila determinati campi
    Il campo utenti invece per sapere chi ha compilato un determinato campo.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    AndrewTFox ha scritto:


    Se preferisci si può chiudere e riapro nella sezione corretta provando a spiegare meglio la mia esigenza.
    Non ti preoccupare, questa volta è andata così, proseguiamo qui.

    AndrewTFox ha scritto:


    Il campo Categoria mi serve per identificare l'articolo e in base a questo vengono utilizzati o meno dei campi.
    Il campo Reparto mi serve per identificare chi compila determinati campi
    Il campo utenti invece per sapere chi ha compilato un determinato campo.
    Chi mi conosce nel forum sa che io sono molto duro di comprendonio e se non mi si dicono le cose chiare chiare come il sole (secondo la logica base di Access...poi), io non mi raccapezzo. Ci credi che non ho capito DI COSA PARLA IL TUO DATABASE?
    Quando parli di Categoria, Reparto, ecc... io non posso sapere a cosa ti riferisci. Io non posso conoscere il tuo ambito professionale e mi affido solo alla "omogeneità" dei dati richiesti da Access.
    Per farla breve cerca di raccontare 2-3 casi con esempi "concreti" (nomi propri anche inventati) di quello che succede nella tua azienda. Poi si può provare a interpretare meglio il significato dei nomi di tue tabelle e campi.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Tranquillo Osvaldo, siamo sulla stessa barca!
    La mia azienda tratta di maglieria, provo a spiegarti ma ti assicuro che l'esempio della bici era la versione più semplice.

    Categorie
    Reparti
    Fasi
    Iterazioni

    L'azienda è divisa in diversi settori, dove ogni gruppo di persone fa una cosa specifica (Reparti: Maglieria, Modelleria, Programmatori ecc..).
    Ogni maglia è diversa e viene considerata di una certa Categoria in base ai materiali che utilizza. Se viene considerata di Maglieria se ne occupa il reparto di Maglieria, se di Modelleria se ne occupa il reparto di Modelleria, oppure può essere un mix "Capi Misti" dove se ne occupano entrambi i reparti.
    Ogni volta che si sceglie di iniziare a progettare una nuova maglia, questa attraversa diverse FASI, tra cui:
    - Codifica, che comprende le Iterazioni: Codice Articolo Provvisorio, Codice Articolo Definitivo, Stagione, Categoria, Foto, ecc.. (compilato solo dal Reparto Amministratori)
    - Capo Prova, che comprende le itarazioni: Richiesta Capo (Data compilata da Modelleria o Maglieria), Richiesta Teli (Data valida solo per la categoria "Capi Misti", e compilato solo da Maglieria), Fine Programma (Data compilata da Programmatori), Fornitore Tessitura (Testo compilato solo da Maglieria), e cosi via..

    Mentre la fase di Codifica è unica, la fase Capo Prova può essere ripetuta più volte per lo stesso articolo se non andasse a buon fine.
    Servirebbe sapere appunto quale specifico utente ha compilato un iterazione ed eventualmente che si possa aggiungere una nota aggiuntiva per ogni iterazioni.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Credo manchi una vera e propria analisi del Flusso di lavoro... si chiama WorkFlow.
    Parliamo ovviamente di ingegneria del Database, e purtroppo credo sfugga la differenza tra definizione di processo da catalogo, ed esecuzione...!
    Un prodotto non esegue un processo se non viene definito... altrimenti un prodotto esegue solo una serie di Azioni senza una struttura.
    Quindi quando tu elenchi le azioni tipiche di una maglia... queste non possono essere solo nella tua testa, devi predisporre da qualche parte un TipicoLavorazione per prodotto... poi quando lo metti in esecuzione, peschi dal Tipico le fasi e le attivi gestendole, oppure se cambi tipologia, cambi Tipico...

    Questo che ti ho raccontato a brevi parole..., solo affinchè possa chiarirsi la logica, è tutt'altro che una cosa che si affronta in 2 minuti, richiede le idee chiare non solo del processo di lavoro, ma anche e soprattutto del processo dei dati...

    Qui mi fermo, perchè vedo che le cose proposte sono estremamente lontane da una qualsivoglia minima impostazione di gestione richiesta... quindi serve prima di tutto a te capire le dimensioni di quello che chiedi e le competenze oltre che al tempo che riesci a dedicare.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Mi sono messo un pò in ordine le idee e provo a spiegarvelo con delle immagini strutturate:
    Questo è il ciclo di vita di un articolo, la prima fase ARTICOLO, è univoca. Questo articolo dovrà poi attraversare 6 fasi che contengono delle Iterazioni (campi). Alcune fasi possono essere ripetute n volte per il medesimo articolo.



    In base alla categoria dell'articolo (Maglieria, Modelleria, Misto), selezionata nell'iterazione "Ufficio Tecnico" della prima fase, le iterazioni delle altre fasi devono essere compilate da determinati reparti.

    Esempio:
    Se nell'articolo XXX1 imposto l'iterazione "Ufficio Tecnico" = "Maglieria", nella seconda fase (capo prova) l'iterazione "Richiesta Capo" la deve compilare solo il reparto di Maglieria, mentre l'iterazione "Richiesta Teli a Smacchinatura" non deve essere compilata e cosi via..

    Per ogni campo avrei bisogno di registrare la persona che lo ha inserito e un'eventuale nota.

    L'idea mia è quella di creare queste tabelle:
    Utenti - Inserisco tutti gli utenti associati ognuno al proprio reparto.
    Articolo - In cui vengono inseriti tutti i campi della prima fase.
    Fasi - In cui codifico tutte le fasi (eccetto la prima)
    Iterazioni - In cui codifico tutte le iterazioni associate alla propria fase.
    Associazioni - In cui associo le Iterazioni per ogni categoria e ogni reparto.
    Ciclo - Qui inserisco l'IDArticolo, l'IDAssociazione, IDUtente, Data (inserita dall'utente), Note.

    Infine avrò una semplice maschera in cui l'utente finale vedrà solo i campi ad esso interessati per quella fase, e dei pulsanti per poter eventualmente ripetere una fase.

    So di avere una capacità di ragionamento distorta, chiedo il vostro supporto appunto per evitare di iniziare qualcosa per poi scoprire che non funziona.

    Grazie ancora per la pazienza.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    AndrewTFox ha scritto:


    L'idea mia è quella di creare queste tabelle:
    Utenti - Inserisco tutti gli utenti associati ognuno al proprio reparto.
    Articolo - In cui vengono inseriti tutti i campi della prima fase.
    Fasi - In cui codifico tutte le fasi (eccetto la prima)
    Iterazioni - In cui codifico tutte le iterazioni associate alla propria fase.
    Associazioni - In cui associo le Iterazioni per ogni categoria e ogni reparto.
    Ciclo - Qui inserisco l'IDArticolo, l'IDAssociazione, IDUtente, Data (inserita dall'utente), Note.
    Secondo me tu stai confondendo il "come vuoi inserire i dati" dalla "struttura tabelle normalizzata database".
    Sottolineo le tue "tabelle" con le mie "argomentazioni":
    Utenti
    La tabella Utenti deve avere solo campi tipicamente "anagrafici" (te l'ho già spiegato prima)
    Devi avere una tabella Reparti.
    Ora, quello che non sappiamo se un Utente lavora sempre e comunque nello stesso Reparto, oppure nel corso della vita aziendale può essere spostato. In base a questa osservazione dipende se vuoi una semplice relazione Reparti uno-a-molti Utenti, oppure Reparti molti-a-molti Utenti (qui ti serve una tabella di congiunzione)

    Articolo
    La tabella deve chiamarsi sempre al plurale, quindi Articoli.
    La tabella Articoli deve avere campi che riguardano solo ed esclusivamente l'Articolo, quindi campi "omogenei". Qui non puoi inserire valori relativi alle Fasi.

    Fasi - Iterazioni - Associazioni - Ciclo……………qui non riesco a seguirti. Secondo me non si tratta di avere delle tabelle con quei nomi. Piuttosto devi avere una tabella di "storico" (con tanto di almeno un campo di tipo Data/Ora) dove TRACCI "quello che fai passo passo". All'inizio devi semplicemente inserire valori semplici/primordiali. Quando ti accorgerai che quei valori tendono a ripetersi sovente qui o li, allora cerchi di schematizzare le tue "fasi" con opportune query che le traccino. Quando sei sicuro che stai focalizzando la tua attenzione su un set di dati coerente, allora predisporrai opportune "query di accodamento" ecc...però non posso dirti tutto senza uno schema NORMALIZZATO di tabelle "ben correlate".
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    ...
    Osvaldo, per le prime osservazioni concordo.
    Per la questione di produzione, la cosa è più articolata, come avevo cercato di spiegare sopra, ovvero... un Prodotto quando deve essere prodotto serve avere da qualche parte le fasi di produzione... un po come una Ricetta... definire la ricetta non significa produrre, quindi non significa generare uno storico, ma significa solo definire la Ricetta, ovvero Materiali e quantità.
    Quando si mette in produzione un Prodotto, si ricarica la sua ricetta, e, vengono inserite nello storico le singole fasi(i singoli componenti e scaricati da magazzino)...

    Questo determina una struttura relazionale più articolata, ma anche una logica di utilizzo differente.
    Francamente da quanto leggo, credo ci sia molto lavoro da fare ma principalmente a carico dell'OP che deve rielaborare il sistema Relazionale in modo più tecnico, così continua a ragionare come fosse un Foglio di Excel e poco si sposa con la gestione di un DB.
  • Re: Compilazione Ciclo di un Oggetto per Reparto

    Ciao Osvaldo,
    Errore mio, ho tralasciato alcune strutture già compilate per concentrarmi sul centro dell'applicativo.
    Dove ho potuto, ho costruito delle tabelle di appoggio, per non avere dati ridondanti.

    Ti allego il file per farti capire fino a dove sono arrivato. Ho aggiunto la tabella tblStorico come mi hai suggerito, in cui vado a prendere quello che mi interessa.


    DB Pianificazione

    @Alex ha scritto:


    ...
    Quando si mette in produzione un Prodotto, si ricarica la sua ricetta, e, vengono inserite nello storico le singole fasi(i singoli componenti e scaricati da magazzino)...
    Ciao Alex, il programma dovrebbe solamente dare l'opportunità all'operatore di inserire la data di quando quella iterazione, per quell'articolo, è stata fatta ed eventualmente una nota.
Devi accedere o registrarti per scrivere nel forum
19 risposte