Files
flywms-core/docs/specs/03_modello_concettuale.md

2.8 KiB

Modello concettuale iniziale

Il modello deve essere abbastanza generale da non ripetere i limiti del legacy, ma non cosi' astratto da bloccare lo sviluppo.

Entita' principali

LogisticUnit

Rappresenta una qualsiasi unita' fisica movimentabile.

Esempi:

  • pallet;
  • cassa;
  • cartone;
  • bobina;
  • contenitore;
  • roll;
  • collo;
  • unita' specifica del cliente.

Attributi iniziali:

  • codice barcode;
  • tipo unita';
  • stato logico;
  • peso lordo;
  • peso netto;
  • tara;
  • dimensioni;
  • volume;
  • data creazione;
  • origine dati;
  • riferimento ERP.

Una LogisticUnit puo' esistere in FlyWMS Core anche prima del primo movimento fisico registrato nel WMS.

In questo caso la sua origine e' ERP e la sua posizione iniziale e' una location virtuale di ingresso, normalmente NON_SHELVED.

LogisticUnitContent

Descrive il contenuto di una unita' logistica.

Serve per gestire:

  • una UDC con un solo lotto;
  • una UDC con piu' lotti;
  • una UDC con piu' articoli;
  • quantita' parziali.

Location

Rappresenta una posizione logica o fisica.

Tipi iniziali:

  • magazzino;
  • area;
  • corsia;
  • scaffale;
  • livello;
  • cella;
  • location virtuale.

Le location virtuali sostituiscono i codici convenzionali legacy.

Location virtuali obbligatorie nella prima versione:

  • NON_SHELVED;
  • SHIPPED.

Location virtuali opzionali o future:

  • RECEIVING;
  • QUALITY_HOLD;
  • DAMAGED;
  • STAGING.

Ogni location virtuale deve avere codice interno, label utente e, se necessario, barcode convenzionale configurabile.

InventoryMovement

Registra ogni movimento.

Campi concettuali:

  • unita' logistica;
  • location sorgente;
  • location destinazione;
  • operatore;
  • timestamp;
  • causale;
  • documento sorgente;
  • origine del movimento;
  • transazione.

Il movimento deve essere espresso sempre come trasferimento:

from_location -> to_location

Le due operazioni elementari esposte al barcode sono:

  • prelievo: rimozione da una location sorgente;
  • versamento: inserimento in una location destinazione.

Nel modello applicativo un'azione operativa puo' combinare prelievo e versamento in una sola transazione.

CurrentInventory

Rappresenta la giacenza corrente materializzata.

Puo' essere calcolata dai movimenti oppure mantenuta come tabella aggiornata per performance.

Stati logici iniziali

  • PRODUCED_BY_ERP;
  • RECEIVED;
  • NON_SHELVED;
  • SHELVED;
  • RESERVED_FOR_PICKING;
  • SHIPPED;
  • BLOCKED;
  • UNKNOWN.

Relazione con ERP

Il modello deve prevedere una fonte ERP per le LogisticUnit.

Il primo obiettivo non e' importare tutto l'ERP, ma creare una vista o tabella di staging che dica:

  • codice UDC;
  • data creazione;
  • articolo o articoli;
  • lotto o lotti;
  • quantita';
  • peso;
  • dimensioni;
  • documento o contesto di origine;
  • stato ERP rilevante.

Le UDC presenti nello staging ERP ma non ancora movimentate nel WMS devono risultare in CurrentInventory come NON_SHELVED logiche.