GRP007 - Abilitazioni all'importazione¶
Sorgente: cbl/grp007.cbl | Tipo: Programma interattivo GUI a griglia editabile | Program-ID: GRP007
Menu:
- Sistema > Configurazione > Gruppi di aziende
Scopo¶
Gestisce la tabella GRPSYIMP (Gruppo/Sistema - abilitazioni all'import), che stabilisce quali tipologie di azienda del gruppo sono abilitate ad importare un determinato gruppo di dati (classe di sincronizzazione) proveniente dalle altre aziende del gruppo.
E' il gemello di GRP005 (abilitazioni all'esportazione): stessa struttura di chiave e stesse colonne, ma riferite al versante dell'importazione. Ogni riga associa un gruppo di dati (ao-syg-cod di GRPSYGRP, es. CRM-SK, CRM-INF, CRM-NOM), una tipologia di azienda (ao-azt-cod di GRPAZTIP) e, dove serve, una suddivisione, impostando il flag abilitato S/N (ao-sym-abi).
Questa configurazione e' il presupposto usato dai programmi di importazione GRI0xx: prima di importare un file ricevuto, la procedura verifica su GRPSYIMP se la tipologia di azienda ricevente e' abilitata a importare quel gruppo/suddivisione. L'assenza del record equivale a "non abilitato". Vedi la panoramica gruppi di aziende.
Il programma presenta il contenuto della tabella in una griglia editabile (GRIDADMN) con le modalita' Selezione (consultazione) e Aggiornamento (inserimento/modifica/cancellazione).
Struttura del programma¶
Inizializzazione (apri)¶
ctr-abil,z-99-init-program,open-files,rd-azi.- Definizione tasti funzione: Invio, F3 (aggiorna, oppure selezione/modifica se richiamato), F8 aiuto, Shift-F4 griglia, Ctrl-A aggiungi, Ctrl-E elimina.
- Titolo "Sincronizzazione: Configurazione Importazioni",
rd-msk-pop, preparazione griglia (GRIDADMN "Prepara"), costruzione controlli. - Modalita' iniziale:
"S"(selezione) se richiamato,"A"(aggiornamento) altrimenti.
Caricamento griglia (a4 -> a10-loop)¶
Scandisce GRPSYIMP dall'inizio (st-grpsyimp-notmin + rdnxt-grpsyimp), una riga per record (max 600):
ao-sym-cod-> Codice gruppo; descrizione da GRPSYGRP (rd-grpsygrp,ao-syg-des);ao-sym-azi-tip-> Tipo azienda; descrizione da GRPAZTIP (rd-grpaztip,ao-azt-des);ao-sym-suddivisione-> Suddivisione;ao-sym-abi-> Abilitato (S/N);- salva
ao-sym-chia1sia intm-chia1sia intm-chia1-prec.
Gestione eventi griglia (a-accept-grid)¶
- Esc: uscita.
- Doppio click / Invio in cella: emulato come Invio.
- Shift-F4: amministrazione colonne (GRIDADMN).
- F3: salva (Aggiornamento) o commuta modalita' (se richiamato); previa verifica
w-abi-ins/w-abi-agg. - Ctrl-A: aggiunge una riga preimpostando Abilitato = "S".
- Ctrl-E: elimina la riga previa conferma (mantiene
tm-chia1-precper la cancellazione fisica); verificaw-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, poi per ciascuna confronta la chiave attuale con quella precedente:
tm-codvuoto etm-chia1-precvalorizzato -> cancella (b3-cancella,del-grpsyimp);- chiave attuale = precedente -> modifica (
b2-modifica,rwr-grpsyimp); tm-chia1-precvuoto -> inserisci (b1-inserisci,wr-grpsyimp);- chiave cambiata -> cancella + inserisci.
La chiave attuale tm-chia1 e' ricomposta concatenando codice + tipo + suddivisione. In inserimento su chiave esistente chiede conferma di sovrascrittura; in modifica su chiave non piu' esistente chiede se ricrearla.
Validazioni di riga¶
x-controlla-tm-cod: il codice gruppo deve esistere in GRPSYGRP (rd-grpsygrp); ne carica la descrizione.x-controlla-tm-tipo: tipo azienda 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 |
| GRPSYIMP | primaria ao-sym-chia1 (ao-sym-cod + ao-sym-azi-tip + ao-sym-suddivisione) |
Abilitazioni all'importazione: per gruppo/tipo azienda/suddivisione, flag ao-sym-abi S/N. Tabella gestita presso il cliente. Dispone anche di una chiave secondaria .k02 (cod + suddivisione + tipo), non usata da GRP007 (accesso via chiave primaria) |
| GRPSYGRP | ao-syg-cod |
Gruppi di dati importabili (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¶
grp007.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¶
grp007.decla, grp007-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, grp007.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-grpsyimp-*, rd-grpsyimp, wr-grpsyimp, rwr-grpsyimp, del-grpsyimp, 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 GRPSYIMP.
Note tecniche¶
- Simmetria con GRP005: GRP007 e GRP005 condividono struttura, chiave (cod + tipo azienda + suddivisione) e logica di salvataggio; cambiano solo la tabella gestita (GRPSYIMP anziche' GRPSYGAB) e il verso della sincronizzazione (importazione anziche' esportazione).
- Assenza record = non abilitato: coerentemente con la logica di import (GRI0xx), la mancanza di una riga in GRPSYIMP per una combinazione gruppo/tipo/suddivisione equivale a importazione non abilitata.
- Chiave "precedente" (
tm-chia1-prec): distingue in salvataggio inserimenti, modifiche e cancellazioni confrontando la chiave corrente con quella caricata; la chiave attuale e' ricostruita concatenando codice+tipo+suddivisione. - Modalita' Selezione/Aggiornamento: in Selezione la griglia e' di sola lettura (evento di editing rifiutato con
event-action-fail-terminate); l'editing e' consentito solo in Aggiornamento con Ctrl-A/Ctrl-E. - Chiave secondaria della tabella: GRPSYIMP definisce una chiave
.k02(cod + suddivisione + tipo azienda) potenzialmente utile alle procedure di import; GRP007 non la utilizza, scandendo la tabella per chiave primaria. - Limite griglia: massimo 600 righe (
k-max-ele-tab).