Posizione nel menu
Programma non a menu
Linkage section
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
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 |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
Elaborazione
Tipi di segnalazione:
Vedi Tipi di segnalazione
A - 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 .
Si dovrà cercare su COGMAGAG se esiste già un magazzino con MAGG-CODICE-HOST = DF_GIA_MAG_HOST. Se non esiste segnalare Errore : "DF_GIA_MAG_HOST : magazzino non collegato ad un magazzino di area"
Se esiste, sarà il magazzino interno su cui aggiornare la giacenza.
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 |