Vai al contenuto

COGT08 - Operatori per gruppo di segnalazione

Sorgente: cbl/cogt08.cbl | Tipo: Programma interattivo GUI con griglia | Program-ID: COGT08

Menu:

  • Sistema > Configurazione > Menu/Operatori > Segnalazioni

Scopo

Gestisce le associazioni operatore-gruppo dal punto di vista del gruppo: scelto un gruppo di segnalazione, elenca e permette di manutenere gli operatori che ne fanno parte (tabella PRNTGROD). E' una delle due viste sulla stessa relazione molti-a-molti tra gruppi e operatori; la vista complementare (i gruppi di un operatore) e' gestita da COGT09.

L'utente digita (o seleziona con l'help F8 = COGT07) un codice gruppo; il programma mostra in griglia gli operatori gia' associati (codice + descrizione) e consente di aggiungerne di nuovi (help F8 = COGT20) o di rimuoverli. Ogni riga inserita crea/elimina un record in PRNTGROD con chiave pgod-grp (gruppo) + pgod-ope (operatore).


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 operatori per gruppo", preparazione maschera e griglia.
  2. Reset (a4): svuota la griglia e tab-maschera, attiva F3 conferma. La maschera attende la selezione del gruppo.

Selezione del gruppo (a-tm-grp -> a-fine-dati)

  • Accept del codice gruppo (a-tm-grp) con help F8 che chiama COGT07 in modalita' selezione (restituisce cogt07-out-cod in tm-grp).
  • Validazione (x-controlla-tm-grp): gruppo obbligatorio ed esistente in PRNTGROT (rd-prntgrot); se valido carica la descrizione (tm-grp-des da pgot-des).
  • Alla conferma F3 (a-fine-dati) carica la griglia degli operatori del gruppo (carica-griglia), la costruisce (z-costruisci-grid), attiva i tasti operativi e disattiva F3 conferma.

Caricamento operatori del gruppo (carica-griglia)

Scansione di PRNTGROD sulla chiave primaria partendo da pgod-grp = tm-grp (st-prntgrod-notmin + rdnxt-prntgrod), fino a fine file o a rottura del gruppo (pgod-grp not = tm-grp) o al limite di 900 elementi. Per ogni associazione carica pgod-ope in tm-r-ope e ne legge la descrizione da PRNTOPER (rd-prntoper, campo ptop-des).

Interazione griglia (a-grid / a-accept-grid)

Doppio click / Invio equivalgono a Invio; Esc torna alla selezione del gruppo (a4); Shift-F4 apre la configurazione colonne (GRIDADMN); Ctrl-A aggiunge una riga (dopo controllo abilitazione w-abi-ins e capienza tabella); Ctrl-E elimina la riga selezionata (controllo w-abi-del, conferma custom). Le abilitazioni provengono dai permessi dell'operatore.

Dettaglio riga (a-riga-dettaglio -> a-tm-r-ope -> a-fine-dettaglio)

  • Accept del codice operatore (a-tm-r-ope) con help F8 che chiama COGT20 (anagrafica operatori, restituisce t20-out-cod).
  • Validazione (x-controlla-tm-r-ope): operatore obbligatorio ed esistente in PRNTOPER; inoltre verifica in PRNTGROD (rd-prntgrod) che l'operatore non sia gia' associato al gruppo (messaggio "Operatore gia' inserito per questo gruppo").
  • Alla conferma (a-fine-dettaglio), ricontrolla la non-esistenza dell'associazione con lock (rd-prntgrod-lk), scrive il record (wr-prntgrod), aggiorna la griglia via GRIDADMN (Add-Record) e sincronizza KPN (x-sincronizza-kpn). L'uscita con Esc (a-riga-dettaglio-wesc) ripristina la riga.
  • Il programma gestisce solo inserimento ed eliminazione: i rami di modifica sono commentati (l'associazione non ha attributi propri modificabili oltre alla coppia chiave).

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

c1-ctrl-canc consente sempre la cancellazione (c-ok = "S", nessun vincolo referenziale a valle). c-cancella rilegge l'associazione con lock (rd-prntgrod-lk), la cancella (del-prntgrod) e sincronizza KPN.


Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema
PRNTGROT primaria pgot-chia1 (pgot-cod) Anagrafica gruppi di segnalazione: letta per validare il gruppo scelto e ricavarne la descrizione
PRNTGROD primaria pgod-chia1 (pgod-grp+pgod-ope) Associazioni gruppo-operatore: lette, inserite ed eliminate (operatori del gruppo)
PRNTOPER primaria ptop-chia1 (ptop-cod) Anagrafica operatori: letta per validare l'operatore e ricavarne la descrizione (ptop-des)

COPY incluse

Working-Storage

cogt08.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, cogt08.select, cogfiles.cpy, cogt08.fd

Linkage

wcont.cpy, wcont1.cpy

Screen Section

cogt08-01.scr

Procedure Division

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


CALL a sottoprogrammi

Programma Scopo
COGT07 Help F8 sul campo gruppo: selezione di un gruppo di segnalazione (restituisce cogt07-out-cod)
COGT20 Help F8 sul campo operatore: selezione di un operatore dall'anagrafica (restituisce t20-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 gruppo" della relazione molti-a-molti: COGT08 lavora su PRNTGROD navigando per chiave primaria (pgod-grp+pgod-ope), cioe' "gli operatori di un gruppo". La vista complementare (COGT09) usa la chiave secondaria (pgod-chia2 = pgod-ope+pgod-grp), cioe' "i gruppi di un operatore". Le due funzioni scrivono/leggono lo stesso file: un'associazione creata in COGT08 e' visibile anche in COGT09 e viceversa.
  • Prevenzione duplicati: l'associazione e' controllata due volte (in x-controlla-tm-r-ope e prima della wr-prntgrod) per evitare doppioni sulla stessa coppia gruppo-operatore.
  • Solo inserimento/eliminazione: essendo l'associazione una pura coppia di chiavi, non e' prevista modifica; i relativi rami sono commentati nel sorgente.
  • Limite griglia: massimo 900 operatori per gruppo (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.