Vai al contenuto

Gestione DB di frontiera

Panoramica

Il DB di frontiera e' un database PostgreSQL che permette la sincronizzazione bidirezionale dei dati tra il gestionale Assist/AREA e un gestionale esterno (HOST) presso il cliente. Ogni cliente che necessita di un collegamento dispone di una propria istanza del DB di frontiera.

Il sistema copre circa 30 tabelle organizzate in due ambiti:

  • Anagrafico: clienti/fornitori, indirizzi, contatti, articoli, prezzi/sconti/gruppi sconto, tecnici, matricole di assistenza
  • Movimentazione: documenti di magazzino, fatture, ordini di vendita, interventi di assistenza, scadenzario

Per i tracciati delle tabelle DB Frontiera, vedere la sezione Tabelle base dati.

Programma Funzione
GESDBFST Pannello di controllo DB Frontiera
GESDBFPR Gestione tabella processi di sincronizzazione (uso interno)
DFLANCIO Esecutore processi di sincronizzazione (schedulato da PgAgent)
GESSTPRC Pannello di controllo AreaGate
AGLANCIO Esecutore processi di sincronizzazione AreaGate
DBF001 Sincronizzazione anagrafiche clienti/fornitori
DBF002 Sincronizzazione destinazioni
DBF003 Sincronizzazione contatti
DBF004 Sincronizzazione articoli
DBF005 Sincronizzazione listini
DBF006 Sincronizzazione testata gruppi sconto
DBF007 Sincronizzazione dettaglio sconti
DBF008 Sincronizzazione gruppi sconto per anagrafica
DBF009 Sincronizzazione magazzini
DBF010 Sincronizzazione giacenze
DBF011 Sincronizzazione matricole assistenza
DBF012 Sincronizzazione kit di intervento (testata)
DBF013 Sincronizzazione kit di intervento (dettaglio)
DBF014 Sincronizzazione ubicazioni
DBF015 Sincronizzazione note post-it
DBF016 Sincronizzazione set tipico
DBF017 Importazione backorder
DBF018 Importazione budget omaggi
DBF019 Importazione distinta matricole
DBF020 Importazione tecnici
DBF021 Importazione scadenzario extracontabile
DBF100 Import/export documenti di magazzino
DBF101 Import/export ordini
DBF102 Export variazioni su set tipico
DBF103 Export variazioni su backorder
DBF104 Import/export chiamate/interventi
DBF105 Export pagamenti scadenzario extracontabile
DBF106 Esportazione fatture/note accredito clienti

Architettura

Connessione al database

Il DB di frontiera utilizza le librerie PostgreSQL native sviluppate internamente. L'architettura e' progettata per supportare in futuro anche altri DBMS (Oracle, SqlServer, MySql), ma attualmente e' limitata a PostgreSQL.

Configurazioni di base

Le configurazioni risiedono nel gruppo RNEWCONF dbfront:

Parametro Descrizione
sincro-attiva Pulsante di accensione generale: attiva/disattiva tutti i processi
email-segnalazioni Indirizzo e-mail per segnalazioni gravi
db-tipo Tipologia DB (attualmente solo "P" = PostgreSQL)
db-conn-string Stringa di connessione (host, porta, nome DB, utente, password) con indice
db-ddl-conn-string Stringa di connessione con accesso DDL (livello superiore)
db-ddl-grant-role-string Stringa per assegnazione ruoli
db-log-level Livello di log globale
inverto-segno-sconti "S" se gli sconti HOST sono esportati con segno negativo

Tabelle di sistema

Tabella Descrizione
COGDBFPR Processi di sincronizzazione (tabella di sistema, fornita da Eurosystem)
COGDBFST Stato processi di sincronizzazione (gestita in produzione)

La tabella COGDBFPR va copiata manualmente da p:\menugen\menu2000\gesdbfpr.arc nell'ambiente del cliente, nella cartella definita come EXT-PRG-DIR.

Schedulazione

I processi vengono schedulati da PgAgent. Il pannello di controllo alimenta la tabella che PgAgent utilizza per la pianificazione. Ogni processo, all'avvio, legge il proprio record di configurazione e decide se deve essere eseguito.


Pannello di controllo (GESDBFST)

GESDBFST presenta una griglia dove ogni riga corrisponde a un processo di sincronizzazione. Le colonne disponibili sono:

Colonna Contenuto Modificabile
Nome Nome del processo
Descrizione Descrizione breve
Attivo Attiva/disattiva il singolo processo. Valori: Attivo, Disattivo, solo Import (I), solo Export (E) Si
Timer Minuti tra due schedulazioni (da 1 a 99.999.999) Si
Forzo schedulazione Forza esecuzione immediata (una tantum) Si
Data/ora ultima schedulazione Timestamp dell'ultima esecuzione
Data/ora prossima schedulazione Timestamp della prossima esecuzione pianificata
In corso Indica se il processo e' correntemente in esecuzione
N. Errori Errori segnalati nell'ultima esecuzione
Messaggio Ultimo messaggio di errore
Livello Log Livello di log del processo Si
Ultimo aggiornamento Timestamp ultimo aggiornamento (solo per processi con export) Si
Limita righe Se > 0, limita l'elaborazione alle prime N righe (utile in fase di test) Si
Limita errori Se > 0, limita le segnalazioni di errore alle prime N (utile in fase di test) Si

Attivazione della sincronizzazione

  1. Configurare i parametri del gruppo dbfront in RNEWCONF
  2. Entrare nel pannello di controllo GESDBFST
  3. Per ogni processo: spuntare "Attivo" e impostare il timer
  4. Per forzare un'esecuzione immediata: spuntare "Forzo esecuzione"

Caratteristiche dei processi

Ogni processo di sincronizzazione DBF* ha le seguenti caratteristiche:

  • Nessuna interfaccia o interazione video
  • Gestione log con livello configurabile per processo
  • Messaggi rediretti sul log tramite apposita variabile di configurazione
  • Aggiornamento automatico dello stato sul pannello di controllo
  • Possibilita' di ricevere una richiesta di sincronizzazione per singola riga (la chiave dipende dal processo)

Elenco processi di sincronizzazione

Processi di importazione anagrafica

Nome Tabella DBF Programma Tabelle AREA Operazione secondaria
ANAGR DFANAGR DBF001 COGGEANA Settimanale: flag cancellazione su anagrafiche non piu' esistenti
INDIR DFINDIR DBF002 COGDEST2
CONTATTI DFCONTATTI DBF003 COGRIFER Settimanale: flag cancellazione su contatti non piu' esistenti
MERCI DFMERCIPREST DBF004 Articoli Settimanale: flag cancellazione su merci non piu' esistenti
PREZZI DFPREZZI DBF005 COGLISNW Settimanale: cancellazione prezzi non piu' esistenti
GRUPPISCONTO DFGRUPPISCONTO DBF006 Gruppi sconto
SCONTI DFSCONTI DBF007 COGSCONT, COGGRSCD Settimanale: cancellazione sconti non piu' esistenti
ANAGRSCONTI DFANAGRSCONTI DBF008 COGANAGS Settimanale: cancellazione raccordi non piu' esistenti
MAGAZ DFMAGAZZINI DBF009 Magazzini
GIACENZE DFGIACENZE DBF010 Giacenze
MATR-ASSI DFMATRICOLEASSI DBF011 Matricole assistenza
KITINTTES DFKITINTTES DBF012 Kit intervento (testata)
KITINTDET DFKITTINTDET DBF013 Kit intervento (dettaglio)
UBICAZIONI DFUBICAZIONI DBF014 Ubicazioni
POSTIT DFPOSTIT DBF015 Note post-it
SETTIPICO DFSETTIPICO DBF016 Set tipico Settimanale: pulizia clienti non referenziati
BACKORDER DFBACKORDER DBF017 COGBKORD Settimanale: cancellazione backorder non piu' esistenti
BUDGETOMAGGI DFBUDGETOMAGGI DBF018 Budget omaggi
DISTINTAMATR DFDISTINTAMATR DBF019 Distinta matricole
TECNICI DFTECNICI DBF020 Tecnici
SCADEX DFSCADENZARIO DBF021 COGSCDEX

Processi di import/export

Nome Tabelle DBF Programma Direzione
DOCMAG DFDOCTES, DFDOCDET DBF100 Import + Export
ORDINI DFDOCTES, DFDOCDET DBF101 Import + Export
CHIAMATE DFCHIAMATE, DFCHIAMATEDOC, DFINTERVENTI DBF104 Import + Export

Processi di sola esportazione

Nome Tabelle DBF Programma Descrizione
SETTIPICOVAR DFSETTIPICOVAR DBF102 Variazioni su set tipico
BACKORDERVAR DFBACKORDERVAR DBF103 Variazioni su backorder
SCADEXPAG DFSCADENZARIOEXT DBF105 Pagamenti scadenzario extracontabile
FATTURECLI DFDOCTES, DFDOCDET DBF106 Fatture/note accredito clienti (classe FC)

Logica di raccordo HOST-AREA

Ogni processo utilizza un meccanismo di raccordo per determinare se un record e' da inserire o aggiornare.

Anagrafiche (DBF001)

  • Identificativo HOST: DF_ANA_KEY_HOST
  • Identificativo AREA: DF_ANA_AREA_COD
Condizione Operazione
DF_ANA_AREA_COD esiste e corrisponde a un'anagrafica AREA Variazione (verifica raccordo AAP2-RACCORDO)
DF_ANA_AREA_COD non esiste, codice HOST trovato in AAP2-RACCORDO Variazione (effettua raccordo su DBF)
DF_ANA_AREA_COD non esiste, codice HOST non trovato Inserimento

L'elaborazione standard importa i record con DF_ANA_AGG_HOST = 1. Le cancellazioni usano il flag DF_ANA_VAL = "C".

L'elaborazione settimanale controlla tutto COGGEANA e marca come cancellati i record non piu' presenti su DFANAGR, sanando eventuali disallineamenti da esportazioni di massa.

Contatti (DBF003)

  • Identificativo HOST: DF_CNT_KEY_HOST
  • Identificativo AREA: DF_CNT_AREA_COD

Il riconoscimento segue questa priorita':

  1. Se esiste il riferimento del codice contatto AREA sul record da importare: esistente, aggiornamento
  2. Scansione contatti per cliente: se RIF-CODICE-HOST = DF_CNT_KEY_HOST: esistente, aggiornamento
  3. Se nessun contatto con stesso codice HOST ma stesso nome (RIF-NOME = DF_CNT_NOME): esistente, aggiornamento con registrazione codice HOST
  4. Altrimenti: inserimento nuovo contatto

Prezzi (DBF005)

Un prezzo e' identificato da DF_PRZ_MERCE_HOST + DF_PRZ_LISTINO_HOST:

  • Se il codice listino corrisponde a un codice cliente HOST: prezzo particolare cliente
  • Altrimenti si cerca il raccordo con un listino AREA
  • Se non trovato: errore

Sconti (DBF007)

Importa sconti per cliente, gruppi sconto e promozioni da DFSCONTI. Elaborazione standard su record con DF_SCO_AGG_HOST = 1, cancellazioni tramite DF_SCO_VAL = "C". L'elaborazione settimanale controlla COGSCONT e COGGRSCD.

Backorder (DBF017)

Chiave: cliente + indirizzo (destinazione) + merce. L'elaborazione standard ha due giri:

  1. Giro 1: importazione record variati (DF_BKO_AGG_HOST = 1)
  2. Giro 2: per ogni cliente toccato nel giro 1, marcatura come cancellati dei record COGBKORD non piu' esistenti su DFBACKORDER

L'elaborazione settimanale copre tutti i clienti non gestiti dal giro 2.

Tecnici (DBF020)

DF_TEC_KEY_HOST contiene il codice tecnico HOST e rappresenta il raccordo con il tecnico AREA. Dopo il raccordo, il codice AREA viene esportato su DFTECNICI.

Scadenzario extracontabile (DBF021)

Chiave: cliente + progressivo scadenza. Lo scadenzario e' una copia semplificata di quello HOST, importata su COGSCDEX senza inquinare lo scadenzario ufficiale AREA.

Al termine dell'elaborazione principale, per ogni cliente aggiornato viene effettuato un controllo inverso: i record presenti su COGSCDEX ma non su DFSCADENZARIO vengono rimossi.


Documenti di magazzino (DBF100)

Le tabelle DFDOCTES/DFDOCDET ospitano i documenti con classe DF_DTES_CLASSE = 'DM'. Il processo puo' essere configurato in import, export o entrambi.

Importazione documenti

Vengono importati i documenti con DF_DTES_AGG_HOST = 1. Per determinare se e' inserimento o variazione:

DF_DTES_KEY_AREA Raccordo COGGENER (GNR-TIPO="DH") Operazione
Vuoto Esiste e GNR-PARTE-2 esiste su COGTESBO Variazione
Vuoto Esiste ma GNR-PARTE-2 non esiste su COGTESBO Cancella raccordo, Inserimento
Vuoto Non esiste Inserimento
Non vuoto (non rilevante) Variazione

I documenti generati su AREA e successivamente variati dall'HOST vengono ignorati e marcati come processati.

Esportazione documenti

L'esportazione avviene in due fasi:

  1. Documenti cancellati: controllo del log cancellazioni a partire da data/ora ultima esportazione; la cancellazione e' logica
  2. Documenti nuovi/aggiornati: esportazione dei documenti con COGTESAP.TSA_FL_ESPORTATO = " " (vuoto)

Non vengono esportate le variazioni su documenti generati dall'HOST. Se e' configurato il magazzino magazzino-esp-interventi, non vengono esportati i trasferimenti tra sedi collegate.

Per forzare la riesportazione: la modifica di un documento reimposta il flag a vuoto; in alternativa, usare YOGTESAP.


Chiamate/interventi (DBF104)

Le tabelle DFCHIAMATE, DFCHIAMATEDOC e DFINTERVENTI vengono processate insieme.

Importazione chiamate

Vengono importate solo le richieste nuove generate da HOST:

  • DF_CHT_ID_AREA = 0 (non ancora acquisita)
  • DF_CHT_ORIGINE = 'H' (generata da HOST)

Le variazioni HOST su richieste gia' importate non vengono considerate. La cancellazione richiede: DF_CHT_AGG_HOST = 1, DF_CHT_ID_AREA > 0, DF_CHT_ORIGINE = 'H', DF_CHT_VAL = "C".

Esportazione interventi

  1. Scansione interventi chiusi ed esportati sul WEB (ACIT-FL-WEB-CHIUSE = "S")
  2. Per ogni intervento chiuso, ricerca su DFINTERVENTI per ID intervento AREA
  3. Se presente: aggiornamento; se assente: inserimento
  4. Se la chiamata collegata non esiste su DFCHIAMATE: inserimento; altrimenti aggiornamento
  5. Aggiornamento di DFINTERVENTI, DFCHIAMATE, DFCHIAMATEDOC

Esportazione fatture (DBF106)

Le fatture vengono esportate su DFDOCTES/DFDOCDET con classe documento FC.

Il flag di controllo e' FAT2-FL-ESPORTATA su COGFATT2, che gestisce l'esportazione verso piu' destinazioni (DB Frontiera, Master DB ABB, ecc.). Il programma DBF106 esporta le fatture con flag vuoto (" ") o "A ".

Attenzione: l'esportazione di una fattura ne impedisce la modifica e la cancellazione. Il processo FATTURECLI dovrebbe essere schedulato manualmente per evitare esportazioni premature; non va messo in schedulazione automatica.


Gestione DB AreaGate

AreaGate utilizza un'architettura analoga al DB di frontiera, basata su PostgreSQL, per il collegamento tra AREA e l'applicazione AreaGate.

Configurazioni di base

Gruppo Parametro Descrizione
abilita attiva-areaapp Pulsante di accensione (replicato su ARPAZIEN.RAZI_ATTIVA_SINCRO)
areaapp cod-azienda Codice azienda
areaapp db-conn-string Stringa di connessione al database
areaapp agg-postgres-online Abilita/disabilita aggiornamento in tempo reale
areaapp aglancio-attivo Gestione passaggio da vecchia a nuova procedura (default "N")

Tabelle di sistema AreaGate

Tabella Descrizione
ARPAZIEN Record di controllo azienda: flag sincronizzazione attiva, data/ora keep-alive
ARPPROC Processi di sincronizzazione (univoca per tutte le aziende)
ARPSTPRC Stato processi di sincronizzazione

Pannello di controllo AreaGate (GESSTPRC)

Griglia analoga a GESDBFST con le stesse colonne, piu':

Colonna Contenuto Modificabile
Istanza Numero istanza per processi in parallelo (default 0) Si
Direzione Import, Export o entrambi

Esecutore processi (AGLANCIO)

AGLANCIO e' un programma senza interfaccia che rimane residente finche' il flag RAZI_ATTIVA_SINCRO e' attivo. Opera per istanza: scorre i processi collegati e verifica se e' il momento dell'esecuzione.

Aggiorna il keep-alive su ARPAZIEN:

  • A ogni ciclo di controllo
  • Prima/dopo l'esecuzione di ogni processo
  • I singoli programmi SW* lo aggiornano ogni minuto se l'esecuzione e' lunga (solo quando lanciati da AGLANCIO)

Il keep-alive permette a un demone esterno di verificare che la sincronizzazione sia effettivamente funzionante.

Ricerca dati di accesso

I programmi della procedura AreaGate non cercano le configurazioni direttamente, ma interrogano un sottoprogramma dedicato che restituisce la stringa di connessione. La stringa puo' anche essere passata in input dal chiamante. Questo consente un futuro meccanismo di reindirizzamento centralizzato.