Vai al contenuto

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 0 a 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 della CALL (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)

  1. Init e logctr-abil, apertura log principale gesdebug (w-tm-cfg-debug = "S"), messaggio "Inizio processo".
  2. Parametri di lancio — se agprg-called = "AGPRG-CALLED" popola w-dati-called (chiamante, chiave, flag manuale); normalizza agprg-ope in maiuscolo.
  3. Apertura file e aziendaopen-files, rd-azi; legge data/ora di sistema.
  4. Configurazionix99-src-cfg. Se tm-cfg-aglancio-attivo <> "S" termina subito (go to fine): la nuova procedura automatica non e' attiva.
  5. Selezione ID processo — usa agprg-id-processo se valido, altrimenti k-id-processo (30003).
  6. Controlli di attivazione:
  7. se tm-cfg-attiva-areaapp = "N" → log e fine;
  8. se operazione ESPORTA-KEY e aggiornamento online non attivo → log e fine.
  9. Apertura tabelle DBx-apri-tabelle-db (connessione SQL + db-open-tables). Se fallisce → log errore e fine.
  10. Gestione stato processo (ARPSTPRC) — quando eseguito in modo schedulato/manuale, legge il record processo per ricavare limiti record/errori, direzione e livello di log; imposta fl-processo-attivo = "S".
  11. 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" e asn051-caller valorizzato attivano il ramo automatico in ASN051;
  • asn051-ope = "RINNOVO-AUTOMATICO" imposta il flag interno w-dc-automatico = "S";
  • asn051-data-ini / asn051-data-fin diventano 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 anche ARPSTPRC (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 / .decla sono 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.