Vai al contenuto

WMS002 - Mappatura magazzini (locazioni)

Descrizione

Gestione a griglia della mappa delle locazioni fisiche (DFLOCAZIONI) di un magazzino. Supporta inserimento, modifica, eliminazione e importazione da file esterno. Puo' essere richiamato in popup da altri programmi tramite utilwms002.cpy per la selezione di una locazione, con prefiltraggio per magazzino e classe locazione.

  • Magazzino > Giacenze & Sottoscorta > Locazioni > Mappatura magazzini

Tabelle utilizzate

Tabella Accesso Descrizione
DFLOCAZIONI Lettura / Scrittura Mappa locazioni fisiche del magazzino (DB frontiera)
FEURTAB Lettura Tabella euristica parametri (standard)
pclinp Lettura File esterno per importazione locazioni (binary sequential, 256 char/rec)
FLSTA n/a File di stato (standard)

Configurazioni RNEWCONF lette

Il programma legge la configurazione aziendale tramite x99-src-cfg. Parametri rilevanti:

  • tm-cfg-gestione-tablet: deve essere "S" per abilitare la procedura
  • tm-cfg-bin-tipo, tm-cfg-bin-path: path binari
  • tm-cfg-dbf-conn-string: stringhe connessione DB frontiera
  • tm-cfg-dbf-log-level: livello log
  • tm-cfg-default-monopro: flag monoprocessore
  • tm-cfg-nome-file-modello: nome file modello per importazione

Flusso di elaborazione

  1. Inizializzazione standard; verifica tm-cfg-gestione-tablet
  2. Se richiamato con utilwms002 (called = program-id): prefiltraggio per magazzino (w-dc-i-mag) e classe locazione (w-dc-i-loc-classe)
  3. Apertura DB frontiera (x-apri-tabelle-db)
  4. Accept magazzino (tm-mag) e filtro opzionale
  5. Caricamento locazioni in griglia (z-grid-det-crea-transito) da DFLOCAZIONI, con dati: stanza, corsia, posto, piano, cella, classe, priorita', capacita', cod-host
  6. Ciclo interattivo:
  7. F2: seleziona tutto
  8. F3 conferma: salva modifiche su DFLOCAZIONI
  9. F3 aggiorna: ricarica
  10. F5 stampa etichette: stampa etichette locazioni selezionate
  11. F6 importa: legge pclinp (file binario 256 char), valida e carica locazioni
  12. Shift+F7: apre WMSW04 o funzione giacenze per locazione
  13. CTA aggiungi / CTE elimina: gestione righe
  14. Invio: selezione popup (se w-dc-called = "S")

Chiamate a sottoprogrammi

Programma Scopo
COGU10W Recupero divisa di conto
COGPA9 Import/export dati locazioni (via utilcogpa9.cpy)
utilw36 Ricerca magazzino
utilwmsw03 Utility WMS (via utilwmsw03.cpy)
z-99-init-program Inizializzazione standard

Linkage

  • wcont.cpy / wcont1.cpy: strutture standard
  • utilwms002.cpy: parametri popup (called, caller, i-mag, i-loc-classe)
  • u-copiaf.cpy: struttura copia file
  • l-copiaf.cpy: linkage copia file

Struttura dati locazione (tab-dati-ie)

Campo Descrizione
tm-die-mag-cod Codice magazzino (5 car.)
tm-die-stanza Stanza (2 car.)
tm-die-corsia Corsia (2 car.)
tm-die-posto Posto (2 car.)
tm-die-piano Piano (2 car.)
tm-die-cella Cella (2 car.)
tm-die-classe Classe locazione (1 car.)
tm-die-priorita Priorita' (1 car.)
tm-die-capacita Capacita' (9(10)v999)
tm-die-cod-host Codice host sistema esterno (20 car.)

Note

  • Versione tabella DFLOCAZIONI: k-versione-dflocazioni = 1; nome sincro: "DFLOCAZIONI"
  • Il file di importazione (pclinp) e' di tipo binary sequential con record da 256 caratteri
  • Il buffer di importazione supporta fino a k-max-size-buffer = 20000 elementi
  • La tabella k-modelli-ie-i-locaz.cpy definisce i modelli import/export

Validazioni recenti

Visualizzazione giacenze per locazione (S-F7)

Prima di richiamare WMSW03 per la visualizzazione delle giacenze per locazione, sono stati introdotti due controlli espliciti che mostrano "Nessuna locazione selezionata" e tornano alla griglia:

  1. gor-r-n-m = 0 oppure tm-grid-det-dati-pnt = zero -> griglia vuota
  2. i = 0 oppure tm-r-locazione (i) = " " -> riga vuota o cursore non posizionato

In precedenza il blocco veniva eseguito comunque se la griglia era vuota o non vi era una locazione realmente selezionata, con effetti laterali sulla chiamata a WMSW03.

Cancellazione riga (a-modalita = "A", w-dc-called not = "S")

Il guard sulla cancellazione e' stato esteso: oltre a tm-grid-det-dati-pnt = zero ora viene controllato anche gor-r-n-m = 0, evitando che la riga "vuota" residua dopo l'eliminazione dell'ultima locazione possa essere selezionata per cancellazione.

Casistica problemi noti

Index out of bound su F8/Shift+F7 con griglia vuota (bug 869df00yn)

  • Sintomo: pressione di F8 o Shift+F7 sulla griglia locazioni quando vuota provocava errore "index out of bound" del runtime.
  • Causa: i rami non controllavano tm-grid-det-dati-pnt = zero e gor-r-n-m = 0 prima di accedere al vettore tm-r-locazione(i).
  • Correzione: aggiunti guard espliciti che mostrano "Nessuna locazione selezionata"/"Nessuna locazione presente in griglia" e tornano a a-grid (vedi sezioni "Validazioni recenti" sopra). La stessa correzione e' stata applicata in modo piu' esteso al gemello WMSW02.
  • Riferimento: dettaglio - ClickUp 869df00yn