Vai al contenuto

DBF014 - Sincronizzazione ubicazioni

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: CONTATTI Tabella: DFUBICAZIONI - Ubicazioni merci Logica generale Sincronizzazione delle giacenze di magazzino tra AREA e il DB frontiera. Per il momento funziona solo in IMPORT 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: DFUBICAZIONI. 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 DFUBICAZIONI

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 DFUBICAZIONI WHERE DF_UBI_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_UBI_MERCE_HOST questa informazione contiene il codice merce avanzato di una merce (che corrisponde al codice articolo HOST) su cui importare l'ubicazione. Quindi, cercare su COGRACMC; se non esiste segnalare Informazione e skippare: "DF_UBI_MERCE_HOST: 'DF_UBI_MERCE_HOST' non ancora acquisito. Controllo DF_UBI_UBICAZIONE_HOST Questo campo dovrà essere significativo. Se non lo è segnalare Errore e skippare: "DF_UBI_MERCE_HOST: 'DF_UBI_UBICAZIONE_HOST' non significativa. Controllo DF_UBI_BOX DF_UBI_CORSIA DF_UBI_COLONNA DF_UBI_PIANO Se almeno uno di questi campi è significativo, significa che l'ubicazione è già stata acquisita. Proseguire comunque con l'elaborazione senza segnalazioni. Controllo DF_UBI_VAL Questo campo potrà valere: " " o "C"; se è presente un valore diverso segnalare Errore e skippare: "DF_UBI_MERCE_HOST; DF_UBI_VAL contiene un valore errato: DF_UBI_VAL" C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della ubicazione C.3.1 "Traduzione" ubicazione Il campo DF_UB_UBICAZIONE_HOST potrebbe esere in un formato non compatibile con quella attualmente gestita in AREA. Quindi, per alcuni clienti potrebbe essere necessario una traduzione. AURISERVICE (k-personal-auriservice) Il campo ubicazione sarà formato nel seguente modo: "Marca;Cassetto" Vediamo i casi possibili che attualmente è necessario gestire

DF_UBI_UBICAZIONE_HOST AdHoc Area
Marca Cassetto
A3;148 A3 148
A3;149 A3 149
A2;152 A2 152
D11;78 D11 78
C-A-1;2 C-A-1 2
C-A10;2 C-A10 2
C4;2 C4 2
C-A-1;3 C-A-1 3
SS01;60 SS01 60
R0103;0 R0103 0
D15;0 D15 0

Quindi, le regole dovrebbero essere: 1. Il primo carattere della Marca è il Box 2. Se nella Marca è presente un primo separatore (es. C-A10) il primo carattere successivo è la Corsia; in questo caso 1. Potrebbe esserci un secondo separatore (es. C-A-1); il contenuto dopo il secondo separatore è la Colonna 2. Non c'e' il secondo separatore (es. C-A10): il contenuto dopo il primo carattere diventa la Colonna 3. Se la Marca non ha separatore, allora: 1. I primi due caratteri diventano la Corsia 2. Il resto diventa la Colonna 4. Cassetto: il contenuto dovrebbe essere sempre numerico; se è > 99: 1. Corsia\= "#"+prima cifra 2. Piano\=restanti cifre 5. Cassetto:se è < 99: la Corsia rimane invariata (eventualmente viene pilotata dalla Marca); il contenuto viene messo nel Cassetto In tutti gli altri casi Usare il campo DF_UBI_UBICAZIONE_HOST per intero (LGM-POSIZIONE) C.3.2 Ricerca esistenza ubicazione Eseguire una ricerca su COGLGMER, usando LGM-CHIA2, per verificare se l'ubicazione trovata esiste già sulla merce. C.3.2.1 Ubicazione già presente In questo caso, se DF_UBI_VAL = 'C', cancellare il record su COGLGMER, segnalando una Informazione : "DF_UBI_MERCE_HOST: ubicazione 'DF_UBI_UBICAZIONE_HOST' cancellata. Altrimenti proseguire con il punto C.4 C.3.2.2 Ubicazione non presente Se DF_UBI_VAL = 'C' proseguire con il punto C.4 Altrimenti inserire la nuova ubicazione su COGLGMER

Nome campo Contenuto
LGM-MERCE La merce in elaborazione
LGM-PROG Il primo progressivo libero sulla merce
LGM-POSIZIONE L'ubicazione in elaborazione




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

Nome campo Contenuto
DF_UBI_AGG_HOST 0
DF_UBI_AGG_AREA 1
DF_UBI_BOX L'ubicazione come memorizzata su COGLGMER
DF_UBI_CORSIA
DF_UBI_COLONNA
DF_UBI_PIANO

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

Nome campo Note
DF_SMF_USO_AREA 0

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