Posizione nel menu
Programma non a menu
Linkage section
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 |
|
|
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: 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 |
Box |
Corsia |
Colonna |
Piano |
A3;148 |
A3 |
148 |
A |
3 |
#1 |
48 |
A3;149 |
A3 |
149 |
A |
3 |
#1 |
40 |
A2;152 |
A2 |
152 |
A |
2 |
#1 |
52 |
D11;78 |
D11 |
78 |
D |
11 |
|
78 |
C-A-1;2 |
C-A-1 |
2 |
C |
A |
1 |
2 |
C-A10;2 |
C-A10 |
2 |
C |
A |
10 |
2 |
C4;2 |
C4 |
2 |
C |
4 |
2 |
|
C-A-1;3 |
C-A-1 |
3 |
C |
A |
1 |
3 |
SS01;60 |
SS01 |
60 |
S |
S |
01 |
60 |
R0103;0 |
R0103 |
0 |
R |
01 |
03 |
0 |
D15;0 |
D15 |
0 |
D |
15 |
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
a.Potrebbe esserci un secondo separatore (es. C-A-1); il contenuto dopo il secondo separatore è la Colonna
b.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:
a.I primi due caratteri diventano la Corsia
b.Il resto diventa la Colonna
4.Cassetto: il contenuto dovrebbe essere sempre numerico; se è > 99:
a.Corsia= "#"+prima cifra
b.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 |
•LGM-BOX |
|
•LGM-CORSIA |
|
•LGM-COLONNA |
|
•LGM-PIANO |
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 |