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 workerJASN060(vedi collegamento con JASN060). - Metodo "Gestionale" (Wordmdl): chiama direttamente il modulo di stampa storico
ASN060W(eventualmente in variante personalizzataASN060<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-dichiarazione→tm-cfg-modello-ripar-stru(modulo "Dichiarazione"/riparazione strumento)doc-stampa-modulo-richiesta→tm-cfg-modello-richiesta(modulo "Richiesta Accertamento")
Logica di elaborazione¶
Ingresso (apri / a4)¶
- Carica azienda e configurazioni.
- Se called con
asn060-id-inter, imposta l'intervento e determina il metodo di ristampa datm-cfg-modo-ristampa-int. - Determina
tm-metodo-ristampa("S"Servizio Web,"G"Gestionale) da configurazione; conmodo-ristampa-int = "S"puo' saltare direttamente aa-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 inASNINTES); 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 (mbox "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 seacit-stato = "P"o"C", altrimenti box di avviso e uscita.
Stampa da intervallo chiamate (loop-interventi-aperti):
- Scorre
ASNINTESper chiamata (st-asnintes-notmin-chia2) datm-da-chiamatm-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)¶
- SWA004 (PCASE-1258): aggiorna i dati dell'intervento sulle tabelle di frontiera Areagate prima della ristampa.
- 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. - Esito: se
swa050-esito = "S"avvisa che la richiesta e' stata inoltrata al Service e il PDF verra' inviato via mail all'operatore; altrimenti mostraswa050-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-stampa → swa050-id-inter → jasn060-id-inter).
call-stampa-gestionale (metodo Wordmdl)¶
- Cicla
tm-cfg-nr-copievolte chiamandoASN060W(conasn060w-prima-stampa = "SI"solo alla prima copia). - Se
az-personalvalorizzato, prova prima la varianteASN060<az-personal>(conon overflowfallback sucall-standard→ASN060W). ASN060Wriceve i parametri viautil-asn060w(redefine diuser-area):asn060w-id-inter,asn060w-called,asn060w-prima-stampa, ecc.
Moduli aggiuntivi (dopo la stampa principale)¶
- Moduli per difetto (
ASN066): per ogni riga chiamata conachd-dif-segnalato, se il tipo difetto (ASNTPDIF) haatpd-nome-docvalorizzato, stampa il modulo. - Moduli per cliente (
ASN066): scorreASNDOCSTper il cliente (fatturazione o assistito) e stampa i modulidost-nome-doc. - Moduli ufficio metrico (personalizzazione
TI, paragrafostampa-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
CRMS06sono chiuse concancel "CRMS06"a finestampa-moduli-uff-metrico; i moduli chiamati (ASN066, ASN061/62/67, ASN054, ASN230, ASN210) sono cancellati subito dopo l'uso.