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.

## Architettura

Il 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
S
Description
No description provided
Readme 5.2 MiB
Languages
JavaScript 69.7%
C# 19.4%
SCSS 6.7%
HTML 3.7%
CSS 0.2%
Other 0.3%