Posizione nel menu
Programma non a menu
Logica generale
Programma che gira in background, e permette la schedulazione dei processi SWAnnn per la sincronizzazione tra AREAGATE e AREA.
Questo programma dovrà essere strutturato per essere lanciato direttamente all'avvio di un pc preposto, e rimanere residente finchè lo switch principale di sincronizzazione per l'azienda non viene chiuso (attiva-areaapp).
E' fondamentale che questo programma non emetta mai messaggi: questo dovrebbe essere automatico, dato che tutti i programmi innescati da lancio automaticamente girano i messaggi sul log, ma è bene verificare, ad esempio, cosa succede se si innesca il programma avendo i parametri di connessione ad Areagate errati.
Configurazioni possibili
Gruppo |
Parametro |
Note |
abilita |
|
|
areaapp |
|
|
areaapp |
|
Elaborazione
Il processo deve rimanere sempre attivo, anche se lo switch principale è spento (attiva-areaapp).
In ogni caso il controllo deve essere fatto su due livelli:
•Configurazione locale
•Configurazione su KPN (ARPAZIEN): qui potrà essere richiesta una procedura di accensione/spegnimento da remoto (vedi Spegnimento/riattivazione da host )
Dopodichè
Se il parametri di configurazione
La sincronizzazione deve essere attiva ( attiva-areaapp = "S"); altrimenti uscire senza nessuna segnalazione.
Registrare sul log l'esito del controllo.
A - Ricerca processi attivi
Scorrere il contenuto di ARPPROC; per ciascun record leggere il relativo record su ARPSTPRC.
Dato |
Contenuto |
A-STPR-AZI |
Azienda attiva |
A-STPR-ID |
A-PROC-ID |
Se il record non esiste, crearlo con alcuni parametri di default:
Nome campo |
Contenuto |
A-STPR-AZI |
Codice azienda |
A-STPR-ID |
A-PROC-ID |
A-STPR-ISTANZA |
0 |
A-STPR-FL-ATTIVAZIONE |
"S" |
A-STPR-DIREZIONE |
"T" |
A-STPR-TEMPO-ATTESA |
A-PROC-TEMPO-STD |
A-STPR-FORZO-ESE |
"N" |
A-STPR-ESPORTA-TUTTO |
"N" |
A-STPR-STATO |
"A" |
A.1 Controllo esecuzione processo
Il processo dovrà avere due requisiti principali:
•Fare parte dell'istanza richiesta: A-STPR-ISTANZA = istanza passata in input
•Essere attivo: A-STPR-FL-ATTIVAZIONE = "S".
Se questi requisiti non sono soddisfatti skippare.
Ora verifichiamo se dopo l'ultima esecuzione è passato il tempo configurato in A-STPR-TEMPO-ATTESA: confrontare il tempo con la differenza tra{
•Data/ora ultima esecuzione (A-STPR-ATT-DATA+A-STPR-ATT-ORA)
•Data/ora sistema
Se il tempo configurato è stato raggiunto o superato, o se è stata richiesta l'esecuzione forzata (A-STPR-FORZO-ESE = "S") proseguire, altrimenti skippare il processo.
Altrimenti si prosegue con l'esecuzione del processo. Ogni processo richiamato dovrà avere una linkage comune: UTILAGPRG - Linkage comune
I parametri da passare al programma sono:
Dato |
Contenuto |
AGPRG-CALLED |
"AGPRG-CALLED" |
AGPRG-KEY |
" " |
AGPRG-ESPORTA-TUTTO |
A-STPR-ESPORTA-TUTTO |
A.2 Aggiornamento stato processi
Al termine dell'elaborazione di un processo, rileggere il record di stato ARPSTPRC (potrebbe essere stato modificato nel frattempo) e aggiornarlo:
Nome campo |
Contenuto |
A-STPR-FORZO-ESE |
"N" |
A-STPR-ESPORTA-TUTTO |
"N" |
A-STPR-STATO |
"A" |
A-STPR-ATT-DATA |
Data e ora di sistema |
A-STPR-ATT-ORA |
|
A-STPR-SCHED-DATA |
Determinare data/ora prossima esecuzione, sommando A-STPR-TEMPO-ATTESA a data/ora sistema |
A-STPR-SCHED-ORA |
B - Termine processi
Quando si è elaborato l'ultimo processo, eseguire un ciclo di attesa di 10 secondi usando "C$SLEEP" e ripetere l'elaborazione dall'inizio.
Versioni
Versione |
Data |
Descrizione |
1.1.1 |
4/3/2020 |
Se la configurazione "ATTIVA-AREAAPP" non corrisponde a RAZI-ATTIVA-SINCRO, aggiorno quest'ultimo |