MagMan
Gestione magazzino per applicazioni BeamWall, integrato con EgtBeamWall.
Prerequisiti e versioni
Un prerequisito è il disaccoppiamento tra EgtB&W ed il componente MagMan: abbiamo che il sw EgtB&W è basato su netFramework 4.7.2 mentre l'applciazione, che deve girare su windows e linux e quindi dotNet Core 6.0 LTS o successivi, non può essere direttamente connessa tramite dll
In particoalre il problema c'è a livello delle librerie di accesso EntityFramework.
Per superare il problema il disaccoppiamento sarà svolto tramite chaimate REST che il client (applicazione EgtB&W) farà al server.
Inoltre la distribuzione della funzionalità, per essere semplificata,a vverra tramite apposito pacchetto nuget ospitato sul repository nexus aziendale.
Descrizione
Lo scopo principale dell'applicazione è fare da gestore del magazzino grezzi / scarti (remnant) che possono essere impiegati per i nesting e la gestione dei progetti di magazzino.
Insieme a questo, per completare in parte le funzionalità di tipo Industria 4.0, sono previste funzionalità di gestione dei dati di stato impianto, registrazione log e reportistica base di primo livello sull'impianto.
Il sofware è previsto in modalità multi-tenant, dove verrà generato un DB per ogni cliente nel quale andranno a confluire i dati di una o più macchine che il cliente possiede e gestite con EgtB&W; in questo modo è sempre possibile un upgrade dall'infrastruttura cloud di EgalWare verso il CUBE locale del cliente qualora desiderato.
Di base il sistema deve prevedere il riconoscimento degli utenti e/o dei software EgalWare licenziati e reindirizzare l'impiego delle funzionalità avanzate verso il DB dedicato al cliente.
## ArchitetturaIl progetto è pensato in architettura multi-tenant per la versione online, ovvero un unico indirizzo web (tramite load balancers x reverse proxy) che fornisce l'applicazione a tutti i clienti.
Ogni cliente, facendo login, verrà riconosciuto e gli verrà fornita la partizione dati/DB di competenza del tenant secondo lo schema seguente:
Workflow
Di seguito lo schema di funzionamento:
flowchart TB
user(User Login\n web browser) --> ServerApp
egtbw(EgtB&W sw\n REST call) --> ServerApp
ServerApp{{magman.egalware.com}} --> multiTenant(Admin DB)
ServerApp --> clientData(Tenant DB Data)
multiTenant--> tenantMgmt(Clienti)
multiTenant--> MachMgmt(Macchine)
multiTenant--> KeyMgmt(Chiavi/Licenze)
multiTenant--> UserMgmt(Utenti)
clientData --> MagData(Dati Magazzino)
clientData --> MachineData(Stato Impianto)
clientData --> LogData(Log Impianto)
clientData --> CommData(Stato Commesse)
style ServerApp fill:#2239EF
style multiTenant fill:#CD1111
style clientData fill:#22AB19
In pratica le chiamate vengono inviate tutte al servizio web e da qui smistate per competenza e funzionalità verso i vari DB.
Chiavi/Licenze rappresentano le info associate ad ogni licenza software, che poi rappresenta una macchina tracciata.
A livello architetturale il progetto è separato tra la parte Data.Admin e Data.Tenant.
Oggetti di base
Gli oggetti di abse sono i seguenti:
- utenti (reali o associati al programma)
- anagrafica barre
- locazioni magazzino (inizialmente 1 sola, possibilità espansione futura locazioni)
- giancenze articoli
- progetti (prod), in particolare l'ultimo:
- dataora calcolo,
- impegno articoli stimato associato,
- inizio prima lavorazione,
- ultima lavorazionie registrata,
- chiusura (manuale/esplicita, opzionale)
Ruoli utente
Di seguito sono indicati e definiti i ruoli utente previsti, con indicazione esplicita se si tratta di ruoli INT (=amministrativi di Egalware) o di ruoli cliente
| Nome Ruolo | Int/Ext | Customer |
|---|---|---|
| SuperAdmin | Int | Ruolo amministrativo massimo, può creare nuovi clienti (e relativi DB) ed associare user a DB cliente |
| PowerReader | Int | Ruolo di base per ogni login con email @egalware, non può modificare o creare associazioni user/DB |
| BWUser | Ext | User implicito associato ad ogni chiave licenza di EgtB&W e di conseguenza ad uno specifico ClientID |
| RealUser | Ext | User esplicito, dotato di email univoca, associato in fase di creazione/primo accesso ad uno specifico ClientID |
Flusso operativo da programma
Quando è il programma EgtBW a impiegare il sistema, questo avverrà tramite procedure REST. Un programma di esempio (con relativa ddl di comunicazione) è incluso nel progetto.
In particolare sono previste le seguenti funzionalità
- riconoscimento di ogni chiave dato numero/codice (per determinare user/pwd)
- riconoscimento della singola macchina per cui il software è stato fornito (identica per macchina e pc ufficio)
- funzionalità di richiesta anagrafiche magazzino che restituisce tutto il set delle anagrafiche in magazzino, inteso come elenco articoli dato materiale, sezione, ...
- funzionalità di richiesta stato magazzino che restituisce tutto il set delle barre in magazzino (codice anagrafico, stato, valori giacenza)
- funzionalità di ricerca magazzino che restituisce il set delle barre in magazzino che rispondono ai criteri richiesti 8es solo barre di un certo materiale, materiale + sezione...
- funzionalità di impegno barre (ovvero viene registrato a sistema che un numero specifico di barre sono assocaite ad un ID progetto)
- funzionalità di consumo di una barra al momento dell'inizio della lavorazione della stessa
- funzionalità di versamento remnant a fine lavorazione barra
- funzionalità di registrazione eventi (log) per replica log locali
- funzionalità di registrazione stato impianto (tramite invio in particolari stati del processo)
Flusso operativo Egalware
Egalware potrà registrare i propri utenti con le email @egalware.com e questi verranno automaticamente riconosciuti come validi e in grado di operare con livello base nel sistema come PowerReader.
Verranno poi individuati i key user EgalWare di livello SuperAdmin, che potranno svolgere i seguenti compiti
- creare nuovi ClientID (quindi i relativi DB univoci) da poter inserire nelle configurazioni dei programmi EgtB&W
- creare nuovi utenti data email (che potranno poi sempre tramite email impostare autonomamente la loro password di accesso)
- verificare gli user (sia di programma che espliciti) e le relative associazioni ai ClientID
- effettuare associazione utenti e ClientID in caso di problemi in fase di registrazione
- accedere a tutti i dati dei singoli clienti e macchine
Gli utenti base Egalware di livello PowerReader potranno
- verificare le anagrafiche clienti
- verificare le anagrafiche utente
- verificare le informazioni di base associate allo stato impianto dei clienti e gli ultimi dati inviati/ricevuto dai sw EgtB&W
Flusso operativo utente
Ogni end user potrà registrare ed associare quanti utenti voglia a patto che siano dotati di un email univoca per il sistema (e abbia ovviamente almeno 1 macchina con relativo software EgtB&W intestata).
Ogni nuovo user dovrà poi essere associato al bucket del cliente tramite un codice univoco
Revisione documento
| Version | Date | Editor | Note |
|---|---|---|---|
| 0.3 | 2024.01.10 | S.E. Locatelli | Revisione modalità multi-tenant |
| 0.2 | 2024.01.05 | S.E. Locatelli | update ruoli e workflow |
| 0.1 | 2023.12.28 | S.E. Locatelli | Prima revisione documento |