ASN051AG — Innesco automatico rinnovo contratti¶
Sorgente: cbl/asn051ag.cbl | Tipo: Subroutine di schedulazione (mmsubw.cpy) | Program-ID: ASN051AG
Menu: Nessuno — sottoprogramma non a menu (non presente in prog.txt). E' un processo schedulato della famiglia sincronizzazioni AreaGate, orchestrato da AGLANCIO.
Scopo¶
ASN051AG e' il wrapper di schedulazione che innesca ASN051 (Rinnovo contratti) in modalita' automatica, senza interazione operatore. Fa parte della catena di sincronizzazione/automazione pilotata da AGLANCIO: quando il processo con ID 30003 (RINNOVO-CONTRATTI) risulta attivo e schedulato, AGLANCIO lancia ASN051AG, che a sua volta chiama ASN051 passandogli l'operazione RINNOVO-AUTOMATICO.
In pratica delega tutta la logica di rinnovo a ASN051; il suo compito e' solo:
- verificare che la nuova procedura automatica sia abilitata (config
AREAAPP/AGLANCIO-ATTIVO); - eseguire i controlli standard di schedulazione (attivazione sincronizzazione, apertura connessione DB AreaGate, gestione limiti record/errori, stato processo su
ARPSTPRC); - costruire i parametri per ASN051 (periodo di scadenza = da
0a data odierna) e invocarlo; - registrare inizio/fine e gli eventuali errori tramite il log
gesdebug.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| APSTATOSYN | apstatosyn (tabella DB AreaGate) |
Stato sincronizzazioni; aperta via sub DB |
| ARPAZIEN | arpazien (tabella DB AreaGate) |
Anagrafica aziende sincronizzazione; aperta via sub DB |
| ARPSTPRC | arpstprc (tabella DB AreaGate) |
Stato/parametri del processo schedulato (limiti record/errori, direzione, build); letta e riscritta |
| COGTABEL | cogtabel |
Tabella di configurazione locale COBOL |
| FEURTAB | feurtab.fd / cogfiles.cpy |
File di appoggio standard del gestionale |
Le tabelle APSTATOSYN, ARPAZIEN, ARPSTPRC sono tabelle PostgreSQL del database KPN di AreaGate: l'accesso passa dalle sub-routine sub-cfg-bin-open-* / sub-cfg-rd-arpstprc / sub-cfg-rwr-arpstprc (copybook costanti-sync.cpy) e dalla connessione SQL inizializzata in x-apri-tabelle-db.
Parametri e linkage¶
procedure division using stringhe util-agprg.
util-agprg(utilagprg.cpy): parametri di lancio passati da AGLANCIO —agprg-called,agprg-key,agprg-fl-manuale,agprg-esporta-tutto,agprg-ope,agprg-id-processo.util-asn051(utilasn051.cpy): area di dialogo con ASN051, valorizzata prima dellaCALL(vedi sotto).
Costanti di processo:
| Costante | Valore | Significato |
|---|---|---|
k-id-processo |
30003 |
ID del processo schedulato di default |
k-tabella-statosyn |
"RINNOVO-CONTRATTI" |
Etichetta della tabella di stato sincronizzazione |
Se AGLANCIO passa agprg-id-processo valido (> 0) questo prevale su k-id-processo.
Configurazioni RNEWCONF lette¶
Il paragrafo x99-src-cfg legge sei chiavi via RNEWCONF (pacchetto C):
| Gruppo | Chiave | Destinazione | Uso |
|---|---|---|---|
abilita |
attiva-areaapp |
tm-cfg-attiva-areaapp |
Sincronizzazione generale attiva |
areaapp |
cod-azienda |
tm-cfg-cod-azienda |
Codice azienda |
areaapp |
db-log-level |
tm-cfg-bin-log-level |
Livello di log connessione DB |
areaapp |
agg-postgres-online |
tm-cfg-agg-online |
Aggiornamento online attivo |
assist |
gestione-gruppo-aziende |
tm-cfg-gestione-gruppo-aziende |
Gestione gruppo aziende |
AREAAPP |
AGLANCIO-ATTIVO |
tm-cfg-aglancio-attivo |
Gate della nuova procedura automatica |
La stringa di connessione al DB e' ottenuta separatamente via SWGETS (swgets-str-conn).
Flusso di elaborazione (main)¶
- Init e log —
ctr-abil, apertura log principalegesdebug(w-tm-cfg-debug = "S"), messaggio "Inizio processo". - Parametri di lancio — se
agprg-called = "AGPRG-CALLED"popolaw-dati-called(chiamante, chiave, flag manuale); normalizzaagprg-opein maiuscolo. - Apertura file e azienda —
open-files,rd-azi; legge data/ora di sistema. - Configurazioni —
x99-src-cfg. Setm-cfg-aglancio-attivo <> "S"termina subito (go to fine): la nuova procedura automatica non e' attiva. - Selezione ID processo — usa
agprg-id-processose valido, altrimentik-id-processo(30003). - Controlli di attivazione:
- se
tm-cfg-attiva-areaapp = "N"→ log efine; - se operazione
ESPORTA-KEYe aggiornamento online non attivo → log efine. - Apertura tabelle DB —
x-apri-tabelle-db(connessione SQL +db-open-tables). Se fallisce → log errore efine. - Gestione stato processo (
ARPSTPRC) — quando eseguito in modo schedulato/manuale, legge il record processo per ricavare limiti record/errori, direzione e livello di log; impostafl-processo-attivo = "S". - Esecuzione — costruisce
util-asn051:
cobol
move "ASN051AG" to asn051-caller
move "ASN051" to asn051-called
move "RINNOVO-AUTOMATICO" to asn051-ope
move zero to asn051-data-ini
move datasis to asn051-data-fin
call "ASN051" using stringhe util-asn051
cancel "ASN051"
Il periodo passato a ASN051 e' da 0 alla data odierna (datasis): rinnova tutti i contratti in scadenza fino ad oggi.
10. Chiusura (fine/z-chiudi) — chiude il processo su ARPSTPRC (solo se fl-processo-attivo = "S"), scrive "Fine processo" nel log, chiude file e connessione DB (solo se aperta qui).
Relazione con ASN051¶
ASN051AG e' l'unico chiamante noto della modalita' automatica di ASN051. L'aggancio lato ASN051 avviene tramite l'area util-asn051 (utilasn051.cpy):
asn051-called = "ASN051"easn051-callervalorizzato attivano il ramo automatico in ASN051;asn051-ope = "RINNOVO-AUTOMATICO"imposta il flag internow-dc-automatico = "S";asn051-data-ini/asn051-data-findiventano il periodo di scadenza (tm-contratto-da/tm-contratto-a).
In modalita' automatica ASN051 salta la costruzione della maschera e della griglia, esegue carica-file + selezione totale + rinnovo, e limita la scrittura in coda (cogtrans) ai soli contratti di tipo annuale. Vedi la scheda ASN051 — Storico modifiche.
Note implementative¶
- Log di processo: tutte le segnalazioni passano da
gesdebug(geslprc-msg+gesdebug-write/gesdebug-write-errore); gli errori aggiornano ancheARPSTPRC(x-aggiorna-processo,x-chiudi-processo). - Chiusura DB condizionata: la connessione PostgreSQL viene chiusa solo se aperta direttamente in questo processo (
fl-dbpg-kpn-aperto-qui = "S"), per non chiudere una connessione condivisa gia' aperta da AGLANCIO. - Artefatti Screens:
.select/.fd/.wrk/.prc/.declasono generati da Screens (v.cbl/screens/asn051ag.*); il programma non ha maschera operativa attiva in questa modalita' (esecuzione headless).
Storico modifiche¶
2026-07 — Creazione (innesco rinnovo automatico da AGLANCIO)¶
Programma di nuova creazione, non ancora tracciato in prog.txt (non a menu). Introduce l'innesco schedulato del rinnovo contratti: gate su config AREAAPP/AGLANCIO-ATTIVO, ID processo 30003 (RINNOVO-CONTRATTI), invocazione di ASN051 con operazione RINNOVO-AUTOMATICO sul periodo 0→data odierna. Introdotto in coppia con la modalita' automatica di ASN051.