Vai al contenuto

DBFM01 - Esportazione manuale inventario

Posizione nel menu Programma non a menu Linkage section Programma con linkage standard, per lancio da menu Tabella: DFINVENTARIO - Esportazione giacenze alla data Logica generale Esportazione on-demand delle giacenze ad una certa data sul db frontiera NB: per motivi tecnici, il programma ragiona in due modi diversi: * Magazzini principali: calcolo giacenza alla data direttamente dal programma * Magazzini secondari: preleva i dati da un inventario, alla data richiesta, calcolato in precedenza Funziona solo in Esportazione Il programma esporta tutte le combinazioni "merce/magazzino". Tuttavia per ottimizzare il numero di record esportati sul db, verranno considerati solo i prodotti movimentati Configurazioni possibili

Gruppo Parametro Note
dbfront sincro-attiva
dbfront email-segnalazioni
dbfront db-tipo
dbfront db-conn-string
dbfront db-log-level
dbfront magazzino-esp-interventi

Maschera del programma Data elaborazione Data alla quale esportare le giacenze Merci lette Giacenze esportate Campi in sola lettura dove saranno mostrati a video i dati relativi all'avanzamento dell'elaborazione. Avviso all'utente Prima di procedere con l'elaborazione chiedere all'utente se ha già calcolato l'inventario dei magazzini secondari necessari (in una futura implementazione questa fase potrà essere creata automaticamente durante l'elaborazione) Elaborazione B - Apertura B.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: DFINVENTARIO. Se fallita emettere un messaggio e chiudere. Tentare l'apertura della tabella semaforo: DFSEMAFORO. Se fallita emettere un messaggio e chiudere. B.2 Blocco semaforo Lettura del record DFSEMAFORO:

Nome campo Note
DF_SMF_TABELLA DFINVENTARIO

Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF_SMF_USO_HOST = 1) Emettere un messaggio e chiudere. Dopodichè aggiornare il semaforo impostando:

Nome campo Note
DF_SMF_USO_AREA 1
DF_SMF_VERSIONE Versione attuale: 1

B.3 Aggiornamento stato Aggiornamento dello stato sul record specifico; in particolare:

Dato Contenuto
DBFST-STATO "I"
DBFST-ATT-DATA Data sistema
DBFST-ATT-ORA Ora sistema
DBFST-SCHED-DATA Sommare il tempo di attesa a data/ora sistema
DBFST-SCHED-ORA
DBFST-ERRORI 0
DBFST-MSG-ERRORE " "
DBFST-LOG-PROCEDURA " "

D - Esportazione D.1 - Precarico i magazzini Creo una tabella di working in cui inserisco i magazzini da considerare; questa tabella conterrà: * T-M-CLASSE: Classe magazzino * "P": principale * "S": Secondario * T-M-TIPO Tipo magazzino (solo per i secondari) * T-M-COD Codice magazzino x(05) * T-M-HOST Codice magazzino HOST da esportare D.1.1 - Precarico i magazzini interni Tutti i magazzini che hanno un codice host vanno esportati su di esso. Altrimenti devono essere collegati al magazzino host del magazzino "sede" (MAGZ-SEDE) Quindi, le giacenze dei magazzini dove MAGZ-CODICE-HOST è vuoto dovranno essere sommate alla giacenza del magazzino sede: Scansione di COGMAGAZ; scartare i magazzini di clienti (MAGZ-FL-TIP = "C") Per ciascuno aggiungere una riga alla tabella di W/S:

Dato Contenuto
T-M-CLASSE "P"
T-M-TIPO " "
T-M-COD MAGZ-COD
T-M-HOST MAGZ-CODICE-HOST relativo al magazzino letto. Se vuoto, allora qui indicare MAGZ-CODICE-HOST del magazzino sede

D.1.2 - Precarico i magazzini secondari Solo se la configurazione magazzino-esp-interventi è significativa. Scansione di COGMAGPE; scartare i magazzini * Chiusi (MGP-FL-CLOSE = "C") * Di terzi (MGP-FL-TERZI = "S") * Non collegati a codice host (MGP-CODICE-HOST) Per ciascun magazzino valido aggiungere una riga alla tabella di W/S:

Dato Contenuto
T-M-CLASSE "S"
T-M-TIPO MGP-TIP
T-M-COD MGP-COD
T-M-HOST MGP-CODICE-HOST

D.2 - Pulizia inventario Tramite un comando SQL eseguire la cancellazione di tutti i record su DFINVENTARIO dove DF-INV-DATA = data richiesta Tramite un comando SQL effettuare anche la pulizia di tutti i record inventario già elaborati dall'host (DF_INV_AGG_HOST = 1 e DF_INV_AGG_AREA = 1) D.3 - Scansione merci Scansione degli articoli di magazzino (scansione di COGMERCI); considerare i prodotti: * Di tipo "Merce" (MER-CLASSE = "M") * Non cancellati (MER-VAL <> "C") D.3.1 - Ricerca giacenza merce sui magazzini Per ogni merce aggiornare il contatore "Merci lette" Per ciascun articolo si dovrà: 1. Cerca se la merce è movimentata sul magazzino in esame: se non è movimentata, non si esporta per il magazzino in esame 2. calcolare la giacenza alla data richiesta, per ciascun magazzino presente nella tabella creata in precedenza, a seconda che sia principale o secondario (T-MAG-CLASSE). D.3.1.1 - calcolo giacenza magazzino principale Chiamata a COGU31, passandogli i parametri:

Dato Contenuto
U31-MERCE Merce in elaborazione
U31-MAG T-MAG-COD
U31-DATA Data di elaborazione

Se U31-MERCE-MOVIMENTATA = "N", skippare la merce. All'uscita, U31-QTA conterrà la giacenza calcolata: eseguire quindi D.3.2 D.3.1.2 - calcolo giacenza magazzino secondario Eseguire la lettura di COGINVLV:

Dato Contenuto
LNV-MERCE Merce in elaborazione
LNV-MAG-TIP T-MAG-TIPO
LNV-MAG-COD T-MAG-COD
LNV-DATA Data di elaborazione

Se il record non esiste, la merce è da considerarsi non movimentata sul magazzino in elaborazione. Quindi skippare la merce. LNV-QTA-CAL conterrà la giacenza calcolata: eseguire quindi D.3.2 D.3.2 - Aggiornamento giacenza su DFINVENTARIO Cercare l'esistenza di un record su DFINVENTARIO:

Dato Contenuto
DF-INV-DATA Data di elaborazione
DF-INV-MAG-HOST T-MAG-HOST
DF-INV-MPR-HOST Il codice merce avanzato della merce in elaborazione

Se il record non esiste, inserirlo. Quindi sommare la giacenza calcolata a DF-INV-QTA-GIA e aggiornare il record

Dato Contenuto
DF-INV-DATA Data di elaborazione
DF-INV-QTA-GIA DF-INV-QTA-GIA + giacenza calcolata
DF-INV-AGG-AREA 1

Aumentare il contatore delle giacenze esportate. E - Chiusura E.1 Rilascio semaforo Aggiornare il record semaforo relativo a DFINVENTARIO, impostando

Nome campo Note
DF_SMF_USO_AREA 0

E.2 Chiusura tabelle Chiudere le tabella DFINVENTARIO e DFSEMAFORO E.3 Aggiornamento stato Aggiornamento dello stato sul record specifico; in particolare:

Dato Contenuto
DBFST-STATO "A"
DBFST-ERRORI Numero di errori rilevati
DBFST-MSG-ERRORE Ultimo errore rilevato
DBFST-LOG-PROCEDURA Codice procedura di gestione log

Estratto da documentazione interna ClickUp