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)¶
ctr-abil,z-99-init-program,open-files,rd-azi.- Rilevamento chiamata come help: se
grp006-called = k-program-idegrp006-callervalorizzato, impostaw-dc-called = "S"(modalita' selezione). - Definizione tasti funzione: Invio, F3, F8 aiuto, Shift-F4 griglia, Ctrl-A, Ctrl-E.
- 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 intm-cod-prec);ao-syc-des-> Descrizione;ao-syc-grp-> Gruppo; ne legge la descrizione da GRPSYGRP (rd-grpsygrp,ao-syg-desintm-gruppo-d);ao-syc-prg-> Programma da innescare;ao-syc-tabella-log-> Tabella di log (colonna aggiunta 14/12/2023, marcata141223nel 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-codvuoto etm-cod-precvalorizzato -> cancella (b3-cancella,del-grpsycla);tm-cod=tm-cod-prec-> modifica (b2-modifica,rwr-grpsycla);tm-cod-precvuoto -> 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) egrp006-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); mappaao-syc-tabella-loge 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).