Vai al contenuto

DBF009 - Sincronizzazione magazzini

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: CONTATTI Tabella: DFMAGAZZINI - Anagrafica magazzini Logica generale Sincronizzazione magazzini tra tra AREA e il DB frontiera. Per il momento funziona solo in IMPORT Rispetto ad altre funzioni questa si comporta in modo diverso: non effettua una vera e propria importazione: quando viene trovato un nuovo magazzino viene inviata una Email informativa. Quindi il responsabile creerà il nuovo magazzino su AREA, e lo collegherà al codice di magazzino host. Ora (dal 21/01/2022) quando i due magazzini sono collegati correttamente effettua anche l'importazione di alcune informazioni (i giorni di chiusura) Configurazioni possibili

Gruppo Parametro Note
dbfront sincro-attiva
dbfront email-segnalazioni
dbfront email-informazioni
dbfront db-tipo
dbfront db-conn-string
dbfront db-log-level

Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione B - Apertura B.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: DFMAGAZZINI. Se fallita inviare una Segnalazione grave e chiudere. Tentare l'apertura della tabella semaforo: DFSEMAFORO. Se fallita inviare una Segnalazione grave e chiudere. B.2 Blocco semaforo Lettura del record DFSEMAFORO:

Nome campo Note
DF_SMF_TABELLA DFMAGAZZINI

Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF_SMF_USO_HOST = 1) Informazione sul log 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 " "

C - Sincronizzazione (Importazione) C.1 Selezione record da importare Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST: SELECT * FROM DFMAGAZZINI WHERE DF_MAG_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_MAG_KEY_HOST Questa informazione deve essere significativa, altrimenti segnalare Errore . Si dovrà cercare su COGMAGAG se esiste già un magazzino con MAGG-CODICE-HOST = DF_MAG_KEY_HOST. Controllo DF_MAG_TIP Questo campo potrà contenere "I" o "V" altrimenti segnalare Errore e skippare: "DF_MAG_KEY con DF_MAG_TIP errato: DF_MAG_TIP". E' accettato anche " ", corrisponde ad un magazzino interno. Controllo DF_MAG_VAL Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_MAG_KEY con DF_MAG_VAL errato: DF_MAG_VAL". Controllo DF_MAG_SEGNALAZIONE_INVIATA Questo campo potrà contenere 0 o 1 altrimenti segnalare Errore e skippare: "DF_MAG_KEY con DF_MAG_SEGNALAZIONE_INVIATA errato: DF_MAG_SEGNALAZIONE_INVIATA". C.3 Importazione record Se tutti i controlli sono superati, in questo programma si dovranno effettuare le seguenti attività, a seconda dei risultati trovati:

DF_MAG_KEY_HOST DF_MAG_SEGNALAZIONE_INVIATA DF_MAG_AREA_COD Attività
Non trovato 0 Vuoto Si invia una Email informativa riportando
"Trovato nuovo magazzino: DF_MAG_KEY_HOST; collegare ad un magazzino su AREA"
Dopodichè aggiornare il record DFMAGAZZINI impostando

Non trovato 0 Non vuoto Questo è un caso improbabile: il magazzino Host risulta collegato (forse manualmente) ad un magazzino AREA, ma che ha sicuramente un codice host diverso: segnalare Errore
Non trovato 1 Ininfluente Nessuna attività: è stata inviata in precedenza una mail informativa, che non è stata ancora presa in considerazione: registrare Informazione
Trovato Ininfluente Vuoto L'amministratore ha ricevuto la mail ed effettuata l'attività necessaria: creazione del magazzino su Area e collegamento.
Quindi si dovrà aggiornare:




registrare Informazione
Trovato Ininfluente Non vuoto (corrisponde al magazzino trovato) In questo caso il magazzino su Area è stato creato ed associato prima dell'attività di controllo, quindi non c'è nessuna attività da fare, ma aggiornare il flag di aggiornamento:


registrare Informazione
Trovato Ininfluente Non vuoto (corrisponde al magazzino trovato) Questo è un caso improbabile: il magazzino Host risulta collegato (forse manualmente) ad un magazzino AREA, ma che ha sicuramente un codice host diverso: segnalare Errore

NB: per il momento ignoriamo il dato DF_MAG_VAL. C.3.1 Importazione dati Nel caso in cui il raccordo è stato trovato, importare su COGMAGAG i seguenti dati

Dato Contenuto
MAGG-FL-LUNEDI DF-MAG-FL-LUNEDI
MAGG-FL-MARTEDI DF-MAG-FL-MARTEDI
MAGG-FL-MERCOLEDI DF-MAG-FL-MERCOLEDI
MAGG-FL-GIOVEDI DF-MAG-FL-GIOVEDI
MAGG-FL-VENERDI DF-MAG-FL-VENERDI
MAGG-FL-SABATO DF-MAG-FL-SABATO
MAGG-FL-DOMENICA DF-MAG-FL-DOMENICA

D - Sincronizzazione (esportazione) Fase non prevista in questo programma E - Chiusura E.1 Rilascio semaforo Aggiornare il record semaforo relativo a DFMAGAZZINI, impostando

Nome campo Note
DF-SMF-USO-AREA 0

E.2 Chiusura tabelle Chiudere le tabella DFMAGAZZINI 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