Vai al contenuto

ASN141 - Esportazione rapportini

Sorgente: cbl/asn141.cbl (1.090 righe) | Tipo: Programma batch interattivo (parametri su maschera + elaborazione a scorrimento), estrazione documenti e copia file, log GESDEBUG

Menu: Assist 2.0 > Operativo > Utility > Esportazione rapportini


Scopo

Esporta i rapportini di intervento (documenti PDF "Stampa pdf intervento") su una cartella del filesystem, con struttura di sottocartelle configurabile. Per ciascun intervento chiuso/pre-chiuso recupera il PDF archiviato (documento immagine di tipo A2 su COGIMAGE), lo estrae dall'archivio documentale (COGU06) e lo copia sul client (COPIAF) nella cartella di destinazione, con nome file basato sull'id intervento.

Sono previste due modalita' di selezione (tm-ope):

  • "A" - singolo intervento: esporta il rapportino di un intervento specifico (tm-id-inter)
  • "B" - per periodo: esporta i rapportini di tutti gli interventi chiusi/pre-chiusi con data di chiusura compresa in un intervallo (tm-da-data/tm-a-data)

File acceduti

File Copybook Uso
feurtab cogfiles.cpy Tabella di sistema
ASNINTES acit-rec Testata intervento: lettura per id (rd-asnintes) e scansione per data (st-asnintes-notmin-chia7, chiave k07). Filtro su acit-stato in {"P","C"} (pre-chiuso / chiuso)
ASNCHTES acht-rec Testata chiamata: recupero cliente assistito e dati chiamata (rd-asnchtes)
ASNCHDET achd-rec Dettaglio chiamata: scansione (st-asnchdet-notmin) per individuare le matricole collegate
ASNMATRI amtr-rec Matricole: recupero del serial number (amtr-sn) per la struttura cartelle per matricola
COGGEANA ana-rec Anagrafica cliente assistito (nome, per la maschera)
COGIMAGE img-rec Archivio immagini/documenti: ricerca del documento A2 "Stampa pdf intervento" della chiamata (scansione chiave k02)

Copybook incluse

  • File/environment: feurtab.fd, asn141.select, asn141.fd, cogfiles.cpy
  • Working di programma: asn141.wrk
  • Working standard: wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • Interfacce sub: utilasn230.cpy (ricerca avanzata intervento), utils52.cpy (gestione date), utilu06.cpy (estrazione documento), l-copiaf.cpy / u-copiaf.cpy (copia file), utilncnf.cpy (configurazioni)
  • Log/debug: utilgesdebug.cpy, gesdebug.cpy
  • Linkage: wcont.cpy, u-copiaf.cpy, wcont1.cpy
  • Screen: asn141-01.scr
  • Chiavi secondarie: asnintes.k07, cogimage.k02
  • Fine procedure: grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, asn141.prc

Programmi chiamati

Programma Operazione Scopo
COGU06 Estrai-da-doc (tip. A2) Estrae il documento PDF dall'archivio documentale in EXT-TMP-DIR (modalita' silenziosa, con altri-dati)
COPIAF move / copy / delete Trasporta il file dal server al client nella cartella di destinazione. move (opzioni A/B/D), copy (opzione C, una copia per matricola), delete (pulizia del temporaneo in opzione C)
ASN230 ASN230-CALLED Ricerca avanzata intervento (F9 su tm-id-inter), restituisce asn230-id-inter-ou
GESLPRC CONSULTA-PROCEDURA Consultazione del log di elaborazione al termine
RNEWCONF Lettura/modifica configurazioni (x99-load-config)
C\$JUSTIFY "L" Giustifica a sinistra id intervento/chiamata per comporre nome file e path
S52 Gestione/edita date (via utils52.cpy)

Configurazioni RNEWCONF (x99-load-config)

Idx Gruppo Chiave Variabile Effetto
01 ass-chiam percorso-export-rapportini tm-cfg-path-export-rapportini Cartella base di esportazione. Se vuota, l'operazione e' bloccata e viene aperta la maschera di configurazione (F1)
02 ass-chiam percorso-export-rapportini-sub tm-cfg-path-export-rapportini-sub Struttura delle sottocartelle: "A", "B", "C", "D" (vedi sotto)

La configurazione e' modificabile in linea con F1 (ncnf-ope = "Modifica").

Struttura delle sottocartelle (tm-cfg-path-export-rapportini-sub)

Valore Struttura destinazione
"A" Nessuna sottocartella: path/<idintervento>.pdf
"B" Per id chiamata: path/<idchiamata>/<idintervento>.pdf
"D" Per codice cliente assistito: path/<clienteass>/<idintervento>.pdf
"C" Per serial number matricola: path/<S-N>/<idintervento>.pdf, una copia per ogni matricola della chiamata; se nessuna matricola, cartella noserial

Flusso di elaborazione (a10-acc)

Operazione "A" (singolo intervento)

Legge ASNINTES per tm-id-inter; se lo stato e' "P" o "C", recupera la chiamata (ASNCHTES) ed esegue b-estrazione-rapp.

Operazione "B" (per periodo)

Scansione di ASNINTES per data di chiusura (chiave k07) da tm-da-data a tm-a-data. Per ogni intervento con stato "P"/"C": incrementa il contatore letti, aggiorna la maschera (intervento, data, cliente, nome), recupera chiamata e anagrafica cliente, quindi esegue b-estrazione-rapp.

Estrazione del rapportino (b-estrazione-rapp)

  1. Scorre ASNCHDET per individuare la prima matricola collegata alla chiamata e recuperarne il serial number (ASNMATRI, w-serial)
  2. Compone l'oggetto atteso del documento ("Stampa pdf intervento" + id) e cerca in COGIMAGE il documento A2 della chiamata con oggetto corrispondente (ri-oggetto o ri-oggetto2, formato <id>.pdf), ricavando il progressivo immagine w-img-prog
  3. Se non trovato → segnala nel log e prosegue
  4. COGU06 Estrai-da-doc estrae il PDF in EXT-TMP-DIR; se assente → segnala nel log
  5. Compone il path di destinazione secondo l'opzione sottocartelle configurata
  6. COPIAF move (o, per opzione "C", copy su ogni matricola tramite opzione-c) trasporta il file dal server al client; errori di copia registrati nel log

Chiusura (carica-999)

Mostra "Fine elaborazione", scrive nel log il numero di interventi trovati, chiude GESDEBUG e propone la consultazione del log via GESLPRC; torna alla maschera parametri.

Validazioni di maschera

  • tm-ope: se il percorso di export non e' configurato, l'operazione e' bloccata e si apre la configurazione (F1)
  • tm-id-inter (op. "A"): l'intervento deve esistere ed essere in stato "P" (pre-chiuso) o "C" (chiuso)
  • tm-da-data/tm-a-data (op. "B"): obbligatorie e coerenti (inizio <= fine)
  • F9 su tm-id-inter apre la ricerca avanzata intervento (ASN230)

Note implementative

  • Il rapportino esportato e' il documento immagine A2 archiviato in COGIMAGE con oggetto "Stampa pdf intervento": non viene rigenerata la stampa, ma copiato il PDF gia' presente in archivio
  • L'estrazione avviene in due passi: COGU06 mette il file nella directory temporanea del server (EXT-TMP-DIR), poi COPIAF lo trasporta sul client nella cartella di destinazione. In modalita' "C" il temporaneo viene rimosso a fine ciclo (opzione-c-99)
  • L'opzione "D" (codice cliente assistito) presenta nel sorgente un test sul valore "B" anziche' "D" nel ramo dedicato: possibile anomalia da verificare (il ramo "D" non risulta selezionabile con l'attuale condizione)
  • Tutta l'elaborazione e' tracciata in un log GESDEBUG consultabile a fine esecuzione (tm-log-procedura)
  • Il programma ha source-computer. acu-cobol e usa il pattern legacy di scorrimento con GO TO di etichetta per il controllo di rottura chiave