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