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