Per collegare il gestionale "AREA" con AREAGATE stiamo facendo uso di un database Postgres le cui tabelle sono gia' documentate in Base dati Postgres
Questa struttura simula quella già sviluppata per la sincronizzazione del db di frontiera.
Configurazioni di base
Le configurazioni di base da gestire sono:
Gruppo |
Parametro |
Note |
abilita |
"Pulsante di accensione" Questo parametro verrà replicato sulla tabella ARPAZIEN, campo RAZI_ATTIVA_SINCRO, in modo che in futuro sia possibile gestirlo direttamente da Areagate |
|
areaapp |
Codice azienda |
|
areaapp |
Indirizzo Eurosystem2000 a cui inviare segnalazioni "gravi" Non necessario, usando la nuova metodologia di invio notifiche |
|
areaapp |
Indirizzo dell'azienda a cui inviare informazioni da evidenziare Non necessario, usando la nuova metodologia di invio notifiche |
|
areaapp |
Stringa di connessione al database |
|
areaapp |
Permette di abilitare o disabilitare l'aggiornamento in tempo reale, ovvero a seguito dell'aggiornamento di un oggetto |
|
areaapp |
Permette di gestire in modo più indolore il trapasso dalla vecchia procedura alla nuova NB: per ora il default a "N": quando saremo pronti per l'avvio delle procedure si potrà mettere a "S" |
|
|
|
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 |
|
Istanza |
Questo numero generalmente viene lasciato a 0 Se diversificato permette di definire quanti e quali processi in parallelo possono essere eseguiti: ogni numero di istanza qui definito rappresenta un processo in parallelo NB: per ogni istanza dovrà essere attivato un apposito processo di esecuzione |
Si |
Attivo? |
Campo a valori fissi che permette di attivare/disattivare il singolo processo: •"N":Non attivo •"S":Attivo |
Si |
Direzione |
Campo a valori fissi che permette di definire in quale direzione aggiornare, quando il processo è attivo •"I":Attivo solo "Import" •"E":Attivo solo "Export" •"T": Attivo tutto NB: le modalità "I" e "E" valgono solo quando il processo è utilizzabile in entrambi i sensi |
|
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 da:
•ARPAZIEN - Azienda: record di controllo azienda, contiene le informazioni principali di gestione e controllo:
oSincronizzazione attiva per l'azienda (RAZI-SINCRO-ATTIVA)
oData/ora "keep-alive": questa data/ora sarà aggiornata continuamente dai processi di sincronizzazione, quando schedulati dall'apposito motore, e permetterà ad un demone esterno di controllare se la sincronizzazione, quando attiva, sta effettivamente funzionando.
•ARPPROC - Processi di sincronizzazione (tabella di sistema presente sul db Postgres, univoca per tutte le aziende)
•ARPSTPRC - Stato processi di sincronizzazione, che verrà gestita sull'ambiente di produzione o da una apposita funzione su AREAGATE.
Ricerca dati di accesso
Ogni programma che rientra in questa procedura, e che dovrà aprire il DB di Areagate, non dovrà cercare le configurazioni direttamente, ma interrogare un apposito sottoprogramma che restituirà la stringa di connessione da utilizzare.
Questa potrà essere anche passata in input dal programma chiamante: in questo caso il programma SW* la utilizzerà senza effettuare la chiamata.
Questo procedimento viene effettuato per potere in futuro prevedere un meccanismo di reindirizzamento del db in modo centralizzato, qualora fosse implementato.
Nota 31/10/2019: lo scopo è di fare in modo che un domani l'indirizzamento non dipenda dalle stesse configurazioni, o venga effettuato in modo diverso, semplicemente modificando il sottoprogramma.
Esecutore processi
I processi saranno eseguiti da uno specifico programma chiamato AGLANCIO, senza interfaccia, strutturato in modo che possa essere lanciato e rimanere residente, finchè il flag di attivazione azienda RAZI_ATTIVA_SINCRO non viene abbassato.
Il programma potrà essere lanciato con una istanza: scorrerà l'elenco dei processi collegati all'istanza e controllerà se è arrivato il momento dell'esecuzione prevista. Se si, lo eseguirà.
All'inizio di ogni ciclo, e prima dell'esecuzione di ogni processo aggiornerà data/ora "keep-alive" sull'azienda in elaborazione.
Nota 31/10/2019: In fase iniziale, AGLANCIO potrà essere eseguito anche da uno degli attuali SWA (es. SWA005), per evitare di dover attivare manualmente il nuovo processo su Z-CRON.
Inoltre AGLANCIO a regime verrà lanciato con un processo NON THIN, possibilimente da un eseguibile che gira come servizio sul server Windos, o dal Crontab su Linux
Caratteristiche di ogni singolo processo
➢Nessuna interfaccia o interazione con il video
➢Ricerca connessione DB: i dati di accesso dovranno essere restituiti da un apposito sottoprogramma
➢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"
➢Aggiornamento del timestamp di keep-alive (vedi monitoraggio processi)
➢Possibilità di essere eseguito in modo "atomico", ovvero potrà essere eseguito per aggiornare un singolo elemento della tabella, se eseguito dal programma di gestione.
Monitoraggio processi
Il processo esecutore AGLANCIO verrà eseguito da un motore esterno, come ad esempio ZCRON o PgAgent. Questo motore dovrà anche occuparsi di tentare, ogni "n" minuti, di tentare nuovamente il lancio se risulta non attivo.
Nota 31/10/2019:Vedi sopra: dovrà essere un processo non thin; dato che comunque il processo è "WRUN32", o "RUNCBL", come fare per identificare il processo che interessa a noi? Forse la cosa migliore è comunque usare data/ora di keep-alive.
Su ARPAZIEN sarà presente anche un'informazione "keep-alive" che permetterà ad un demone esterno di verificare se il processo è attivo e funzionante: questo dato dovrà essere aggiornato da:
➢AGLANCIO: al termine di ogni ciclo di controllo
➢AGLANCIO: prima o dopo dell'esecuzione di un singolo processo attivo
➢SW* : se l'esecuzione è lunga, ogni 1 minuti deve aggiornare il keep-alive, ma solo se il processo viene lanciato da AGLANCIO (altrimenti potrebbe risultare un falso segnale)
Altri programmi
Nome |
Descrizione |
Programma a menu che permette di configurare, attivare e controllare le sincronizzazioni |
|
AGLANCIO - Esecuzione processi di sincronizzazione con AREAGATE |
Programma da attivare su PgAgent per la schedulazione dei processi previsti |