ARC011 - Gestione manuale documenti¶
Sorgente: cbl/arc011.cbl | Tipo: Programma interattivo GUI (inserimento/variazione/cancellazione) | Program-ID: ARC011
Menu:
- Sistema > Archiviazione documentale
Scopo¶
Consente la gestione manuale dei documenti dell'archiviazione ottica/documentale: inserimento di un nuovo documento archiviato, variazione dei metadati di un documento esistente e sua cancellazione. A differenza di ARC010 (sola consultazione), ARC011 opera sul singolo documento identificato dal protocollo e ne pilota l'effettiva archiviazione fisica tramite COGU06.
Il documento viene classificato tramite classe e sottoclasse documentale (COGARGDO) e collegato a un'anagrafica (cliente/fornitore, nominativo CRM o potenziale). In fase di inserimento e' possibile:
- allegare un file esistente scelto dall'utente (C$OPENSAVEBOX) e archiviarlo,
- generare un nuovo documento da un modello Word/XML definito sulla sottoclasse (WORDMDL), precompilato con i dati anagrafici,
- agganciare il documento a un dossier CRM o creare direttamente un'attivita' CRM con l'allegato, quando la sottoclasse e' collegata ad attivita'.
La ricerca di un documento gia' archiviato avviene per protocollo (con help) oppure tramite la ricerca avanzata (F9) delegata ad ARC010, che restituisce il protocollo selezionato.
Struttura del programma¶
Inizializzazione (apri)¶
z-99-init-program, ctr-abil, rd-azi, open-files, lettura configurazioni (x99-confi); attivazione dei tasti funzione; caricamento lingua; caricamento bitmap e pulsanti custom (Nuovo F1, Gestione F6, Visualizza immagine F6); preparazione controlli.
Reset (a4)¶
Inizializza tab-maschera, imposta tipo anagrafico di default N, data odierna, disabilita cancellazione e conferma; nasconde il pulsante di visualizzazione immagine.
Accept del protocollo (a-tm-protocollo)¶
E' il punto di ingresso della chiave. Un'etichetta (tm-label-1) distingue le due modalita', commutabili con F8:
- "Gestione documento esistente" (
fl-vario = "V"): il protocollo deve esistere in COGARIDX (rd-cogaridx-chia2); se trovato,x-controlla-tm-protocolloricarica tutti i campi della maschera dai dati del documento (descrizione, data, classe/sottoclasse con descrizioni da COGARGDO, anagrafica risolta da COGGEANA/CRMANAGR) e abilita F4 cancellazione e la visualizzazione immagine. - "Inserimento nuovo documento" (
fl-vario = "I"): il protocollo non deve gia' esistere in COGARIDX.
Con F9 richiama ARC010 come finestra di ricerca avanzata; con F3 passa a a-fine-chiave.
Accept dei dati (paragrafi a-tm-*)¶
Serie di accept con navigazione F2/mouse e aiuto contestuale: data (COGS52W + calendario), tipo anagrafico (COGS60), cliente/fornitore (COGS65), nominativo CRM (CRMS02), tipo dossier (F8 -> CRMK01, F9 -> CRMK11) e dossier (F9 -> CRMK11), classe (F8 -> ARC005), sottoclasse (F8 -> ARC006), note e documento/allegato. Ciascun campo ha il corrispondente paragrafo di validazione x-controlla-tm-*; su F3 si va a a-fine-dati. Su piu' campi il tasto F6, in modalita' "Gestione", richiama a1-acq-ott (visualizzazione immagine del documento).
Sul campo documento (a-tm-documento): F7 apre il file browser (C$OPENSAVEBOX) per selezionare l'allegato; F6 apre il file selezionato (OPENFILE); F1, se la sottoclasse ha un modello associato (ok-f1-nuovo), genera un nuovo documento dal modello (ins-nuovo-doc).
Conferma e aggiornamento (a-fine-dati)¶
x-controlla-dati valida l'intera maschera, chiede conferma, verifica le abilitazioni utente (w-abi-ins/w-abi-agg), quindi:
- in inserimento (
fl-vario = "I") esegueinserisci->aggiornamenti; - in variazione esegue
aggiorna: seok-variazioneaggiorna direttamente i metadati in COGARIDX (rwr-cogaridx), altrimenti passa daaggiornamenti.
aggiornamenti sceglie l'azione:
- se la sottoclasse e' collegata a un tipo attivita' (
w-arg-att-tipvalorizzato) ->creazione-attivita(CRMS08, con allegato, dossier e protocollo manuale); - altrimenti se e' indicato un dossier ->
aggancio-dossier(CRMS10, operazioneALLEGA-DOC); - altrimenti ->
inserimento-doc(COGU06Inserisci-file, tipo documentoZZ, con protocollo manuale, classe/sottoclasse e anagrafica).
Cancellazione (cancella)¶
Attivata da F4 in modalita' "Gestione" (con controlli in z-99-exception-form: blocco se il documento e' un allegato di attivita' CRM, tm-numero-interno che inizia per "AT"). Chiama COGU06 (Elimina-doc, tipo ZZ) con il protocollo manuale.
Generazione documento da modello (ins-nuovo-doc)¶
Quando la sottoclasse ha un modello (arg-modello/arg-mod-locazione), apre il modello XML con WORDMDL (Apri-XML), vi scrive i tag dei dati (data di sistema, dati anagrafici del cliente/fornitore o nominativo: codice, nome, indirizzo, CAP, localita', provincia) tramite scrivi-tag, poi esegue il modello (Esegui) salvandolo nel percorso configurato (path-apri-file) e valorizza tm-documento con il file generato.
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 |
| COGARIDX | .k02 (protocollo) |
Indice dei documenti archiviati (metadati letti/aggiornati: descrizione, data, classe, anagrafica, numero interno) |
| COGIMAGE | img-protocollo |
Immagini/documenti archiviati (lettura per visualizzazione, img-tip-doc, img-doc-coge) |
| COGARGDO | arg-livello+arg-classe(+arg-sottoclasse) |
Classi (livello 1) e sottoclassi (livello 2) documentali: descrizioni, tipo attivita' collegata (arg-att-tip), modello (arg-modello, arg-mod-locazione) |
| COGGEANA | ana-tipo+ana-cod |
Anagrafica clienti/fornitori (nome e dati per i modelli) |
| CRMANAGR | cra-cod / .k03 (tipo+codice ana) |
Anagrafica nominativi/potenziali CRM |
| CRMDOSTP | dtp-cod |
Tipologie dossier CRM (descrizione) |
| CRMDOSSR | dsa-key-tdo+dsa-num |
Dossier CRM (identificativo dsa-id) |
COPY incluse¶
Working-Storage¶
arc011.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, utilopenfile.cpy, wstato.cpy, cogazien.cpy, utils65.cpy, utilcrmk01.cpy, utilcrmk11.cpy, utilcrms02.cpy, utilcrms08.cpy, utilcrms10.cpy, utils52.cpy, utildlg.cpy, utilncnf.cpy, utilu10.cpy, utilu06.cpy, utilcogv93.cpy, utilarc005.cpy, utilarc006.cpy, opensave.def, utilwordmdl.cpy, utilarc010.cpy
Linkage¶
wcont.cpy, utilv91.cpy, wcont1.cpy
Procedure Division¶
arc011.decla, arc011-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogaridx.k02, crmanagr.k03, arc011.prc
Le chiavi secondarie cogaridx.k02 e crmanagr.k03 sono incluse manualmente a fine procedure division (Screens genera solo la chiave primaria).
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| ARC010 | Ricerca avanzata documenti (F9 sul protocollo): restituisce il protocollo selezionato |
| ARC005 | Ricerca/selezione classe documento (F8) |
| ARC006 | Ricerca/selezione sottoclasse documento (F8) |
| COGU06 | Gestore archiviazione ottica: inserimento (Inserisci-file), eliminazione (Elimina-doc), verifica e visualizzazione (Cerca-esistenza-doc/Visualizza-da-doc) del documento |
| CRMS08 | Creazione attivita' CRM con allegato (sottoclasse collegata ad attivita') |
| CRMS10 | Aggancio del documento a un dossier CRM (ALLEGA-DOC) |
| CRMS02 | Ricerca/gestione nominativo CRM |
| CRMK01 | Selezione tipologia dossier CRM (F8) |
| CRMK11 | Ricerca dossier CRM (F9) |
| COGS65W | Ricerca/help codice anagrafico cliente/fornitore |
| WORDMDL | Apertura, popolamento (tag XML) ed esecuzione del modello Word per generare un nuovo documento |
| OPENFILE | Apertura del file allegato selezionato |
| C$OPENSAVEBOX | File browser per la selezione dell'allegato (ACU runtime) |
| RNEWCONF | Lettura configurazioni |
I paragrafi standard delle sottoscreen (COGS52, COGS60, COGS68, COGS93, COGS95, COGU10) sono richiamati tramite le rispettive copybook.
Configurazioni RNEWCONF¶
Lette nel paragrafo x99-confi (pacchetto C):
| Gruppo | Chiave | Uso |
|---|---|---|
| clipot | pratica-tipo-numerazione |
Tipo di numerazione pratica (tm-cfg-pratica-tipo-num) |
| arc-ott | path-apri-file |
Percorso di salvataggio/apertura del documento generato da modello (tm-cfg-path-apri-file) |
Note tecniche¶
- Doppia modalita' guidata dall'etichetta:
tm-label-1("Gestione documento esistente" / "Inserimento nuovo documento"), commutabile con F8, determina se il protocollo deve esistere o meno e se, alla lettura del protocollo, la maschera viene precompilata dai dati del documento. - Aggiornamento diretto vs archiviazione: in variazione dei soli metadati (
ok-variazione) il record COGARIDX viene aggiornato direttamente conrwr-cogaridx; l'inserimento e le operazioni su file passano invece da COGU06. - Instradamento dell'inserimento: la destinazione del documento dipende dalla sottoclasse - creazione attivita' CRM (se
arg-att-tipvalorizzato), aggancio a dossier (setm-dossier > 0) oppure archiviazione diretta con COGU06; e' vincolato che, per agganciare un dossier, la sottoclasse sia collegata ad attivita'. - Generazione da modello: se la sottoclasse ha
arg-modello, il pulsante Nuovo (F1) produce il documento da modello via WORDMDL precompilando i dati anagrafici; il file temporaneo dei tag XML e'arc011.txtinext-tmp-dir. - Protezione cancellazione: un documento che risulta allegato a un'attivita' CRM (numero interno che inizia per "AT") non e' cancellabile da qui - va cancellata l'attivita'.
- 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.