Vai al contenuto

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)

  1. 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.
  2. Reset (a4): svuota la griglia e tab-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 (restituisce t20-out-cod in tm-ope).
  • Validazione (x-controlla-tm-ope): operatore obbligatorio ed esistente in PRNTOPER (rd-prntoper); se valido carica la descrizione (tm-ope-des da ptop-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 (restituisce cogt07-out-cod).
  • Validazione (x-controlla-tm-r-grp): gruppo obbligatorio ed esistente in PRNTGROT; inoltre verifica in PRNTGROD (rd-prntgrod, chiave pgod-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 manualmente prntgrod.k02 a 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-grp e prima della wr-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).