WMS008 - Estrazione giacenze per locazione¶
Funzione¶
Estrae su file Excel (TSV) le giacenze per locazione dalla tabella PostgreSQL DFGIACENZELOC, applicando filtri su intervallo merce, codice merce avanzato (CMA) e range o prefisso di locazione.
Menu¶
Non presente a menu (programma standalone / utility interna).
Tabelle e file principali¶
| Tabella/File | Descrizione | Accesso |
|---|---|---|
| DFGIACENZELOC | Giacenze per locazione (PostgreSQL, DB frontiera) | Lettura (cursore SQL) |
| DFLOCAZIONI | Anagrafica locazioni (PostgreSQL, DB frontiera) | Lettura (validazione filtro locazione) |
| COGMERCI | Anagrafica merci | Lettura (filtro merce cancellata) |
| COGRACMT | Raccordo merce-tabella CMA | Lettura (filtro CMA) |
| COGTABEL | Tabella generica (tipo 62 = tipologie CMA) | Lettura (validazione tabella CMA) |
| cogexprt | File di transito TSV per export Excel | Scrittura |
Copybook e sottoprogrammi¶
| Elemento | Tipo | Ruolo |
|---|---|---|
| wms008.select, wms008.fd, wms008.wrk, wms008.tm, wms008.prc | Screen-generated | Definizioni file, maschera, procedure |
| wms008.imppredf-wrk | Screen-generated | Definizioni predefinite import |
| COGU16W (util-u16) | CALL | Gestione range merce (da/a, ordinamento, validazione) |
| COGS68W (util-s68) | CALL | Estrazione dati merce (descrizione, CMA, gruppi) |
| COGS60W | CALL | Controllo input (ordinamento) |
| WIN076 | CALL | Finestra di aiuto selezione codice CMA |
| GRIDTOXS | CALL | Apertura file Excel |
| RNEWCONF | CALL | Lettura configurazioni runtime |
Configurazioni RNEWCONF¶
| Gruppo | Chiave | Uso |
|---|---|---|
| dbfront | db-conn-string (idx 1-3) | Stringa connessione PostgreSQL |
| dbfront | db-log-level | Livello log SQL |
Logica principale¶
Flusso¶
- Inizializzazione: lettura configurazioni RNEWCONF, apertura connessione PostgreSQL, preparazione maschera
- Accept loop: l'operatore inserisce i parametri di filtro:
- Ordinamento (C=codice merce, A=cod. avanzato, D=descrizione)
- Da merce / A merce (range tramite COGU16W)
- Tabella CMA + Codice CMA (filtro facoltativo su classificazione merceologica avanzata)
- Da locazione / A locazione (filtro facoltativo: range, prefisso o nessuno)
- Conferma: validazione finale di tutti i campi
- Esportazione (
c-esporta): costruzione SELECT SQL, loop su cursore, scrittura TSV, apertura Excel
Filtro locazione¶
Il programma supporta tre modalita' di filtro locazione:
| Modalita' | Condizione | Comportamento SQL |
|---|---|---|
| N (nessuno) | Entrambi i campi vuoti | Nessun filtro locazione |
| P (prefisso) | loc-da = loc-a (non vuoti) | LIKE rtrim(loc-da) \|\| '%' |
| R (range) | loc-da <> loc-a | BETWEEN loc-da AND loc-a |
La validazione del campo locazione accetta sia match esatto su DFLOCAZIONI sia match per prefisso (almeno una locazione che inizia con il valore inserito).
Costruzione SELECT¶
La query su DFGIACENZELOC esclude sempre:
- Record cancellati (gloc_fl_canc <> 'C')
- Giacenza zero (gloc_giacenza <> 0)
L'ordinamento e' sempre ORDER BY gloc_locazione, gloc_merce.
Elaborazione riga¶
Per ogni riga del cursore:
1. Verifica range merce (COGU16W con u16-ope = "Controllo")
2. Esclude merci cancellate (mer-val = "C")
3. Filtro CMA (se attivo): verifica raccordo merce-CMA in COGRACMT
4. Lookup descrizione e codice avanzato (COGS68W)
5. Scrittura riga TSV
Formato output TSV¶
Il file viene scritto con due righe di intestazione (riga 1: tipi colonna S/N, riga 2: nomi colonna) seguite dai dati.
| Colonna | Contenuto | Tipo |
|---|---|---|
| Cod merce interno | Chiave merce (gru-sot-cod, 9 char) | S |
| Cod merce avanzato | Codice CMA dalla merce | S |
| Descrizione merce | Descrizione completa (da COGS68W) | S |
| Locazione | Codice locazione | S |
| Classe | Classe locazione | S |
| Giacenza | Giacenza numerica | N |
Il file viene salvato in ext-tmp-dir con nome wms008-{operatore}-{data}-{ora}.xls e aperto automaticamente con Excel tramite GRIDTOXS.
Note¶
- Il pattern di maschera (accept loop con F2=indietro, F3=conferma, ESC=esci) e' analogo a IMPLIS.
- La connessione PostgreSQL segue il pattern WMSW03/WMSW04 (sql-init, cursore, sql-exit).
- I contatori letti/esportati vengono aggiornati a video ogni 50 record.
- Se nessun dato viene esportato, viene mostrato un messaggio di warning e il file non viene aperto.