Vai al contenuto

DBF010 - Sincronizzazione giacenze

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: CONTATTI Tabella: DFGIACENZE - Giacenze di magazzino Logica generale Sincronizzazione delle giacenze di magazzino tra AREA e il DB frontiera. Per il momento funziona solo in IMPORT Magazzini secondari Per il momento l'importazione giacenze è prevista solo per i magazzini principali. Il programma pero' se non trova il collegamento con un magazzino principale, cercherà se il magazzino da importare è collegato con un magazzino secondario: in questo caso la riga verrà marcata come importata senza dare segnalazioni, ma non effettuerà - per ora - nessuna importazione NOTA operativa/funzionale La sincronizzazione delle giacenze potrebbe provocare delle incongruenze: in primo luogo, se si decide di non importare anche i movimenti di magazzino dall'HOST che la determinano. In secondo luogo, a seconda dei tempi di aggiornamento. Se importo una giacenza immediatamente dopo che su AREA è stato effettuato un movimento, la giacenza attesa su AREA potrebbe non essere corretta. Questo finchè non si effettua il seguente procedimento: 1. Esportazione movimento AREA->DB frontiera 2. Importazione movimento DB frontiera -> HOST e conseguente aggiornamento della giacenza 3. Esportazione giacenza HOST -> DB frontiera 4. Importazione giacenza DB frontiera -> AREA Si potrebbe pensare, se questo crea disfunzioni, di studiare un metodo che impedisce l'aggiornamento a seconda della data e ora di aggiornamento su AREA e sul DB frontiera, ma potrebbe risultare difficoltoso e comunque non risolvere il problema. Configurazioni possibili

Gruppo Parametro Note
dbfront sincro-attiva
dbfront email-segnalazioni
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: DFGIACENZE. 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 DFGIACENZE

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 DFGIACENZE WHERE DF_GIA_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute NB: per ottimizzare i tempi di elaborazione, precaricare in tabella di working l'elenco dei magazzini. Controllo DF_GIA_MAG_HOST Questa informazione deve essere significativa, altrimenti segnalare Errore . 1. Si dovrà cercare su COGMAGAG se esiste già un magazzino con MAGG-CODICE-HOST = DF_GIA_MAG_HOST. Se non esiste: 2. Si dovrà cercare su COGMAGPE se esiste un magazzino secondario con MGP-CODICE-HOST = DF_GIA_MAG_HOST. Se non esiste: 3. Segnalare Errore : "DF_GIA_MAG_HOST : magazzino non collegato ad un magazzino di area" Se esiste ed è collegato ad un magazzino interno, sarà quello su cui aggiornare la giacenza. Se esiste ed è collegato ad un magazzino secondario, marcare il record come importato, ma non fare nulla e non dare segnalazioni. Controllo DF_GIA_MPR_HOST questa informazione contiene il codice merce avanzato di una merce (che corrisponde al codice articolo HOST) su cui impostare lo sconto. Quindi, cercare su COGRACMC; se non esiste segnalare Errore "DF_GIA_MPR_HOST; merce non esistente" C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della giacenza. Ricerca su COGSLMAG:

Nome campo Contenuto
MSAL-MAG1 Il magazzino collegato a DF_GIA_MAG_HOST
MSAL-MERCE Il codice merce collegato a DF_GIA_MPR_HOST

Se il record non esiste inserirlo. Dopodichè, aggiornare la quantità giacenza, ma solo se diversa da quella già presente, per minimizzare la successiva esportazione verso WEB:

Nome campo Contenuto
MSAL-QTA DF_GIA_QTA_GIA
MSAL-FL-AGG "S"

C.4 Aggiornamento stato record Aggiornare il record DFGIACENZE impostando:

Nome campo Contenuto
DF_GIA_AGG_HOST 0
DF_GIA_AGG_AREA 0

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

Nome campo Note
DF_SMF_USO_AREA 0

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