ARC030 - Gestione sezioni (archiviazione documentale)¶
Sorgente: cbl/arc030.cbl | Tipo: Programma interattivo GUI a griglia editabile (aggiornamento/selezione) | Program-ID: ARC030
Menu:
- Sistema > Archiviazione documentale
Scopo¶
Gestisce la tabella delle "sezioni" dell'archiviazione ottica integrata (COGARSEC): ciascuna sezione rappresenta una locazione fisica di archivio (un percorso su disco/server) dove sono conservati i documenti archiviati, con i relativi flag di stato. Il programma presenta l'elenco delle sezioni in una griglia editabile e ne permette la manutenzione riga per riga.
Per ogni sezione sono gestiti: identificativo, location, percorso, e i flag online, modificabile, inseribile, diretto e "spostata", oltre alla dimensione. Le sezioni definite qui costituiscono le locazioni che altri programmi della famiglia di archiviazione (es. ARC005, che verifica lo stato online delle sezioni) usano per collocare e ritrovare i file dei documenti.
Il programma opera in due modalita': aggiornamento (A, standalone, manutenzione completa della tabella) e selezione (S, richiamato da altro programma, per restituire una sezione scelta).
Struttura del programma¶
Inizializzazione (apri)¶
ctr-abil, z-99-init-program, open-files, rd-azi; determinazione modalita' da w-dati-called (w-dc-called = "S" -> modalita' selezione, altrimenti aggiornamento); attivazione dei tasti funzione coerenti con la modalita' (F3 selezione/modifica in selezione, F3 aggiorna in aggiornamento; Shift-F4 personalizzazione griglia; Ctrl+A/Ctrl+E previsti ma attualmente commentati); caricamento lingua; bitmap e pulsante custom "Trova e Sostituisci" (F6); preparazione griglia (z-prepara-tm-grid).
Caricamento griglia (a4 -> a10-loop)¶
Svuota la griglia, poi scandisce COGARSEC dall'inizio (st-cogarsec-notmin + rdnxt-cogarsec) caricando ogni sezione in una riga della tabella di lavoro (tm-grid-dati-ele): id (in tm-id e tm-cod-prec, per il confronto in fase di salvataggio), location, percorso, flag online/mod/ins/diretto/spostata, dimensione. Limite k-max-ele-tab = 2000 righe. Al termine (a30) costruisce la griglia visiva (z-costruisci-tm-tab) e attiva i tasti funzione.
Gestione griglia (a-grid / a-accept-grid)¶
z-99-accept-tm-tab gestisce l'interazione sulla griglia editabile:
- ESC: uscita (con
test-wescsulle modifiche pendenti); - doppio click/Invio: in modalita' selezione restituisce la riga scelta (
fine); - Shift-F4: personalizzazione colonne (GRIDADMN);
- F3: in aggiornamento salva (
a1-aggiorna) e - se chiamato - torna in selezione; in selezione standalone commuta in aggiornamento; con controllo delle abilitazioniw-abi-ins/w-abi-agg; - F6 sulla colonna percorso (
z-usa-tf-tm-tab-ep): richiama ARC031 (trova e sostituisci sui percorsi); se ARC031 restituiscereload, la griglia viene ricaricata (go to a4).
Il paragrafo z-event-tm-tab-ep inibisce la modifica delle celle in modalita' selezione e blocca la modifica di righe esistenti se l'utente non e' abilitato (w-abi-agg = "N").
Salvataggio (a1-aggiorna -> b-aggiorna)¶
x-controlla-tm-tab-tutto valida tutte le righe; poi b-aggiorna confronta, riga per riga, tm-id con tm-cod-prec per decidere l'operazione:
tm-id = 0etm-cod-prec <> 0-> cancellazione (b3-cancella, attualmente disattivata/commentata);tm-id = tm-cod-prec-> modifica (b2-modifica);tm-cod-prec = 0-> inserimento (b1-inserisci, corpo attualmente commentato);tm-id <> tm-cod-prec-> cancella + inserisci.
b2-modifica rilegge la sezione in COGARSEC per id, la ricrea con conferma se non piu' esistente, quindi aggiorna location, percorso, flag e dimensione con rwr-cogarsec.
Validazioni (x-controlla-tm-*)¶
x-controlla-tm-id verifica la non-duplicazione dell'id in inserimento (lettura con rd-cogarsec-lk); x-controlla-tm-percorso rende il percorso obbligatorio per le righe valorizzate; le altre celle (location, flag) non hanno vincoli specifici.
Chiusura (fine / z-chiudi)¶
z-close-files, chiusura finestra, z-99-exit-program.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema / parametri azienda |
| COGARSEC | ars-id (accesso anche in lock, rd-cogarsec-lk) |
Sezioni dell'archiviazione ottica integrata: id, location, percorso, flag online/mod/ins/diretto/spostata, dimensione |
COPY incluse¶
Working-Storage¶
arc030.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, utilu20.cpy, utils52.cpy, utils65.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilgrp011.cpy
Linkage¶
wcont.cpy, utilarc031.cpy (interfaccia verso ARC031: u-arc031-caller, u-arc031-called, u-arc031-esito), wcont1.cpy
Procedure Division¶
arc030.decla, arc030-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, arc030.prc
Il programma usa un'unica tabella (COGARSEC) con la sola chiave primaria: non sono incluse chiavi secondarie aggiuntive.
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| ARC031 | Trova e sostituisci sui percorsi delle sezioni (F6 sulla colonna percorso); puo' richiedere il reload della griglia |
| GRIDADMN | Preparazione/personalizzazione colonne della griglia (Prepara, Shift-F4) |
I paragrafi standard delle sottoscreen (COGS52, COGS65, COGS68, COGS95, COGU10, COGU20) sono richiamati tramite le rispettive copybook.
Configurazioni RNEWCONF¶
Il programma non contiene un paragrafo di lettura delle configurazioni (x99-confi/x-configurazione): non legge chiavi RNEWCONF applicative.
Note tecniche¶
- Pattern griglia con chiave precedente: ogni riga porta
tm-id(valore corrente) etm-cod-prec(valore all'ultimo caricamento); il confronto tra i due inb-aggiornadetermina se la riga va inserita, modificata, cancellata o rimappata. E' lo stesso schema usato da altri gestori tabella a griglia (cfr. ARC005). - Inserimento e cancellazione parzialmente disattivati: i corpi di
b1-inseriscieb3-cancella, e i tasti Ctrl+A/Ctrl+E, sono presenti ma commentati; nell'uso corrente il programma gestisce principalmente la modifica delle sezioni gia' presenti (percorso, flag, dimensione) viab2-modifica. - Dual-mode: la modalita' (selezione/aggiornamento,
a-modalita"S"/"A") governa i tasti funzione attivi, l'abilitazione delle celle e il comportamento di F3; la commutazione da selezione ad aggiornamento avviene con F3 in standalone. - Integrazione con ARC031: la funzione "Trova e Sostituisci" sui percorsi e' delegata ad ARC031, utile per aggiornare in blocco le locazioni fisiche in caso di spostamento dell'archivio; l'esito
reloadforza il ricaricamento della tabella. - Il codice usa ancora
PERFORM ... THRUeGO TO(stile legacy del programma), non conformi alle convenzioni per il nuovo codice; la documentazione ne riflette il flusso senza proporne il refactoring.