AD HOC REVOLUTION
Modulo Logistica Remota
Logistica Remota
Modulo Logistica Remota
Release
Modulo
Funzionalità
del
AHR 5.0
Logistica Remota
Nuovo modulo
20/01/2006
Emissione:
Revisione
Data ultima
revisione
0
Approvazione:
Alessandro Uberti
Nicola Gorlandi
COPYRIGHT 2000 - 2006 by ZUCCHETTI S.p.A.
Tutti i diritti sono riservati. Questa pubblicazione contiene informazioni protette da copyright. Nessuna parte
di questa pubblicazione può essere riprodotta, trascritta o copiata senza il permesso dell’autore.
TRADEMARKS
Tutti i marchi di fabbrica sono di proprietà dei rispettivi detentori e vengono riconosciuti in questa
pubblicazione
ZUCCHETTI S.p.A.
Sede Operativa di Aulla
Centro Nuova Filanda snc – Aulla - MS
E-mail: [email protected]
Sito Web: http://www.zucchetti.it
Sommario
Premessa
1
Database Virtuale tra le sedi
1
Struttura collegamenti tra le sedi
1
Protocollo di Comunicazione
1
Sistema di Sincronizzazione
3
Attori di sincronizzazione
3
Ambito di Sincronizzazione
3
Nuove Tabelle del modulo
3
Validazione
4
Fase di Pubblicazione
5
Validazione dei records
5
Preparazione Files di Pubblicazione
5
Fase di Acquisizione
6
Logica di Importazione
6
Gestione dei conflitti di importazione
6
M O D U L O
L O G I S T I C A
R E M O T A
Premessa
Il modulo Logistica Remota consente di gestire installazioni di ad hoc Revolution distribuite
in sedi distinte, mediante un collegamento di tipo off-line (non in linea) on-demand (su
richiesta dell’utente) oppure schedulato, relativamente al flusso documentale e relative
anagrafiche collegate, clienti, fornitori, articoli di magazzino e saldi, situazione delle partite
aperte.
DATABASE VIRTUALE TRA LE SEDI
Sebbene ogni sede presenti una autonoma installazione di ad hoc Revolution, è possibile
pensare all’esistenza di un database virtuale costituito da un sottoinsieme di tutti i
database, filtrati in modo verticale (tabelle e campi sincronizzati) e orizzontale (records di
una tabella).
È così possibile implementare una sincronizzazione mantenendo specificità in ogni sede (ad
esempio diversi mastri di raggruppamento contabile dei clienti).
STRUTTURA COLLEGAMENTI TRA LE SEDI
La correttezza delle modifiche viene accertata dalla sede che funge da Validatore. La
modifica di un record deve necessariamente passare al Validatore affinché venga accettata
dall’intero sistema, e quindi sia modificabile nuovamente.
Si ipotizzi, ad esempio, il caricamento di un nuovo
(Validatore), che viene quindi inviato a tutti i negozi.
negozio siano accettate dal sistema, devono essere
sede centrale prima di eventuali modifiche da parte di
articolo da parte della sede centrale
Affinché le modifiche effettuate da un
necessariamente sincronizzate con la
altri negozi.
Il gruppo delle sedi avrà probabilmente una struttura a stella, con collegamenti da e verso
la sede centrale di tutte le sedi periferiche. È comunque possibile implementare anche una
struttura a grafo, ove più sedi possono essere “proprietarie” dei dati (più Validatore per
insiemi non sovrapposti di records).
PROTOCOLLO DI COMUNICAZIONE
Il protocollo di comunicazione tra le sedi si compone dei seguenti strati (partendo dal più
alto):
¾
Scambio di files contenenti i reciproci inserimenti, aggiornamento o cancellazioni
delle entità sincronizzate (articoli di magazzino, clienti, fornitori, documenti ecc.);
¾
Rete V.P.N. (Virtual Private Networking), mediante la creazione di un tunnel privato
di una rete pubblica;
¾
Rete pubblica Internet oppure collegamento diretto (anche telefonico commutato).
La sede che apre la connessione (anche in modo schedulato) fungerà sia da pubblicatore per
le variazioni apportate dalla stessa, sia da ricevente delle variazioni della controparte.
1
M O D U L O
L O G I S T I C A
All’interno di una
sincronizzazione:
R E M O T A
stessa
connessione
si
configurano
perciò
due
distinte
fasi
di
¾
Fase di Pubblicazione: il file con le variazioni prodotte localmente viene copiato nella
opportuna cartella della sede ricevente, in modo che quest’ultimo possa aggiornare il
proprio database;
¾
Fase di Acquisizione: viene letto il file con le variazioni prodotte dalla sede remota
presente nella opportuna cartella creata dal pubblicatore per ciascun ricevente, per
l’aggiornamento del database locale.
Relativamente ad un certa sede, le cartelle di origine e di destinazione possono essere
indifferentemente locali o remote:
¾
Entrambe le cartelle remote: la sede in oggetto si preoccupa di aprire la connessione
e del trasferimento fisico dei files;
¾
Entrambe le cartelle locali: l’apertura della connessione e del trasferimento fisico dei
files è di responsabilità delle altre sedi (la sede in oggetto sincronizza files già
disponibili localmente).
2
M O D U L O
L O G I S T I C A
R E M O T A
1
Capitolo
Sistema di Sincronizzazione
ATTORI DI SINCRONIZZAZIONE
¾
Pubblicatore: è la sede che durante un certo processo di sincronizzazione si occupa
dell’invio dei dati verso un’altra sede (detta Ricevente);
¾
Ricevente: è la sede che durante un certo processo di sincronizzazione riceve i dati
da una sede Pubblicatore per l’aggiornamento del database locale.
¾
Validatore: è la sede che effettua un controllo di coerenza durante l’importazione
rispetto ad un certo insieme di records; in definitiva è la sede che ha la proprietà di
un record, anche in presenza di modifiche avvenute in modo distribuito.
AMBITO DI SINCRONIZZAZIONE
L’insieme dei dati che vengono pubblicati dipende da una combinazione dei seguenti
elementi:
¾
Entità: tabelle che vengono sincronizzate
¾
Riceventi: sedi a cui sono rivolti i dati
¾
Filtro Verticale: campi da escludere relativi ad una certa tabella (ad esempio il
sottoconto studio sui clienti)
¾
Filtro Orizzontale: record da filtrare (ad esempio un insieme di magazzini per i quali
non sincronizzare il saldo)
NUOVE TABELLE DEL MODULO
¾
¾
Una tabella Mirror per ciascuna tabella che può essere oggetto di sincronizzazione,
con i seguenti campi:
o
Chiave (uno o più campi a seconda della tabella principale);
o
Ancestor: CPCCCHK assegnato dal Validatore
o
Codice Sede Pubblicatore
o
CPCCCHK dell’ultima pubblicazione
Parametri generali:
o
Codice Sede: 2 caratteri da utilizzare come prefisso per i seriali dei
documenti e dei movimenti di magazzino
3
M O D U L O
¾
¾
L O G I S T I C A
R E M O T A
o
Dettaglio Riceventi (codificati con le 2 cifre suindicati), con un dettaglio figlio
relativo alle Entità da pubblicare e per ciascuna l’elenco dei filtri verticali
(campi da escludere con default) e l’espressione del filtro orizzontale
(record da scartare). Per ciascun ricevente è possibile definire un recapito I.P.
o telefonico per l’apertura della connessione.
o
Dettaglio Pubblicatori, con sottodettaglio delle tabelle da importare e per
ciascuna l’elenco dei filtri verticali (campi da escludere con default) con
relativo ultimo progressivo importato. Per ciascun pubblicatore è possibile
definire un recapito I.P. o telefonico per l’apertura della connessione.
Tabella con le entità oggetto di sincronizzazione, da caricare con una procedura
di importazione (Carica/Salva Dati Esterni). Di fatto è un insieme cablato in una certa
versione del gestionale. Per ciascuna entità sono definite:
o
tutte le tabelle che la compongono con l’ordine di importazione
o
un’eventuale espressione di validazione, da utilizzarsi in fase di
pubblicazione per determinare i record sui quali la sede ha privilegi di
Validatore
o
un’eventuale routine di verifica integrità funzionale del dato (ad
esempio non deve essere permessa una reimportazione di una vendita
negozio per la quale siano già stati generati i documenti corrispettivi)
Nuovo flag sulle casuali documento che inabiliti la modifica del documento dalle sedi
che non lo hanno caricato
VALIDAZIONE
Possono essere definiti dei filtri di validazione orizzontale per una certa sede (ad esempio i
clienti del nord potrebbero essere validati dalla sede di Milano e quelli del Centro/Sud da
quella di Roma) mediante una semplice espressione di Where. Se una sede deve validare
tutti i record di una tabella si imposterà (1=1), e contrariamente (1=0).
Per i Documenti, Movimenti di Magazzino e Vendite Negozio esiste un Validatore Intrinseco,
costituito dalla sede che ha caricato originariamente il movimento (codificata nei primi due
caratteri del seriale). È comunque sempre possibile specificare una diversa espressione di
validazione come per gli altri archivi.
4
M O D U L O
L O G I S T I C A
R E M O T A
2
Capitolo
Fase di Pubblicazione
Durante la fase di Pubblicazione sono esportati i record che presentano un CPCCCHK diverso
da quello presente nella tabella Mirror, rispetto all’ultima pubblicazione. Vengono esclusi i
record con CPCCCHK uguale all’Ancestor verso la sede di pubblicazione; in sintesi si evita di
reinviare i records non modificati direttamente verso la stessa sede che li ha pubblicati (e li
ha validati).
Le cancellazioni vengono
aggiunte/variazioni.
gestite
con
un
file
opportuno
distino
da
quello
delle
Una volta creati i files relativi a modifiche/inserimenti e cancellazioni (per ciascuna tabella
da esportare), viene aggiornato il record corrispondente nella tabella Mirror con il CPCCCHK
attuale, oppure cancellato il record se non più disponibile nella tabella principale.
VALIDAZIONE DEI RECORDS
Prima della dell’effettiva pubblicazione, il Validatore del record (in base all’espressione di
validazione specificata nei parametri) aggiorna anche il campo Ancestor presente nella
tabella Mirror con il CPCCCHK attuale. In sintesi convalida la nuova modifica del record,
definendo una nuova base di partenza.
I record nuovi presenteranno un Ancestor vuoto nel caso il pubblicatore non sia il
Validatore, e l’Ancestor uguale al CPCCCHK nel caso contrario.
PREPARAZIONE FILES DI PUBBLICAZIONE
I file di pubblicazione vengono numerati progressivamente e memorizzati in una directory
distinta per ciascun ricevente (ove deve essere possibile definire un numero massimo di
files oppure una dimensione massima, superata la quale avvengano cancellazioni
automatiche di quelli più vecchi).
Ogni file rappresenta gli inserimenti/modifiche/cancellazioni di una certa tabella rispetto al
momento dell’ultima pubblicazione (per un certo ricevente).
5
M O D U L O
L O G I S T I C A
R E M O T A
3
Capitolo
Fase di Acquisizione
Durante la fase di Acquisizione sono letti tutti i files di aggiornamento/inserimento o
cancellazione disponibili in una certa directory del pubblicatore (dedicata al ricevente), con
un progressivo superiore all’ultimo importato per una certa entità per ogni pubblicatore.
Se presente più di un files (a causa di un ritardo nella sincronizzazione oppure di una
tempificazione differenze tra le sedi), sarà effettuato un merge preliminare sui record (se lo
stesso record fosse presente in più files, sarà considerato solo quello contenuto nel files di
pubblicazione con progressivo più elevato).
LOGICA DI IMPORTAZIONE
L’importazione riguarda tutti i record che provengono direttamente dal Validatore, oppure
che sono stati distribuiti senza alcuna modifica dal momento di convalida. Il trattamento di
ogni record ricevuto è il seguente (verifiche ordinate):
¾
Record Nuovi: sempre importati
¾
CPCCCHK attuale = CPCCCHK inviato: non è necessario importarlo (già aggiornato)
¾
La sede di pubblicazione è il Validatore: sempre importati
¾
La sede di ricezione è il Validatore: saranno importati solo i record per i quali
CPCCCHK attuale = Ancestor inviato, ovvero la modifica del pubblicatore è stata
eseguita sulla stessa versione già validata
¾
La sede di pubblicazione e di ricezione non rappresentano il Validatore: possono
essere importati solo i records con CPCCCHK inviato = Ancestor inviato, che non
hanno subito modifiche dopo la validazione. Questi records non potranno però essere
modificati da parte del ricevente.
Ogni inserimento o modifica di un record importato è seguita da un aggiornamento del
campo Ancestor, presente nella tabella Mirror, con il CPCCCHK fornito dal pubblicatore.
È previsto un log dei records che non sono stati importati, in quanto non coerenti con le
modifiche locali.
GESTIONE DEI CONFLITTI DI IMPORTAZIONE
La gestione dei conflitti avviene a livello globale di entità: sono considerate le variazioni
della tabella principale e di ogni singola sotto-tabella. Ad esempio, la modifica ad una riga di
un ordine implica lo status di modificato a tutto il documento.
6
M O D U L O
L O G I S T I C A
R E M O T A
È comunque possibile prevedere funzioni che consentano di analizzare la possibilità di un
merge automatico tra variazioni riguardanti la stessa entità (ordine) purché siano
ammissibili in base alle business rules (ad esempio siano state variate righe differenti dello
stesso ordine).
7