Vai al contenuto

GRP005 - Abilitazioni all'esportazione

Sorgente: cbl/grp005.cbl | Tipo: Programma interattivo GUI a griglia editabile | Program-ID: GRP005

Menu:

  • Sistema > Configurazione > Gruppi di aziende

Scopo

Gestisce la tabella GRPSYGAB (Gruppo/Sistema - abilitazioni all'export), che stabilisce quali tipologie di azienda del gruppo sono abilitate ad esportare un determinato gruppo di dati (classe di sincronizzazione) verso le altre aziende del gruppo.

Ogni riga associa un gruppo di dati (codice ao-syg-cod della tabella GRPSYGRP, es. CRM-SK, CRM-INF, CRM-NOM), una tipologia di azienda (codice ao-azt-cod della tabella GRPAZTIP, es. Holding, Clinica, Laboratorio) e, dove necessario, una suddivisione (per i gruppi legati alle schede/nominativi CRM la suddivisione e' la tipologia nominativo), impostando il flag abilitato S/N.

Questa configurazione e' il presupposto usato dai programmi di esportazione GRE0xx: prima di produrre un file di export, GRE001 (e affini) leggono GRPSYGAB con ao-sya-cod/ao-sya-azi-tip/ao-sya-suddivisione e proseguono solo se ao-sya-abi = "S". L'assenza del record equivale a "non abilitato". Vedi la panoramica gruppi di aziende.

Il programma presenta l'intero contenuto della tabella in una griglia editabile (subroutine GRIDADMN) con due modalita': Selezione (sola consultazione) e Aggiornamento (inserimento/modifica/cancellazione righe). Puo' inoltre operare come sottoprogramma richiamato (modalita' "called", flag w-dc-called) per la sola selezione di una riga.


Struttura del programma

Inizializzazione (apri)

  1. ctr-abil (controllo abilitazioni operatore), z-99-init-program, open-files, rd-azi.
  2. Definizione dei tasti funzione disponibili: Invio, F3 (aggiorna oppure selezione/modifica se richiamato), F8 aiuto, Shift-F4 griglia, Ctrl-A aggiungi riga, Ctrl-E elimina riga.
  3. Titolo maschera "Sincronizzazione: Abilitazione all'Export", rd-msk-pop, preparazione griglia (z-prepara-tm-grid -> GRIDADMN "Prepara") e costruzione controlli.
  4. Modalita' iniziale: "S" (selezione) se richiamato, "A" (aggiornamento) altrimenti.

Caricamento griglia (a4 -> a10-loop)

Svuota la griglia e scandisce GRPSYGAB dall'inizio (st-grpsygab-notmin + rdnxt-grpsygab), riempiendo una riga per ogni record (fino a k-max-ele-tab = 600):

  • ao-sya-cod -> colonna Codice gruppo; per la descrizione legge GRPSYGRP (rd-grpsygrp, ao-syg-des);
  • ao-sya-azi-tip -> colonna Tipo azienda; per la descrizione legge GRPAZTIP (rd-grpaztip, ao-azt-des);
  • ao-sya-suddivisione -> colonna Suddivisione;
  • ao-sya-abi -> colonna Abilitato (S/N);
  • salva ao-sya-chia1 sia in tm-chia1 sia in tm-chia1-prec (chiave "precedente" per il confronto in aggiornamento).

Gestione eventi griglia (a-accept-grid)

z-99-accept-tm-tab gestisce l'accept sulla griglia. Sono intercettati:

  • Esc (wesc/test-wesc): uscita.
  • Doppio click / Invio in cella: emulato come Invio.
  • Shift-F4: apre l'amministrazione colonne (GRIDADMN).
  • F3: se in Aggiornamento salva (a1-aggiorna); se richiamato commuta tra Selezione e Aggiornamento (con eventuale conferma di salvataggio). Controlla prima le abilitazioni w-abi-ins/w-abi-agg.
  • Ctrl-A: aggiunge una riga (z-aggiungi-riga-tm-tab), preimpostando Abilitato = "S".
  • Ctrl-E: elimina la riga corrente previa conferma (svuota l'elemento mantenendo tm-chia1-prec per la successiva cancellazione fisica). Controlla w-abi-del.
  • F8 (aiuto): dalla colonna Codice richiama GRP004 (help gruppi di classi), dalla colonna Tipo richiama GRP001 (help tipologie azienda).

Salvataggio (a1-aggiorna -> b-aggiorna)

Valida tutte le righe (x-controlla-tm-tab-tutto); se ok, scorre le righe e per ciascuna decide l'operazione confrontando la chiave attuale con quella precedente:

  • tm-cod vuoto e tm-chia1-prec valorizzato -> cancella (b3-cancella, del-grpsygab);
  • chiave attuale = precedente -> modifica (b2-modifica, rwr-grpsygab);
  • tm-chia1-prec vuoto -> inserisci (b1-inserisci, wr-grpsygab);
  • chiave cambiata -> cancella + inserisci.

La chiave attuale tm-chia1 viene ricomposta concatenando codice + tipo + suddivisione. In inserimento, se il record esiste gia' chiede conferma di sovrascrittura; in modifica, se non esiste piu' chiede se ricrearlo.

Validazioni di riga

  • x-controlla-tm-cod: il codice gruppo deve esistere in GRPSYGRP (rd-grpsygrp); ne carica la descrizione.
  • x-controlla-tm-tipo: il tipo azienda e' obbligatorio se il codice e' valorizzato e deve esistere in GRPAZTIP (rd-grpaztip).
  • x-controlla-tm-suddiv / x-controlla-tm-abi: senza controlli specifici.

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
GRPSYGAB primaria ao-sya-chia1 (ao-sya-cod + ao-sya-azi-tip + ao-sya-suddivisione) Abilitazioni all'esportazione: per gruppo/tipo azienda/suddivisione, flag ao-sya-abi S/N. Tabella gestita presso il cliente
GRPSYGRP ao-syg-cod Gruppi di dati esportabili (descrizione ao-syg-des) - sola lettura
GRPAZTIP ao-azt-cod Tipologie di azienda del gruppo (descrizione ao-azt-des) - sola lettura

COPY incluse

Working-Storage

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

Linkage

wcont.cpy, wcont1.cpy (parametro stringhe)

Procedure Division

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


CALL a sottoprogrammi

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

I paragrafi st-grpsygab-*, rd-grpsygab, wr-grpsygab, rwr-grpsygab, del-grpsygab, rd-grpsygrp, rd-grpaztip 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 (utilncnf.cpy non e' incluso). La configurazione e' interamente memorizzata nella tabella GRPSYGAB.


Note tecniche

  • Modalita' Selezione/Aggiornamento (a-modalita): in Selezione la griglia e' di sola lettura (l'evento msg-begin-entry viene rifiutato con event-action-fail-terminate); in Aggiornamento le celle sono editabili e disponibili Ctrl-A/Ctrl-E.
  • Modalita' richiamata (w-dc-called = "S"): pensata per l'uso come help/selezione da un altro programma; abilita i tasti F3 selezione/modifica anziche' F3 aggiorna. GRP005 non definisce parametri di output propri (usa la sola area stringhe).
  • Chiave "precedente" (tm-chia1-prec): consente in fase di salvataggio di distinguere inserimenti, modifiche e cancellazioni confrontando la chiave corrente con quella caricata; la ricostruzione della chiave attuale avviene concatenando codice+tipo+suddivisione.
  • Assenza record = non abilitato: coerentemente con la logica di export (vedi GRE0xx), la mancanza di una riga in GRPSYGAB per una combinazione gruppo/tipo/suddivisione equivale a esportazione non abilitata.
  • Limite griglia: massimo 600 righe (k-max-ele-tab); oltre viene emesso il messaggio "tabella piena".