Vai al contenuto

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)

  1. ctr-abil, z-99-init-program, open-files, rd-azi.
  2. Definizione tasti funzione: Invio, F3 (aggiorna, oppure selezione/modifica se richiamato), F8 aiuto, Shift-F4 griglia, Ctrl-A aggiungi, Ctrl-E elimina.
  3. Titolo "Sincronizzazione: Configurazione Importazioni", rd-msk-pop, preparazione griglia (GRIDADMN "Prepara"), costruzione controlli.
  4. 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-chia1 sia in tm-chia1 sia in tm-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-prec per la cancellazione fisica); verifica 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, poi per ciascuna confronta la chiave attuale con quella precedente:

  • tm-cod vuoto e tm-chia1-prec valorizzato -> cancella (b3-cancella, del-grpsyimp);
  • chiave attuale = precedente -> modifica (b2-modifica, rwr-grpsyimp);
  • tm-chia1-prec vuoto -> 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).