DBF009 - Sincronizzazione magazzini

Navigation:  »No topics above this level«

DBF009 - Sincronizzazione magazzini

Return to chapter overview

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.  

 

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".

 

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

DF_MAG_SEGNALAZIONE_INVIATA = 1

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:

DF_MAG_AREA_TIP = DF_MAG_TIP

DF_MAG_AREA_COD = magazzino a cui è stato collegato

DF_MAG_AGG_HOST = 0

DF_MAG_AGG_AREA = 1

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:

DF_MAG_AGG_HOST = 0

DF_MAG_AGG_AREA = 0

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.

 

 

 

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