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 linkageutilcogt07.cpyindicano una chiamata da un altro programma (cogt07-called = "COGT07"ecogt07-callervalorizzato), parte in modalita' "Selezione" (a-modalita = "S"): l'utente sceglie un gruppo e il codice viene restituito nel campocogt07-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)¶
- 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). - 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. - 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 abilitazioniw-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 inc1-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.