Vai al contenuto

COGT07 - Gruppi di segnalazione

Sorgente: cbl/cogt07.cbl | Tipo: Programma interattivo GUI con griglia (standalone o richiamabile via CALL) | Program-ID: COGT07

Menu:

  • Sistema > Configurazione > Menu/Operatori > Segnalazioni

Scopo

Gestisce l'anagrafica dei gruppi di segnalazione (tabella PRNTGROT). Un gruppo di segnalazione e' un contenitore identificato da un codice a 4 caratteri e da una descrizione, al quale vengono poi associati gli operatori (via COGT08) e che a sua volta puo' essere assegnato agli operatori (via COGT09). I gruppi sono il perno del sistema di instradamento delle segnalazioni verso insiemi di operatori.

Il programma presenta l'elenco dei gruppi esistenti in una griglia e consente, in base ai permessi dell'operatore, di inserire, modificare ed eliminare le righe. Ogni riga e' composta da codice gruppo (grd-cod) e descrizione (grd-des).

Il programma opera in due modalita':

  • Standalone da menu (w-dc-called = "N"): parte in modalita' "Aggiornamento" (a-modalita = "A"), gestione completa dei gruppi.
  • Richiamato come help (w-dc-called = "S"): quando i parametri di linkage utilcogt07.cpy indicano una chiamata da un altro programma (cogt07-called = "COGT07" e cogt07-caller valorizzato), parte in modalita' "Selezione" (a-modalita = "S"): l'utente sceglie un gruppo e il codice viene restituito nel campo cogt07-out-cod. In questa modalita' F3 commuta tra Selezione e Aggiornamento. E' il caso d'uso dell'help F8 di COGT08 (gruppo) e di COGT09 (gruppo per operatore).

Struttura del programma

Flusso principale (apri / a4)

  1. Inizializzazione (apri): z-99-init-program, ctr-abil, rd-azi, open-files. Determina la modalita' leggendo i parametri di linkage (w-dc-called), abilita i tasti funzione (invio seleziona/modifica, F3 conferma, Shift-F4 configurazione griglia, Ctrl-A aggiungi, Ctrl-E elimina, F1 configura), carica la lingua, prepara maschera e griglia (z-costruisci-controlli, z-prepara-tm-grid).
  2. Caricamento griglia (a4): svuota la griglia, ricarica tutti i gruppi da PRNTGROT (carica-griglia), ricostruisce la griglia (z-costruisci-grid) e attiva i tasti funzione operativi.
  3. Interazione griglia (a-grid / a-accept-grid): gestione degli eventi. Doppio click / Invio equivalgono a Invio; Esc esce; Shift-F4 apre la configurazione colonne (GRIDADMN); F1 e' una lettura di configurazione (vedi note); Invio in modalita' "A" apre la modifica riga, in modalita' "S" restituisce il codice e termina; Ctrl-A / Ctrl-E aggiungono / eliminano una riga (con controllo abilitazioni w-abi-ins / w-abi-del / w-abi-agg).

Caricamento (carica-griglia)

Scansione sequenziale di PRNTGROT dall'inizio (st-prntgrot-notmin + rdnxt-prntgrot) fino a fine file o a k-max-ele-tab (900) elementi; ogni gruppo (pgot-cod, pgot-des) viene riversato in tm-tab. Superato il limite, viene mostrato un avviso e i restanti elementi vengono scartati.

Dettaglio riga (a-riga-dettaglio -> a-tm-r-cod / a-tm-r-des -> a-fine-dettaglio)

  • In modifica (a-operazione = "M") blocca il record leggendolo con lock (rd-prntgrot-lk); in inserimento (a-operazione = "I") prepara una riga nuova.
  • Accept del codice (a-tm-r-cod) e della descrizione (a-tm-r-des), con validazione: codice diverso da zero e, in inserimento, non gia' esistente (x-controlla-tm-r-cod); descrizione obbligatoria (x-controlla-tm-r-des).
  • Alla conferma (a-fine-dettaglio) rilegge il record con lock per decidere tra scrittura (wr-prntgrot) e riscrittura (rwr-prntgrot), gestendo il caso di operazione cambiata sotto (I<->M), aggiorna la griglia via GRIDADMN (Add-Record / Modify-Record) e sincronizza con KPN (x-sincronizza-kpn).
  • L'uscita con Esc (a-riga-dettaglio-wesc) ripristina la riga salvata (tm-ele-sav).

Eliminazione (c1-ctrl-canc / c-cancella)

Prima di eliminare un gruppo, c1-ctrl-canc verifica in PRNTGROD (chiave primaria pgod-grp) che non esistano operatori associati a quel gruppo: se ne trova almeno uno, blocca la cancellazione con messaggio. Se il gruppo e' libero, c-cancella rilegge con lock (rd-prntgrot-lk), cancella (del-prntgrot) e sincronizza KPN.


Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema
PRNTGROT primaria pgot-chia1 (pgot-cod); secondaria pgot-chia2 (pgot-des+pgot-chia1) Anagrafica gruppi di segnalazione (codice + descrizione + dati di inserimento/modifica)
PRNTGROD primaria pgod-chia1 (pgod-grp+pgod-ope) Associazioni gruppo-operatore: consultata in sola lettura per impedire la cancellazione di gruppi ancora usati

COPY incluse

Working-Storage

cogt07.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilagprg.cpy, wgrid.cpy, utilgdad.cpy, utilncnf.cpy

File Section

feurtab.fd, cogt07.select, cogfiles.cpy, cogt07.fd

Linkage

wcont.cpy, wcont1.cpy, utilcogt07.cpy

Screen Section

cogt07-01.scr

Procedure Division

cogt07.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, utilgrid.cpy, cogt07.prc


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Gestione della griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record, configurazione colonne Shift-F4)
RNEWCONF Lettura di una chiave di configurazione (paragrafo x99-confi)
SWN046 Sincronizzazione KPN (x-sincronizza-kpn): esporta la chiave del gruppo (pgot-chia1) dopo inserimento/modifica/cancellazione (operazione ESPORTA-KEY, on overflow continue)

SWN046 e' un gestore di sincronizzazione esterno (integrazione KPN), non un gestore tabella generato.


Configurazioni RNEWCONF

Il paragrafo x99-confi, richiamato alla pressione di F1 con ncnf-ope = "Modifica", legge (pacchetto C):

Gruppo Chiave Uso
clipot pratica-tipo-numerazione Lettura configurazione

Riferimento: clipot.

Questa lettura non e' funzionale alla gestione dei gruppi di segnalazione (la chiave appartiene al dominio "pratiche"): il paragrafo x99-confi risulta un residuo del programma modello da cui COGT07 e' stato derivato e viene attivato solo dal tasto F1.


Note tecniche

  • Chiave secondaria per descrizione: PRNTGROT espone pgot-chia2 (descrizione + codice), utile per elenchi ordinati alfabeticamente; COGT07 carica pero' la griglia in ordine di codice (chiave primaria).
  • Integrita' referenziale in cancellazione: un gruppo non puo' essere eliminato finche' esistono righe in PRNTGROD che lo referenziano come pgod-grp (controllo in c1-ctrl-canc). Questo impedisce di lasciare associazioni operatore orfane.
  • Modalita' help: quando richiamato via CALL (F8 da COGT08/COGT09), restituisce il codice gruppo scelto in cogt07-out-cod; se l'utente esce senza selezionare, il campo resta a spazi.
  • Limite griglia: massimo 900 elementi caricabili (k-max-ele-tab); oltre tale soglia i gruppi eccedenti non vengono mostrati.
  • Sincronizzazione KPN: ogni variazione della tabella e' propagata al sistema KPN tramite SWN046 con la chiave del gruppo.