Vai al contenuto

ASN060 - Stampa/ristampa Intervento (rapportino) - lanciatore

Sorgente: cbl/asn060.cbl (1.326 righe) | Tipo: Programma interattivo lanciatore di stampa (standalone e called)

Menu: Assist 2.0 > Operativo > Gestione Interventi a Richiesta > Stampe > Intervento


Scopo

ASN060 e' il lanciatore della stampa del rapportino di intervento di assistenza. Non produce direttamente il documento: chiede all'operatore l'intervento (o l'intervallo di chiamate) e il metodo di ristampa, poi instrada la richiesta verso il motore di stampa appropriato:

  • Metodo "Servizio Web" (Jasper): accoda la richiesta al Service Areagate tramite SWA050; il Service esegue poi la reportistica Jasper, il cui XML dati e' costruito dal worker JASN060 (vedi collegamento con JASN060).
  • Metodo "Gestionale" (Wordmdl): chiama direttamente il modulo di stampa storico ASN060W (eventualmente in variante personalizzata ASN060<az-personal>).

Oltre alla stampa del rapportino principale, ASN060 innesca la stampa di eventuali moduli aggiuntivi collegati (moduli per difetto, moduli associati al cliente, moduli ufficio metrico per la personalizzazione Torricelli az-personal = "TI").

Il programma opera su interventi (ASNINTES), ma il metodo di stampa via Service e' abilitato solo per interventi in stato "Pre-chiuso" (acit-stato = "P") o "Chiuso" (acit-stato = "C") (PBUG-285).


Interfaccia (linkage)

Procedura chiamata con using stringhe util-asn060.

util-asn060 (utilasn060.cpy):

Campo Tipo Uso
asn060-caller / asn060-called x(08) Identificativi chiamante/chiamato
asn060-id-inter 9(12) Id intervento da stampare (input in modalita' called)
asn060-tecnico-master 9(10) Tecnico master (non usato nel flusso principale)

Modalita' called: se asn060-called = "ASN060" e asn060-caller valorizzato, imposta w-dc-called = "S" e usa asn060-id-inter come intervento da stampare, saltando l'interazione. In questo caso, se modo-ristampa-intervento = "S" il metodo e' "S" e si va direttamente in a-avanti.

File acceduti

Il programma dichiara solo file in lettura (nessuna scrittura diretta di documenti: la produzione e' delegata ai moduli di stampa).

Input/lettura

File Copybook Uso
ASNINTES acit-rec Testata intervento (chiave k02 acit-id-chiamata per scorrere gli interventi di un intervallo di chiamate)
ASNCHTES acht-rec Testata chiamata: cliente fatturazione/assistito, per selezione moduli
ASNCHDET achd-rec Righe di dettaglio chiamata: difetto segnalato (achd-dif-segnalato)
ASNTPDIF atpd-rec Tipo difetto: nome documento/modulo da stampare (atpd-nome-doc), flag stampa moduli metrici (atpd-stampa-doc)
ASNDOCST dost-rec Moduli di stampa associati al cliente (chiave k02 dost-cliente); dost-nome-doc

Chiavi secondarie

  • asndocst.k02 (cliente)
  • asnintes.k02 (id chiamata)

Programmi chiamati

Programma Operazione Scopo
ASN230 ASN230-CALLED F9 su Id intervento: ricerca avanzata intervento (ritorna asn230-id-inter-ou)
ASN210 ASN210-CALLED F9 su "Da/A chiamata": ricerca chiamata (ritorna asn210-id)
SWA004 PCASE-1258: aggiorna i dati dell'intervento su frontiera prima della ristampa Jasper
SWA050 Accoda la richiesta di stampa/ristampa al Service Areagate (metodo Jasper); output su mail operatore
ASN060W Modulo di stampa gestionale standard (Wordmdl) del rapportino; puo' essere invocato in variante ASN060<az-personal>
ASN066 Stampa di un modulo Word aggiuntivo (per difetto, per cliente, moduli metrici) dato asn066-nome-doc
ASN061 / ASN062 Stampa chiamata su moduli ad aghi (personalizzazione Torricelli TI); ASN062 per cliente cliente-padre-modelli-totalerg, ASN061 altrimenti
ASN067 Stampa moduli ufficio metrico su aghi (personalizzazione Torricelli)
ASN054 (prog ASN057) Stampa etichetta chiamata con barcode (personalizzazione Torricelli)
CRMS06 Leggi Lettura informazioni CRM del cliente padre (info 250/251/300) per decidere se stampare moduli metrici "Dichiarazione"/"Richiesta Accertamento"
RNEWCONF Lettura/modifica configurazioni

Configurazioni RNEWCONF (x99-load-config)

Idx Gruppo Chiave Variabile Effetto
01 ASSIST nr-copie-stampa-chiamata tm-cfg-nr-copie Numero copie della stampa gestionale (default 1)
02 ASSIST stampa-chiamate-su-moduli-aghi tm-cfg-stampa-aghi "S" attiva il percorso moduli ad aghi (personalizzazione TI)
03 ASSIST cliente-padre-modelli-totalerg tm-cfg-cli-totalerg Cliente per cui usare il modulo aghi personalizzato (ASN062)
04 areaapp swa005-servizio-stampa-intervento tm-cfg-servizio-stampa-int Se "G" forza il metodo gestionale (override su idx 05)
05 areaapp modo-ristampa-intervento tm-cfg-modo-ristampa-int "I"/"S"/altro: pilota il metodo di ristampa proposto (S = Servizio Web/Jasper, G = gestionale)

Configurazioni lette per cliente (chiave C/<cli-fat>/ASSIST/...) nei paragrafi z-cnf-modello-ripar-stru e z-cnf-modello-richiesta:

  • doc-stampa-modulo-dichiarazionetm-cfg-modello-ripar-stru (modulo "Dichiarazione"/riparazione strumento)
  • doc-stampa-modulo-richiestatm-cfg-modello-richiesta (modulo "Richiesta Accertamento")

Logica di elaborazione

Ingresso (apri / a4)

  1. Carica azienda e configurazioni.
  2. Se called con asn060-id-inter, imposta l'intervento e determina il metodo di ristampa da tm-cfg-modo-ristampa-int.
  3. Determina tm-metodo-ristampa ("S" Servizio Web, "G" Gestionale) da configurazione; con modo-ristampa-int = "S" puo' saltare direttamente a a-avanti.

Accept dei parametri (a-tm-id-intervento, a-tm-metodo-ristampa, a-tm-da-chiam, a-tm-a-chiam)

  • tm-id-intervento: singolo intervento (verificato in ASNINTES); F9 → ASN230.
  • tm-metodo-ristampa: combo Servizio Web / Gestionale (visibile solo se non forzato da config).
  • tm-da-chiam / tm-a-chiam: intervallo di chiamate per ristampa massiva degli interventi aperti; F9 → ASN210.
  • a-fine-chiave: valida la chiave; richiede almeno un parametro (m box "Selezionare almeno 1 parametro di stampa").

Instradamento stampa (a-avanti / a-avanti-loop)

Stampa singolo intervento (tm-id-intervento != 0):

  • Legge ASNINTES; PBUG-285: se metodo "S" (Jasper), consente la stampa solo se acit-stato = "P" o "C", altrimenti box di avviso e uscita.

Stampa da intervallo chiamate (loop-interventi-aperti):

  • Scorre ASNINTES per chiamata (st-asnintes-notmin-chia2) da tm-da-chiam a tm-a-chiam.
  • Salta interventi chiusi/annullati (acit-stato = "C" o "Z"); con metodo "S" filtra i soli "P"/"C".

Personalizzazione Torricelli (az-personal = "TI" e tm-cfg-stampa-aghi = "S"): percorso dedicato con ASN061/ASN062 (chiamata su aghi), ASN067 (moduli metrici), ASN054/ASN057 (etichetta barcode).

Percorso standard (a-avanti-loop):

  • Se tm-metodo-ristampa = "S"call-stampa-service.
  • Altrimenti → call-stampa-gestionale.

call-stampa-service (metodo Jasper)

  1. SWA004 (PCASE-1258): aggiorna i dati dell'intervento sulle tabelle di frontiera Areagate prima della ristampa.
  2. SWA050 con swa050-id-inter = tm-id-intervento-stampa, swa050-output-mode = "E", swa050-attesa-esito = "N": inoltra la richiesta di ristampa al Service Areagate.
  3. Esito: se swa050-esito = "S" avvisa che la richiesta e' stata inoltrata al Service e il PDF verra' inviato via mail all'operatore; altrimenti mostra swa050-msg.

Collegamento con JASN060: il rapportino PDF Jasper e' materialmente prodotto dal Service Areagate, che per generare l'XML dati del rapportino invoca il worker JASN060 (documentato in jasn060.md) passandogli l'id intervento. ASN060 non chiama direttamente JASN060: lo raggiunge in modo asincrono tramite l'accodamento SWA050 → Service Areagate → iswsprint/JASN060. La corrispondenza tra i due e' quindi l'id intervento (tm-id-intervento-stampaswa050-id-interjasn060-id-inter).

call-stampa-gestionale (metodo Wordmdl)

  • Cicla tm-cfg-nr-copie volte chiamando ASN060W (con asn060w-prima-stampa = "SI" solo alla prima copia).
  • Se az-personal valorizzato, prova prima la variante ASN060<az-personal> (con on overflow fallback su call-standardASN060W).
  • ASN060W riceve i parametri via util-asn060w (redefine di user-area): asn060w-id-inter, asn060w-called, asn060w-prima-stampa, ecc.

Moduli aggiuntivi (dopo la stampa principale)

  1. Moduli per difetto (ASN066): per ogni riga chiamata con achd-dif-segnalato, se il tipo difetto (ASNTPDIF) ha atpd-nome-doc valorizzato, stampa il modulo.
  2. Moduli per cliente (ASN066): scorre ASNDOCST per il cliente (fatturazione o assistito) e stampa i moduli dost-nome-doc.
  3. Moduli ufficio metrico (personalizzazione TI, paragrafo stampa-moduli-uff-metrico): in base a informazioni CRM del cliente padre (CRMS06 info 250/251/300) e al codice difetto, innesca via ASN066 i moduli "Dichiarazione" (doc-stampa-modulo-dichiarazione) e "Richiesta Accertamento" (doc-stampa-modulo-richiesta).

Messaggi principali

Testo Contesto
"Selezionare almeno 1 parametro di stampa" Nessun intervento/chiamata indicato
"La stampa tramite 'Servizio Web' e' abilitata solo per Interventi 'Pre-chiusi' o 'Chiusi' ..." PBUG-285: metodo Jasper su intervento non P/C
"La richiesta di ristampa e' stata inoltrata al Service e verra' inviata alla mail dell'operatore" Esito positivo SWA050
"Esito ristampa: ..." Esito negativo SWA050 (swa050-msg)
"IMPOSSIBILE ESEGUIRE STAMPA !!" Overflow su call ASN060W

Note implementative

  • Il metodo di stampa "Servizio Web" corrisponde alla reportistica Jasper dell'ambiente Areagate; la generazione XML e la resa PDF avvengono fuori dal gestionale (Service Areagate + JASN060 + Jasper).
  • La condizione P/C (PBUG-285) esiste perche' il Service Jasper legge i dati dell'intervento dalla frontiera Areagate, popolata solo quando l'intervento e' pre-chiuso o chiuso.
  • Il percorso "gestionale" (ASN060W) e' quello storico basato su moduli Word (Wordmdl) e resta il fallback quando il Service non e' configurato (swa005-servizio-stampa-intervento = "G").
  • I moduli aggiuntivi per difetto/cliente sono comuni a entrambi i metodi; i moduli ad aghi ed etichetta barcode sono specifici della personalizzazione Torricelli (az-personal = "TI").
  • Le CALL a CRMS06 sono chiuse con cancel "CRMS06" a fine stampa-moduli-uff-metrico; i moduli chiamati (ASN066, ASN061/62/67, ASN054, ASN230, ASN210) sono cancellati subito dopo l'uso.