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)¶
ctr-abil(controllo abilitazioni operatore),z-99-init-program,open-files,rd-azi.- 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.
- Titolo maschera "Sincronizzazione: Abilitazione all'Export",
rd-msk-pop, preparazione griglia (z-prepara-tm-grid-> GRIDADMN "Prepara") e costruzione controlli. - 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-chia1sia intm-chia1sia intm-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 abilitazioniw-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-precper la successiva cancellazione fisica). Controllaw-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-codvuoto etm-chia1-precvalorizzato -> cancella (b3-cancella,del-grpsygab);- chiave attuale = precedente -> modifica (
b2-modifica,rwr-grpsygab); tm-chia1-precvuoto -> 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'eventomsg-begin-entryviene rifiutato conevent-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 areastringhe). - 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".