Vai al contenuto

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-protocollo ricarica 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") esegue inserisci -> aggiornamenti;
  • in variazione esegue aggiorna: se ok-variazione aggiorna direttamente i metadati in COGARIDX (rwr-cogaridx), altrimenti passa da aggiornamenti.

aggiornamenti sceglie l'azione:

  • se la sottoclasse e' collegata a un tipo attivita' (w-arg-att-tip valorizzato) -> creazione-attivita (CRMS08, con allegato, dossier e protocollo manuale);
  • altrimenti se e' indicato un dossier -> aggancio-dossier (CRMS10, operazione ALLEGA-DOC);
  • altrimenti -> inserimento-doc (COGU06 Inserisci-file, tipo documento ZZ, 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)

Riferimenti: clipot, arc-ott.


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 con rwr-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-tip valorizzato), aggancio a dossier (se tm-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.txt in ext-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 ... THRU e GO TO (stile legacy del programma), non conformi alle convenzioni per il nuovo codice; la documentazione ne riflette il flusso senza proporne il refactoring.