CFG02 - Gestione Parametri di Configurazione¶
Sorgente: cbl/cfg02.cbl | Tipo: Programma interattivo GUI con griglia | Autore: Gianluca Tonti
Menu: Sistema > Gestione configurazioni > Selezione e gestione parametri di configurazione
Scopo¶
Gestisce i parametri di configurazione dei programmi dell'applicativo. Opera in due modalita':
- Amministrazione (default): CRUD completo sui parametri di configurazione di un programma. L'operatore seleziona un pacchetto e un programma, visualizza la griglia dei parametri esistenti, e puo' aggiungere, modificare o eliminare parametri.
- Selezione (chiamata esterna con
cfg02-called = k-program-ide operazione"S"): l'operatore sceglie un parametro dalla griglia e il programma restituisce la chiave selezionata al chiamante.
Come viene chiamato¶
Standalone (da menu)¶
Avviato direttamente, opera in modalita' amministrazione (a-modalita = "A"). L'operatore sceglie pacchetto e programma, poi gestisce i parametri.
Chiamata da altri programmi (linkage)¶
PROCEDURE DIVISION USING stringhe util-cfg02.
Copybook linkage: utilcfg02.cpy
Parametri di input:
| Campo | Tipo | Descrizione |
|---|---|---|
cfg02-called |
x(6) | Deve valere k-program-id ("CFG02") |
cfg02-caller |
x(10) | Programma chiamante |
cfg02-operazione |
x(1) | "S" = selezione, "A" = amministrazione |
cfg02-in-pack |
x(1) | Pacchetto pre-impostato (se valorizzato, il campo pacchetto viene disabilitato) |
cfg02-in-prog |
x(10) | Programma pre-impostato (se valorizzato, il campo programma viene disabilitato) |
Parametri di output (modalita' selezione):
| Campo | Tipo | Descrizione |
|---|---|---|
cfg02-out-pack |
x(1) | Pacchetto del parametro selezionato |
cfg02-out-prog |
x(10) | Programma del parametro selezionato |
cfg02-out-param-key |
x(60) | Chiave del parametro selezionato |
Struttura della maschera¶
La form e' composta da:
- Testata — Selezione pacchetto (
tm-pack) e programma (tm-prog) con descrizione - Griglia (
e-tm-tab) — Elenco parametri del programma selezionato (max 800 righe) - Frame dettaglio (
e-frame-dettaglio) — Campi di dettaglio del parametro selezionato/in modifica, con il campo "Valore di Default" che cambia dinamicamente in base al formato
Colonne della griglia¶
| Colonna | Campo | Tipo | Descrizione |
|---|---|---|---|
| Chiave parametro | grd-param-key |
x(60) | Identificativo univoco del parametro |
| Ordine | grd-param-ord |
9(4) | Ordine di visualizzazione |
| Descrizione | grd-param-des |
x(60) | Descrizione leggibile |
| Dip. operatore | grd-uses-ope |
x(1) | S/N - il valore dipende dall'operatore |
| Dip. postazione | grd-uses-post |
x(1) | S/N - il valore dipende dalla postazione |
| Valida | grd-causes-validation |
x(1) | S/N - il parametro causa validazione |
| Obbligatorio | grd-required |
x(1) | S/N - il parametro e' obbligatorio |
| Formato | grd-format |
x(20) | Formato del valore (vedi sotto) |
| Num. indici | grd-fl-indice |
9(4) | Numero di indici del parametro |
| Tipo suddivisione | grd-tip-sud |
x(1) | Tipo di suddivisione (N = nessuna) |
| Codice password | grd-cod-pwd |
9(2) | Codice abilitazione password |
| Valore default | grd-default |
x(80) | Valore di default |
Campi di dettaglio del parametro¶
Quando si entra in modifica o inserimento di una riga, il frame dettaglio presenta i seguenti campi in sequenza di navigazione:
| # | Campo | Variabile | Tipo | Descrizione |
|---|---|---|---|---|
| 1 | Chiave parametro | tm-param-key(i) |
x(60) | Chiave univoca (editabile solo in inserimento) |
| 2 | Ordine | tm-param-ord(i) |
9(4) | Ordine visualizzazione (deve essere univoco) |
| 3 | Descrizione | tm-param-des(i) |
x(60) | Descrizione del parametro (obbligatoria) |
| 4 | Note | tm-note(i) |
x(1000) | Informazioni estese |
| 5 | Gruppi | tm-gruppi(i) |
x(400) | Gruppi di ricerca (almeno uno obbligatorio, separati da spazio) |
| 6 | Dipende da operatore | tm-uses-ope(i) |
x(1) | S/N |
| 7 | Dipende da postazione | tm-uses-post(i) |
x(1) | S/N |
| 8 | Campo da validare | tm-causes-validation(i) |
x(1) | S/N - se "S" e formato stringa/numerico, abilita gestione valori ammessi (CFG04) |
| 9 | Obbligatorio | tm-required(i) |
x(1) | S/N |
| 10 | Formato | tm-format(i) |
x(20) | Tipo/formato del valore (F8 chiama CFG05) |
| 11 | Numero indici | tm-fl-indice(i) |
9(4) | Quanti indici ha il parametro (default 1) |
| 12 | Tipo suddivisione | tm-tip-sud(i) |
x(1) | Tipo suddivisione |
| 13 | Codice password | tm-cod-pwd(i) |
9(5) | Codice abilitazione |
| 14 | Valore di default | (dinamico) | (varia) | Cambia in base al formato — vedi sezione successiva |
Formati supportati e campo default dinamico¶
Il campo "Valore di Default" cambia aspetto e comportamento in base al formato del parametro. La routine assegna-default nasconde tutti i controlli di default e rende visibile solo quello appropriato:
| Formato | Controllo visibile | Tipo campo | Aiuto F8 / F5 |
|---|---|---|---|
x(nn) / X(nn) |
e-tm-default (stringa) |
Testo libero, max-text = nn | — |
9(nn) / 9(nn)v9(mm) |
e-tm-numero |
Numerico intero/decimale | — |
s9(nn) / S9(nn) |
e-tm-numero |
Numerico con segno | — |
k-format-path |
e-tm-path |
Percorso file | F5 = dialogo apri file (C$OPENSAVEBOX) |
k-format-magazzino |
e-tm-mag + e-tm-mag-des |
Codice magazzino | F8 = COGW36 (lista magazzini) |
k-format-esa |
e-tm-esa |
Esadecimale x(80) | — |
k-format-tipo-att |
e-tm-tipo-att + descrizione |
Tipo attivita' CRM | F8 = CRM017 |
k-format-classe |
e-tm-classe + descrizione |
Classe merci | F8 = COGG37 (tipo "C") |
k-format-causale |
e-tm-cau + descrizione |
Causale (tipo 15 COGTABEL) | F8 = WCA001/COGW01 |
k-format-info-crm |
e-tm-info + descrizione |
Info CRM | F8 = CRM013 |
k-format-merce |
e-tm-merce-* (7 sottocampi) |
Codice merce composito | Gestito via COGS68W |
k-format-contropartita |
e-tm-controp |
Contropartita vendita | F8 = COGV04 |
k-format-pianoconti |
e-tm-pianoco-mas/con/sot + descrizione |
Piano dei conti | Gestito via COGS67W |
k-format-to |
e-tm-to + descrizione |
Tipo operazione (tipo 65) | F8 = COGE65 |
k-format-art-ese |
e-tm-art-ese + descrizione |
Articolo esenzione (tipo 69) | F8 = COGE69 |
k-format-cliente |
e-tm-ana-cod + nome |
Codice cliente | Gestito via COGS65W (tipo "C") |
k-format-fornitore |
e-tm-ana-cod + nome |
Codice fornitore | Gestito via COGS65W (tipo "F") |
k-format-numeric-data |
e-tm-data |
Data | Gestito via COGS52W (con calendario F8) |
k-format-color |
e-tm-numero |
Colore (numerico 8 cifre) | — |
k-format-psw |
e-tm-default |
Password | — |
Validazione formato¶
La routine ctrl-format verifica la correttezza sintattica del formato inserito:
- Stringhe
x(nn): nn massimo 80 - Numeri interi
9(nn): nn massimo 12 - Numeri decimali
9(nn)v9(mm): nn max 12, mm max 6 - Numeri con segno
s9(nn): stesse regole dei numeri - Formati speciali: devono corrispondere esattamente a una delle costanti k-format-*
Operazioni¶
Inserimento (Ctrl-A)¶
- Aggiunge una nuova riga alla fine della griglia (
a-operazione = "I") - Il campo chiave e' editabile
- Verifica che la chiave non esista gia' su CNFPAR
- Alla conferma (F3) scrive: CNFPAR (definizione parametro), CNFDEF (valore default), CNFDES (note/descrizione estesa), CNFGRC (gruppi collegati)
- Se il parametro ha
causes-validation = "S"e formato stringa/numerico, chiama automaticamente CFG04 in modalita' amministrazione per definire i valori ammessi
Modifica (Invio/doppio click su riga)¶
- Blocca il record su CNFPAR (lock)
- Il campo chiave non e' editabile
- Alla conferma riscrive (rewrite) CNFPAR, CNFDEF, CNFDES; rigenera i gruppi CNFGRC (cancella e reinserisce)
Cancellazione (Ctrl-E)¶
- Verifica abilitazione dell'operatore
- Chiede conferma
- Cancella: CNFPAR, tutti i CNFDEF collegati, tutti i CNFDES collegati, tutti i CNFVAL collegati (valori effettivi per operatore/postazione)
Selezione (Invio in modalita' selezione)¶
Restituisce cfg02-out-pack, cfg02-out-prog, cfg02-out-param-key e chiude il programma.
Tasti funzione¶
| Tasto | Contesto | Azione |
|---|---|---|
| ESC | Testata | Se chiamato: chiude. Altrimenti: torna a selezione pacchetto |
| ESC | Griglia | Se chiamato: chiude. Altrimenti: torna a selezione pacchetto/programma |
| ESC | Dettaglio | Chiede conferma annullamento modifiche e torna alla griglia |
| F1 | Testata/Griglia (solo admin) | Modifica configurazione di CFG02 stesso (RNEWCONF su CONFIG.CNF) |
| F2 | Ovunque | Torna al campo precedente (navigazione indietro) |
| F3 | Testata | Conferma selezione pacchetto/programma e carica la griglia |
| F3 | Dettaglio | Conferma inserimento/modifica del parametro |
| F5 | Campo path | Apre dialogo selezione file (C$OPENSAVEBOX) |
| F8 | Campo programma | Chiama CFG01 (lista programmi configurati) |
| F8 | Griglia (se validazione attiva) | Chiama CFG04 (dettaglio valori ammessi del parametro) |
| F8 | Campo formato | Chiama CFG05 (selezione formato) |
| F8 | Campo gruppi | Chiama CFG10 (selezione gruppo) |
| F8 | Campi default tipizzati | Chiama il programma di aiuto specifico del formato (vedi tabella formati) |
| Shift-F4 | Griglia | Chiama GRIDADMN (amministrazione colonne griglia) |
| Ctrl-A | Griglia (solo admin) | Inserisce un nuovo parametro |
| Ctrl-E | Griglia (solo admin) | Elimina il parametro selezionato |
| Invio/Doppio click | Griglia admin | Modifica il parametro selezionato |
| Invio/Doppio click | Griglia selezione | Seleziona il parametro e restituisce al chiamante |
File e tabelle acceduti¶
| File logico | Copybook/FD | Accesso | Descrizione |
|---|---|---|---|
| FEURTAB | feurtab.fd / cogfiles.cpy |
Read | Tabella generale del sistema |
| CNFPAR | cfg02.select / cfg02.fd |
Read/Write/Rewrite/Delete/Start | Parametri di configurazione (definizioni) |
| CNFDEF | (incluso in cfg02) | Read/Write/Rewrite/Start | Valori di default dei parametri |
| CNFDES | (incluso in cfg02) | Read/Write/Rewrite/Delete/Start | Descrizioni estese (note) dei parametri |
| CNFGRC | (incluso in cfg02) | Read/Write/Delete/Start | Gruppi collegati ai parametri |
| CNFGRU | (incluso in cfg02) | Read | Anagrafica gruppi di configurazione |
| CNFTES | (incluso in cfg02) | Read | Testata configurazione programma (per validare pack+prog) |
| CNFVAL | (incluso in cfg02) | Read/Delete/Start | Valori effettivi dei parametri (per operatore/postazione) |
| COGMAGAZ | (via copybook) | Read | Magazzini (validazione default magazzino) |
| COGTABEL | (via copybook) | Read | Tabelle generiche (causali tipo 15, contropartite tipo 16, tipi operazione tipo 65, articoli esenzione tipo 69) |
| COGMERCI | (via copybook) | Read | Merci (validazione default merce) |
| COGGEANA | (via copybook) | Read | Anagrafiche generiche (clienti/fornitori) |
| COGPNCON | (via copybook) | Read | Piano dei conti (validazione default piano conti) |
| COGCLASM | (via copybook) | Read | Classi merci (validazione default classe) |
| CRMTPATT | (via copybook) | Read | Tipi attivita' CRM (validazione default tipo attivita') |
| CRMINFOR | (via copybook) | Read | Info CRM (validazione default info CRM) |
Programmi chiamati¶
| Programma | Contesto | Descrizione |
|---|---|---|
| CFG01 | F8 su campo programma | Lista programmi configurati — restituisce il codice programma |
| CFG04 | F8 su griglia (se validazione attiva); automaticamente dopo salvataggio parametro con validazione | Dettaglio valori ammessi di un parametro |
| CFG05 | F8 su campo formato | Selezione formato — restituisce la stringa formato |
| CFG10 | F8 su campo gruppi | Selezione gruppo di configurazione |
| GRIDADMN | Shift-F4; operazioni griglia (Add-Record, Modify-Record, Svuota-Tutto, Prepara) | Amministrazione griglia generica |
| RNEWCONF | F1 e inizializzazione | Lettura/modifica configurazione di CFG02 stesso |
| CRM017 | F8 su default tipo attivita' | Selezione tipo attivita' CRM |
| CRM013 | F8 su default info CRM | Selezione info CRM |
| COGG37 | F8 su default classe | Selezione classe merci (funzione "win-aiuto", tipo "C") |
| COGE65 | F8 su default tipo operazione | Selezione tipo operazione contabile |
| COGE69 | F8 su default articolo esenzione | Selezione articolo esenzione IVA |
| COGV04 | F8 su default contropartita | Selezione contropartita vendita |
| COGS52W | Campo data | Subroutine gestione data con calendario |
| COGS65W | Campo anagrafica (cliente/fornitore) | Subroutine ricerca anagrafica |
| COGS67W | Campo piano dei conti | Subroutine ricerca piano dei conti |
| COGS68W | Campo merce | Subroutine ricerca merce |
| COGW01 / WCA001 | F8 su default causale | Selezione causale (WCA001 per consorzi) |
| COGW36 | F8 su default magazzino | Selezione magazzino |
Copybook incluse¶
Working-Storage¶
| Copybook | Descrizione |
|---|---|
cfg02.wrk |
Variabili di working specifiche del programma (campi screen, costanti) |
wgrave.cpy |
Gestione errori gravi |
wnscr.cpy |
Numero screen |
wopenf.cpy |
Gestione apertura file |
wstato.cpy |
Stato programma |
cogazien.cpy |
Dati azienda corrente |
wgrid.cpy |
Supporto griglia |
utilgdad.cpy |
Utility GRIDADMN |
opensave.def |
Definizioni dialogo apri/salva file |
w-open-cnf.cpy |
Apertura file configurazione |
utilcfg01.cpy |
Linkage CFG01 |
utilcfg04.cpy |
Linkage CFG04 |
utilcfg05.cpy |
Linkage CFG05 |
utilcfg10.cpy |
Linkage CFG10 |
utilncnf.cpy |
Linkage RNEWCONF |
utile65.cpy |
Linkage COGE65 |
utile09.cpy |
Linkage COGE69 |
utils52.cpy |
Linkage COGS52W |
utils65.cpy |
Linkage COGS65W |
utils67.cpy |
Linkage COGS67W |
utils68.cpy |
Linkage COGS68W |
utilv04.cpy |
Linkage COGV04 |
utilw01.cpy |
Linkage COGW01 |
utilw36.cpy |
Linkage COGW36 |
linkg37.cpy |
Linkage COGG37 |
utilcrm013.cpy |
Linkage CRM013 |
utilcrm017.cpy |
Linkage CRM017 |
Linkage¶
| Copybook | Descrizione |
|---|---|
wcont.cpy |
Variabili stringhe (contesto standard) |
wcont1.cpy |
Variabili stringhe aggiuntive |
utilcfg02.cpy |
Record di interscambio util-cfg02 |
utilg37.cpy |
Record interscambio COGG37 |
Screen / Procedure¶
| Copybook | Descrizione |
|---|---|
cfg02.select |
SELECT dei file indicizzati |
cfg02.fd |
FD dei file indicizzati |
cfg02-01.scr |
Definizione screen (maschera GUI) |
cfg02.decla |
Declaratives |
cfg02.prc |
Procedure di I/O su file (rd-cnfpar, wr-cnfpar, ecc.) |
cnfpar.k02 |
Chiave alternativa CNFPAR (ordinamento per param-ord) |
Procedure standard¶
| Copybook | Descrizione |
|---|---|
grave.cpy |
Gestione errore grave |
mmmask.cpy |
Init/exit programma standalone |
opengen.cpy |
Apertura file generici |
stato.cpy |
Gestione stato |
stato1.cpy |
Gestione stato aggiuntiva |
winmsg.cpy |
Messaggi a video |
sendw01.cpy |
Invio richiesta a COGW01 |
sendw36.cpy |
Invio richiesta a COGW36 |
utilgrid.cpy |
Utility per griglia |
Configurazione RNEWCONF del programma¶
Il programma legge la propria configurazione tramite RNEWCONF all'avvio e quando si preme F1:
| Percorso | Chiave | Variabile | Descrizione |
|---|---|---|---|
CONFIG.CNF |
ORDINAMENTO |
tm-cfg-ord |
"A" = ordina per chiave alfabetica (st-cnfpar-notmin), altro = ordina per param-ord (st-cnfpar-notmin-chia2) |
Il pacchetto di configurazione usato e' "C" (ncnf-pac-gen = "C").
Pacchetti supportati¶
Il campo pacchetto (tm-pack) accetta i seguenti valori:
| Costante | Descrizione |
|---|---|
k-pack-coge |
Gestionale COGE (default) |
k-pack-tess |
Tesseramenti |
k-pack-form |
Formule |
k-pack-pers |
Personalizzazioni |
k-pack-grandine |
Grandine |
k-pack-cap |
CAP (Consorzi) |
Note implementative¶
- La griglia supporta fino a 800 elementi (
k-max-ele-tab = 800). - Ogni parametro puo' avere fino a 100 gruppi collegati (
k-max-gruppi = 100), con stringa gruppi fino a 400 caratteri. - Le note di un parametro possono essere lunghe fino a 1000 caratteri (
k-size-note = 1000). - Il valore di default e' sempre memorizzato in un campo x(80) (
tm-default), con un redefines numerico9(12)v9(06)(tm-default-n) per i formati numerici. - Quando si inserisce un parametro con
causes-validation = "S"e formato stringa o numerico, dopo il salvataggio viene automaticamente aperto CFG04 in modalita' amministrazione per definire i valori ammessi. - L'ordinamento della griglia dipende dalla configurazione RNEWCONF
ORDINAMENTO: per chiave alfabetica ("A") o per ordine numerico. - La finestra e' ridimensionabile: l'evento
ntf-resizedricalcola la griglia (x-ricalcola-griglia).