Premessa
Il DB di frontiera è un database su architettura Postgres che ha come scopo quello di permettere una agevole sincronizzazione dei dati tra il nostro pacchetto Assist e un gestionale presso un cliente con il quale Assist deve dialogare.
Il database è formato allo stato attuale da circa 30 tabelle che coprono principalmente l'ambito anagrafico:
•Clienti/fornitori
•Indirizzi
•Contatti
•Articoli
•Il mondo prezzi/sconti/gruppi sconto
•Tecnici
•Matricole di assistenza
e altre che invece riguardano il passaggio di movimentazione:
•Movimenti di magazzino
•Fatture
•Ordini di vendita
•Interventi di assistenza
•Scadenzario
•...
Ogni cliente che necessita di un collegamento di questo tipo avrà a disposizione una copia del db di frontiera dedicato a lui.
Su Area, dopo aver configurato la connessione al DB, è possibile configurare, per ogni singolo processo di sincronizzazione, alcuni parametri che permettono di regolare se deve essere eseguito, con quale cadenza, ecc., e di verificare in tempo reale lo stato di sincronizzazione e un eventuale log di errori.
La documentazione delle tabelle è qui: DB frontiera
Tutto quello che sarà costruito attorno a questo DB dovrà essere progettato in modo che sia semplice nella configurazione, nell'utilizzo, e nella gestione delle problematiche.
Architettura
Il DB frontiera potrebbe essere potenzialmente di diversi tipi, per agevolare la software house che usa già, per il DB HOST, una determinata tipologia di DB: Oracle, SqlServer, MySql, Postgres, ecc.
Quindi Si dovrà utilizzare un linguaggio che permetta di collegarci agevolmente a uno di questi database mantenendo il sorgente inalterato:
Produttore |
Prodotto |
Vantaggi |
Svantaggi |
Microfocus |
ACU4GL |
•Utilizzabile immediatamente con programmi standard |
•Necessita di una licenza aggiuntiva con un costo (pero' dovrebbe essere sufficiente 1 licenza) |
Microfocus |
ACUSql |
•Non necessita di licenze aggiuntive |
•Necessita di implementare programmi specializzati che lavorano direttamente con comandi SQL •Occorre impiegare un po' di tempo per farsi le ossa con questo strumento |
Veryant |
Iscobol (SQL) |
•Giovanni ha già esperienza nella realizzazione di programmi in questo ambiente |
•Necessita di implementare programmi specializzati che lavorano direttamente con comandi SQL •Necessita di installare un ambiente aggiuntivo Iscobol •E' necessaria una licenza aggiuntiva per Iscobol |
Veryant |
Iscobol (EasyDB) |
•Utilizzabile immediatamente con programmi standard (verificare) |
•Necessita di installare un ambiente aggiuntivo Iscobol •Necessita di una licenza aggiuntiva con un costo (pero' dovrebbe essere sufficiente 1 licenza) |
Eurosystem |
Librerie Postgres di Giovanni |
|
|
Configurazioni di base
E' necessario definire:
•Tipologia DB (Oracle, SqlServer, ecc): Non necessario se ci limitiamo a Postgres
•Parametri di connessione (Indirizzo, porta, Nome DB, Utente, Password) o in alternativa stringa di connessione già completa
•Pulsante di accensione: permette di attivare/disattivare con una sola operazione tutti i processi configurati
•Indirizzo di posta a cui inviare segnalazioni "gravi" (se questo compito viene effettuato da una funzione interna al gestionale)
Gruppo |
Parametro |
Note |
dbfront |
"Pulsante di accensione" |
|
dbfront |
Indirizzo a cui inviare segnalazioni "gravi" |
|
dbfront |
Indirizzo a cui inviare informazioni da evidenziare |
|
dbfront |
Previsto per sicurezza, ma attualmente sarà solo Postgres |
|
dbfront |
Stringa di connessione al database |
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
Pannello di controllo
Pannello dove è presente una griglia di controllo dei vari processi; una riga corrisponde al processo di sincronizzazione di una singola tabella, o di un insieme di tabelle che per la loro natura devono essere trattate insieme (es. documenti di magazzino).
Per ciascuna riga saranno presenti le informazioni:
Colonna |
Contenuto |
Modificabile? |
Nome |
Nome del processo |
|
Descrizione |
Descrizione breve del processo |
|
Attivo? |
Campo a valori fissi che permette di attivare/disattivare il singolo processo: •"N":Non attivo •"S":Attivo •"I":Attivo solo "Import" •"E":Attivo solo "Export" NB: le modalità "I" e "E" valgono solo quando il processo è utilizzabile in entrambi i sensi |
Si |
Timer |
Tempo di attesa tra 2 schedulazioni dello stesso processo, in minuti. Puo' andare da 1 a 99999999 |
Si |
Forzo schedulazione |
Se spuntato, permette di fare partire immediatamente la schedulazione di questo processo, una tantum |
Si |
Data/ora ultima schedulazione |
Data/ora dell'ultima schedulazione del processo |
|
Data/ora prossima schedulazione |
Data/ora della prossima schedulazione pianificata |
|
In corso? |
Indica se il processo è correntemente in esecuzione |
|
N.Errori |
Numero di errori segnalati nell'ultima esecuzione |
|
Messaggio |
Ultimo messaggio di errore segnalato |
|
Livello Log |
Livello di log previsto sul processo •0: Vengono registrati solo gli errori •1...99999: segnalazioni standard, il cui livello è quello indicato |
Si |
Ultimo aggiornamento |
Data/ora ultimo aggiornamento, utilizzato solo per i processi in cui è possibile l'export |
Si |
Limita righe |
Se questo dato contiene un numero > 0, significa che l'elaborazione viene limitata alle prime "n" righe da sincronizzare. Utile in fase di impostazione iniziale del sistema, quando si vuole eseguire il test della sincronizazione, o quando si vuole distribuire meglio la sincronizzazione senza lasciare in coda per troppo tempo le elaborazioni successive |
Si |
Limita errori |
Se questo dato contiene un numero > 0, significa che l'elaborazione viene limitata alle prime "n" segnalazioni di errore. Utile in fase di impostazione iniziale del sistema, quando si vuole eseguire il test della sincronizazione. |
Si |
La gestione dei processi sarà definita dall'insieme delle tabelle COGDBFPR - Processi di sincronizzazione DB frontiera (tabella di sistema fornita da noi) e COGDBFST - Stato processi di sincronizzazione DB frontiera, che verrà gestita sull'ambiente di produzione.
Elenco dei processi previsti
Nome |
Descrizione |
Import |
Export |
Programma |
Operazione |
ANAGR |
Import anagrafiche clienti/fornitori |
DFANAGR |
|
|
|
INDIR |
Import indirizzi |
DFINDIR |
|
|
|
CONTATTI |
Import contatti |
DFCONTATTI |
|
|
|
MERCI |
Import anagrafica merci |
DFMERCIPREST |
|
|
|
PREZZI |
Import prezzi di vendita/acquisto |
DFPREZZI |
|
|
|
GRUPPISCONTO |
Import gruppi sconto |
DFGRUPPISCONTO
|
|
|
|
SCONTI |
Import dettaglio gruppi di sconto |
DFSCONTI |
|
|
|
ANAGRSCONTI |
Import gruppi sconto per anagrafica |
DFANAGRSCONTI |
|
|
|
MAGAZ |
Import magazzini |
DFMAGAZZINI |
|
|
|
GIACENZE |
Import giacenze di magazzino |
DFGIACENZE |
|
|
|
MATR-ASSI |
Import matricole di assistenza |
DFMATRICOLEASSI |
|
|
|
KITINTTES |
Import testata kit di intervento |
DFKITINTTES |
|
|
|
KITINTDET |
Import dettaglio kit di intervento |
DFKITTINTDET |
|
|
|
UBICAZIONI |
Import ubicazioni articoli |
DFUBICAZIONI |
|
|
|
POSTIT |
Import note post-it |
DFPOSTIT |
|
|
|
SETTIPICO |
Import set tipico per un cliente |
DFSETTIPICO |
|
|
|
BACKORDER |
Import backorder per cliente |
DFBACKORDER |
|
|
|
BUDGETOMAGGI |
Import budget omaggi per agente |
DFBUDGETOMAGGI |
|
|
|
DISTINTAMATR |
Import distinta base matricole |
DFDISTINTAMATR |
|
|
|
TECNICI |
Importazione tecnici |
DFTECNICI |
|
|
|
SCADEX |
Importazione scadenzario extracontabile |
DFSCADENZARIO |
|
|
|
DOCMAG |
Import/export documenti di magazzino |
DFDOCTES DFDOCDET |
DFDOCTES DFDOCDET |
|
|
ORDINI |
Import/export ordini di vendita |
DFDOCTES DFDOCDET |
DFDOCTES DFDOCDET |
|
|
SETTIPICOVAR |
Export variazioni sul set tipico |
|
DFSETTIPICOVAR |
|
|
BACKORDERVAR |
Export variazioni sul backorder |
|
DFBACKORDERVAR |
|
|
CHIAMATE |
Import/export chiamate-interventi |
DFCHIAMATE DFCHIAMATEDOC DFINTERVENTI |
DFCHIAMATE DFCHIAMATEDOC DFINTERVENTI |
|
|
SCADEXPAG |
Export pagamenti scadenzario extracontabile |
|
DFSCADENZARIOEXT |
|
|
FATTURECLI |
Esportazione delle fatture/note accredito verso clienti |
|
DFDOCTES DFDOCDET |
|
|
Operazioni secondarie |
|||||
ANAGR |
Import anagrafica clienti/fornitori Impostazione flag di cancellazione su anagrafiche non più esistenti sul db frontiera |
DFANAGR |
|
SETTIMANALE |
|
MERCI |
Import anagrafica merci Impostazione flag di cancellazione su merci non più esistenti sul db frontiera |
DFMERCIPREST |
|
SETTIMANALE |
|
SETTIPICO |
Import set tipico per un cliente Pulizia dati per clienti non più referenziati |
DFSETTIPICO |
|
"SETTIMANALE" |
|
BACKORDER |
Import backorder per cliente Pulizia su AREA dei dati non esistenti sul DBF |
DFBACKORDER |
|
"SETTIMANALE" |
|
SCONTI |
Import dettaglio gruppi di sconto Pulizia su AREA dei dati non esistenti sul DBF |
DFSCONTI |
|
"SETTIMANALE" |
|
ANAGRSCONTI |
Import gruppi sconto per anagrafica Pulizia su AREA dei dati non esistenti sul DBF |
DFANAGRSCONTI |
|
"SETTIMANALE" |
La definizione dei processi sarà registrata su una tabella di sistema chiamata COGDBFPR - Processi di sincronizzazione DB frontiera
Schedulatore
I processi verranno schedulati da PgAGENT
Il pannello di controllo potra' alimentare la tabella che permette a PgAGENT di lavorare.
Ogni singolo processo dovra' leggere il record di configurazione (pannello di controllo) e decidere se deve essere eseguito oppure no.
Caratteristiche di ogni singolo processo
➢Nessuna interfaccia o interazione con il video
➢Gestione log di processo, con attivazione log in funzione del livello previsto
➢Ogni messaggio deve essere rediretto sul log usando l'apposita variabile di configurazione
➢Aggiornamento dei dati sulla tabella "Pannello di controllo"
➢Possibilità di ricevere una richiesta di sincronizzazione di una singola riga: la chiave da sincronizzare dipenderà dal processo, e dovrà corrispondere all'id presente sul gestionale "AREA"; ad esempio, se voglio forzare la sincronizzazione di un cliente, dovrò ricevere in input DF_ANA_AREA_TIP e DF_ANA_AREA_COD
Altri programmi
Nome |
Descrizione |
|
Programma ad uso interno che crea la tabella che contiene i processi eseguibili |
Programma a menu che permette di configurare, attivare e controllare le sincronizzazioni |
|
Programma da attivare su PgAgent per la schedulazione dei processi previsti |