Vai al contenuto

GRP006 - Classi di informazioni

Sorgente: cbl/grp006.cbl | Tipo: Programma interattivo GUI a griglia editabile (anche richiamabile come help) | Program-ID: GRP006

Menu:

  • Sistema > Configurazione > Gruppi di aziende

Scopo

Gestisce la tabella GRPSYCLA (Gruppo/Sistema - classi di informazione), l'anagrafica delle classi di sincronizzazione usate nell'import/export tra le aziende del gruppo. Ogni classe rappresenta un'unita' elementare di dati sincronizzabile (es. le pagine scheda CRM, i nominativi CRM, ecc.) ed e' descritta da:

  • Codice classe (ao-syc-cod, 3 caratteri) e descrizione (ao-syc-des);
  • Gruppo di classi di appartenenza (ao-syc-grp, riferito a GRPSYGRP);
  • Programma da innescare (ao-syc-prg): il programma applicativo che elabora l'esportazione/importazione di quella classe;
  • Tabella di log (ao-syc-tabella-log): il file su cui scorrere il log delle variazioni da sincronizzare.

Queste classi sono l'anagrafe di riferimento del sottosistema gruppi di aziende: i gruppi di dati (GRPSYGRP) raccolgono piu' classi, e le abilitazioni export/import (GRP005/GRP007) agiscono per gruppo. Vedi la panoramica gruppi di aziende.

Il programma presenta la tabella in una griglia editabile (GRIDADMN) con le due modalita' Selezione e Aggiornamento. Puo' essere richiamato come sottoprogramma di help/selezione (linkage utilgrp006.cpy): in tal caso restituisce nel parametro il codice e la descrizione della classe selezionata.


Struttura del programma

Inizializzazione (apri)

  1. ctr-abil, z-99-init-program, open-files, rd-azi.
  2. Rilevamento chiamata come help: se grp006-called = k-program-id e grp006-caller valorizzato, imposta w-dc-called = "S" (modalita' selezione).
  3. Definizione tasti funzione: Invio, F3, F8 aiuto, Shift-F4 griglia, Ctrl-A, Ctrl-E.
  4. Titolo "Sincronizzazione: Classi di Informazione", rd-msk-pop, preparazione griglia (GRIDADMN "Prepara"), costruzione controlli.

Caricamento griglia (a4 -> a10-loop)

Scandisce GRPSYCLA dall'inizio (st-grpsycla-notmin + rdnxt-grpsycla), una riga per record (max 600):

  • ao-syc-cod -> Codice (salvato anche in tm-cod-prec);
  • ao-syc-des -> Descrizione;
  • ao-syc-grp -> Gruppo; ne legge la descrizione da GRPSYGRP (rd-grpsygrp, ao-syg-des in tm-gruppo-d);
  • ao-syc-prg -> Programma da innescare;
  • ao-syc-tabella-log -> Tabella di log (colonna aggiunta 14/12/2023, marcata 141223 nel sorgente).

Gestione eventi griglia (a-accept-grid)

  • Esc: uscita.
  • Invio in modalita' Selezione: restituisce grp006-out-cod/grp006-out-des (codice e descrizione della classe corrente) e termina - usato quando GRP006 e' richiamato come help.
  • Shift-F4: amministrazione colonne (GRIDADMN).
  • F3: salva (Aggiornamento) o commuta modalita' (se richiamato); previa verifica w-abi-ins/w-abi-agg.
  • Ctrl-A: aggiunge riga.
  • Ctrl-E: elimina riga previa conferma; verifica w-abi-del.
  • F8 sulla colonna Gruppo: richiama GRP004 (help gruppi di classi).

Salvataggio (a1-aggiorna -> b-aggiorna)

Valida tutte le righe, poi per ciascuna decide l'operazione confrontando tm-cod con tm-cod-prec:

  • tm-cod vuoto e tm-cod-prec valorizzato -> cancella (b3-cancella, del-grpsycla);
  • tm-cod = tm-cod-prec -> modifica (b2-modifica, rwr-grpsycla);
  • tm-cod-prec vuoto -> inserisci (b1-inserisci, wr-grpsycla);
  • codice cambiato -> cancella + inserisci.

In inserimento/modifica riporta nel record descrizione, gruppo, programma e tabella di log. In inserimento su codice esistente chiede conferma di sovrascrittura; in modifica su codice non piu' esistente chiede se ricrearlo.

Validazioni di riga

  • x-controlla-tm-cod: in inserimento (a-operazione = "I") verifica che il codice non sia gia' presente (rd-grpsycla-lk), altrimenti messaggio "codice gia' presente".
  • x-controlla-tm-des: descrizione obbligatoria se il codice e' valorizzato.
  • x-controlla-tm-gruppo: gruppo classi obbligatorio e deve esistere in GRPSYGRP (rd-grpsygrp); ne carica la descrizione.
  • x-controlla-tm-progra: programma da innescare obbligatorio.
  • x-controlla-tm-tab-log: tabella di log obbligatoria (controllo aggiunto 14/12/2023).

Chiusura (fine / z-chiudi)

z-close-files, chiusura finestra, z-99-exit-program, exit program.


Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema
GRPSYCLA primaria ao-syc-chia1 (ao-syc-cod) Classi di informazione: codice, descrizione, gruppo, programma da innescare (ao-syc-prg), tabella di log (ao-syc-tabella-log)
GRPSYGRP ao-syg-cod Gruppi di classi (descrizione ao-syg-des) - sola lettura

COPY incluse

Working-Storage

grp006.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilgrp004.cpy

Linkage

wcont.cpy, wcont1.cpy, utilgrp006.cpy (parametri stringhe util-grp006)

Procedure Division

grp006.decla, grp006-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, grp006.prc


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Preparazione, formattazione, amministrazione colonne ed eventi della griglia editabile
GRP004 Aiuto (F8) sulla colonna Gruppo: ricerca/selezione gruppo di classi (GRPSYGRP)

I paragrafi st-grpsycla-*, rd-grpsycla, rd-grpsycla-lk, wr-grpsycla, rwr-grpsycla, del-grpsycla, rd-grpsygrp sono i gestori di tabella generati (routine di I/O sui file indicizzati).


Configurazioni RNEWCONF

Il programma non legge chiavi RNEWCONF: non contiene un paragrafo x99-confi ne' include copybook di configurazione applicativa. La configurazione delle classi risiede interamente nella tabella GRPSYCLA.


Note tecniche

  • Parametro di uscita (utilgrp006.cpy): grp006-out-cod (3 char) e grp006-out-des (60 char) vengono valorizzati solo quando GRP006 e' richiamato come help in modalita' Selezione e l'operatore preme Invio su una riga.
  • Colonna Tabella di log: introdotta il 14/12/2023 (righe marcate 141223); mappa ao-syc-tabella-log e serve a indicare su quale file scorrere il log delle variazioni da sincronizzare per la classe.
  • Programma da innescare (ao-syc-prg): e' il collegamento tra la classe e il modulo applicativo che ne esegue l'export/import (es. i programmi GRE0xx/GRI0xx); GRP006 lo registra ma non lo esegue.
  • Modalita' Selezione/Aggiornamento: come per GRP005/GRP007, in Selezione la griglia e' di sola lettura e l'evento di editing viene rifiutato; l'editing e' consentito solo in Aggiornamento con Ctrl-A/Ctrl-E.
  • Limite griglia: massimo 600 righe (k-max-ele-tab).