COGT09 - Gruppi di segnalazione per operatore¶
Sorgente: cbl/cogt09.cbl | Tipo: Programma interattivo GUI con griglia | Program-ID: COGT09
Menu:
- Sistema > Configurazione > Menu/Operatori > Segnalazioni
Scopo¶
Gestisce le associazioni operatore-gruppo dal punto di vista dell'operatore: scelto un operatore, elenca e permette di manutenere i gruppi di segnalazione a cui appartiene (tabella PRNTGROD). E' la vista complementare di COGT08: entrambe manutengono la stessa relazione molti-a-molti tra gruppi e operatori, ma COGT09 la naviga per operatore.
L'utente digita (o seleziona con l'help F8 = COGT20) un codice operatore; il programma mostra in griglia i gruppi a cui e' gia' associato (codice + descrizione) e consente di aggiungerne di nuovi (help F8 = COGT07) o di rimuoverli. Ogni riga inserita crea/elimina un record in PRNTGROD; a differenza di COGT08, la coppia chiave viene impostata con l'operatore fisso (pgod-ope = tm-ope) e il gruppo variabile (pgod-grp = gruppo scelto).
Struttura del programma¶
Flusso principale (apri / a4)¶
- Inizializzazione (
apri):z-99-init-program,ctr-abil,rd-azi,open-files, abilitazione tasti (F3 conferma, F8 aiuto, Shift-F4 configurazione griglia, Ctrl-A aggiungi, Ctrl-E elimina), caricamento lingua, titolo "Gestione gruppi per operatore", preparazione maschera e griglia. - Reset (
a4): svuota la griglia etab-maschera, attiva F3 conferma. La maschera attende la selezione dell'operatore.
Selezione dell'operatore (a-tm-ope -> a-fine-dati)¶
- Accept del codice operatore (
a-tm-ope) con help F8 che chiama COGT20 (restituiscet20-out-codintm-ope). - Validazione (
x-controlla-tm-ope): operatore obbligatorio ed esistente in PRNTOPER (rd-prntoper); se valido carica la descrizione (tm-ope-desdaptop-des). - Alla conferma F3 (
a-fine-dati) carica la griglia dei gruppi dell'operatore (carica-griglia), la costruisce, attiva i tasti operativi e disattiva F3 conferma.
Caricamento gruppi dell'operatore (carica-griglia)¶
Scansione di PRNTGROD sulla chiave secondaria pgod-chia2 (pgod-ope+pgod-grp) partendo da pgod-ope = tm-ope (st-prntgrod-notmin-chia2 + rdnxt-prntgrod), fino a fine file o a rottura dell'operatore (pgod-ope not = tm-ope) o al limite di 900 elementi. Per ogni associazione carica pgod-grp in tm-r-grp e ne legge la descrizione da PRNTGROT (rd-prntgrot, campo pgot-des).
Interazione griglia (a-grid / a-accept-grid)¶
Doppio click / Invio equivalgono a Invio; Esc torna alla selezione dell'operatore (a4); Shift-F4 apre la configurazione colonne (GRIDADMN); Ctrl-A aggiunge una riga (controllo w-abi-ins e capienza); Ctrl-E elimina la riga selezionata (controllo w-abi-del, conferma custom).
Dettaglio riga (a-riga-dettaglio -> a-tm-r-grp -> a-fine-dettaglio)¶
- Accept del codice gruppo (
a-tm-r-grp) con help F8 che chiama COGT07 in modalita' selezione (restituiscecogt07-out-cod). - Validazione (
x-controlla-tm-r-grp): gruppo obbligatorio ed esistente in PRNTGROT; inoltre verifica in PRNTGROD (rd-prntgrod, chiavepgod-ope+pgod-grp) che il gruppo non sia gia' associato all'operatore (messaggio "Gruppo gia' inserito per questo operatore"). - Alla conferma (
a-fine-dettaglio), ricontrolla la non-esistenza con lock (rd-prntgrod-lk), scrive il record (wr-prntgrod), aggiorna la griglia via GRIDADMN (Add-Record) e sincronizza KPN. L'uscita con Esc (a-riga-dettaglio-wesc) ripristina la riga. - Come COGT08, gestisce solo inserimento ed eliminazione (rami di modifica commentati).
Eliminazione (c1-ctrl-canc / c-cancella)¶
c1-ctrl-canc consente sempre la cancellazione (c-ok = "S"). c-cancella rilegge l'associazione con lock impostando pgod-ope = tm-ope e pgod-grp = tm-r-grp (i), la cancella (del-prntgrod) e sincronizza KPN.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| PRNTOPER | primaria ptop-chia1 (ptop-cod) |
Anagrafica operatori: letta per validare l'operatore scelto e ricavarne la descrizione (ptop-des) |
| PRNTGROD | secondaria pgod-chia2 (pgod-ope+pgod-grp); primaria pgod-chia1 in lettura/scrittura |
Associazioni operatore-gruppo: scandite per operatore, inserite ed eliminate (gruppi dell'operatore) |
| PRNTGROT | primaria pgot-chia1 (pgot-cod) |
Anagrafica gruppi di segnalazione: letta per validare il gruppo e ricavarne la descrizione (pgot-des) |
COPY incluse¶
Working-Storage¶
cogt09.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilagprg.cpy, wgrid.cpy, utilgdad.cpy, utilcogt07.cpy, utilt20.cpy
File Section¶
feurtab.fd, cogt09.select, cogfiles.cpy, cogt09.fd
Linkage¶
wcont.cpy, wcont1.cpy
Screen Section¶
cogt09-01.scr
Procedure Division¶
cogt09.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, utilgrid.cpy, cogt09.prc, prntgrod.k02
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGT20 | Help F8 sul campo operatore: selezione di un operatore dall'anagrafica (restituisce t20-out-cod) |
| COGT07 | Help F8 sul campo gruppo: selezione di un gruppo di segnalazione (restituisce cogt07-out-cod) |
| GRIDADMN | Gestione della griglia (Prepara, Svuota-Tutto, Add-Record, configurazione colonne Shift-F4) |
| SWN047 | Sincronizzazione KPN (x-sincronizza-kpn): esporta la chiave dell'associazione (pgod-chia1) dopo inserimento/cancellazione (operazione ESPORTA-KEY, on overflow continue) |
SWN047 e' un gestore di sincronizzazione esterno (integrazione KPN), non un gestore tabella generato.
Configurazioni RNEWCONF¶
Il programma non contiene un paragrafo x99-confi e non legge chiavi RNEWCONF applicative. Include utilagprg.cpy (parametri di sincronizzazione KPN) ma nessun accesso a RNEWCONF.
Note tecniche¶
- Vista "per operatore" della relazione molti-a-molti: COGT09 e COGT08 manutengono lo stesso file PRNTGROD ma da estremi opposti. COGT09 naviga per chiave secondaria
pgod-chia2(pgod-ope+pgod-grp), cioe' "i gruppi di un operatore"; COGT08 usa la chiave primaria (pgod-grp+pgod-ope). Un'associazione creata da una delle due funzioni e' immediatamente visibile nell'altra. - Necessita' della
.k02: per navigare per operatore il programma include manualmenteprntgrod.k02a fine procedure division, che fornisce le routine di start/read sulla chiave secondaria (st-prntgrod-notmin-chia2); la chiave primaria arriva invece con la catena di COPY standard. - Prevenzione duplicati: l'associazione e' controllata due volte (in
x-controlla-tm-r-grpe prima dellawr-prntgrod) per evitare doppioni sulla stessa coppia operatore-gruppo. - Solo inserimento/eliminazione: la coppia chiave non ha attributi propri, quindi non e' prevista modifica (rami commentati).
- Limite griglia: massimo 900 gruppi per operatore (
k-max-ele-tab); oltre tale soglia gli elementi eccedenti vengono scartati con avviso. - Sincronizzazione KPN: ogni variazione dell'associazione e' propagata al sistema KPN tramite SWN047 con la chiave
pgod-chia1(come COGT08).