SWN037 - Chiamate/interventi¶
Nome programma SWN037 Linkage section UTILAGPRG - Linkage comune Id processo: 40 Nome processo: INTERVENTI Tabelle principali gestite
| AREA | AREAGATE | Direzione |
|---|---|---|
| ASNCHTES ASNCHDET ASNINTES |
ARPINTES ARPINTE2 ARPCHDET |
------> <------ |
Versione tabella
| Tabella | Versione |
|---|---|
| ARPINTES | 2 |
Logica generale Sincronizzazione dei macro-oggetti "chiamate/interventi". Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| abilita | attiva-areaapp | |
| areaapp | cod-azienda | |
| areaapp | db-conn-string | |
| areaapp | agg-postgres-online | |
| assist | gestione-gruppo-aziende | |
| areaapp | aglancio-attivo | |
| areaapp | swa005-servizio-stampa-intervento | |
| ass-chiam | gestione-agente | |
| ass-chiam | gestione-certificazioni | |
| ass-chiam | modo-applicazione-certificazioni | |
| ass-chiam | tipo-attivita-consegna | |
| ass-chiam | tipo-fat-assistenza | |
| assist | chiamate-programmate-provenienza | |
| ass-chiam | importa-desag-dettaglio | |
| assist | gestione-produzione-tecnico | |
| areaapp | swa005-servizio-stampa-intervento | |
| commesse | commessa-impianto | |
| piping | creazione-cliente-assistito | |
| assist | codice-stato-chiamata | |
| assist | cod-attivita-su-chiamata | |
| abilita | clipot-agenda | |
| assist | tecnici-uso-mag-secondari | |
| ass-strum | generazione-dossier | |
| assist | tipo-numerazione-interventi |
iniziare, verifico se devo aggiornare il modello di certificazione sulla chiamata: le condizioni sono * Deve essere configurata la gestione certificazioni (gestione-certificazioni = "S") Esecuzione: * Se ACHT-MODELLO-CERT è vuoto, si procede in base alla modalità in cui è configurata la gestione: * modo-applicazione-certificazioni = "A": * si effettua una chiamata a ASNS15 con operazione CERCA-MODELLO * Il valore restituito viene aggiornato su ACHT-MODELLO-CERT * modo-applicazione-certificazioni = "B": * Solo se la chiamata è collegata a contratto, si effettua una chiamata a ASNS15 con operazione CERCA-MODELLO * Il valore restituito viene aggiornato su ACHT-MODELLO-CERT Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione A.1 - Aggiornamento KEEP-ALIVE Per il momento non lo eseguiamo: il keep-alive viene tenuto aggiornato dal thread autonomo di aglancio; se il programma venisse chiamato in "tempo reale" dal programma di gestione, non necessita comunque del keep-alive. A.2 - Apertura A.2.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: ARPZONEC Se fallita inviare una Segnalazione critica e chiudere. A.2.2 Attività preliminari Ricerca se archiviazione remota attiva Ora si controlla se la classe di archiviazione "Interventi di assistenza" è configurata come remota: in questo caso, l'esportazione galleria immagini non verrà effettuata perchè avviene in tempo reale. C - Importazioni * C.A - Interventi eseguiti * C.B - Interventi creati su APP ma non eseguiti B - Esportazioni * B.1 - Interventi cancellati su Area * B.2 - Esportazione interventi aperti *
C - Importazioni¶
C.A - Interventi eseguiti¶
C.A - Ricerca e importazione interventi eseguiti Qui il programma esamina se esistono chiamate eseguite nel mondo WEB. Query su ARPINTES, per cercare gli interventi eseguiti; devono avere: * RCIT-FL-ESEGUITA = "S" * RCIT-FL-ACQUISITA <> "S" * RCIT-FL-CANCELLATO <> "C" * RCIT-FL-STAMPA-PDF = "A" o "C" Inoltre l'intervento corrispondente sul gestionale non deve essere chiuso (ACIT-STATO <> "C") Verifica "chiamata cancellata" Se su Area i record ASNCHTES e ASNINTES non sono presenti, significa che sono stati erroneamente cancellati Quindi in questo caso li ripristino partendo dalle informazioni sul web: C.Z - Ripristino intervento/chiamata NB: per ora l'operazione è limitata all'intervento in debug (vedi configurazione "debug-doc") Proseguire L'analisi e il programma per ora si fermano qui. Proseguire adattando la parte successiva che è stata prelevata da A - Ricerca e importazione interventi eseguiti su APP, e con le altre sezioni di SWA004/SWA005 Operazioni preliminari Per ciascun intervento vengono effettuati i controlli descritti in Operazioni comuni preliminari --------------------------------------------------------------------------------------------------------------- MODIFICA 09/03/2017 conseguente ad introduzione reportistica su Jasper: Se risulta configurata la modalità di stampa Jasper il flusso di processo subisce una profonda modificazione: viene valutato se TM-CFG-MODO-STAMPA 1. se TM-CFG-MODO-STAMPA <> "J" prosegue nel modo standard 2. se TM-CFG-MODO-STAMPA = "J" procede cosi: 1. se RCIT-FL-ESEGUITA = "S" 1. RCIT-FL-ACQUISITA = " " 1. se RCIT-FL-STAMPA-PDF = " " o = "P" 1. allora scarica SOLO i dati dell'intervento popolando le tabelle gestionali 2. al termine imposta RCIT-FL-ACQUISITA = "P" 2. se RCIT-FL-STAMPA-PDF = "A" 1. allora scarica sia i dati di intervento che le immagini (tra cui il PDF del voucher) da archiviare 2. al termine imposta RCIT-FL-ACQUISITA = "S" e RCIT-FL-STAMPA-PDF = "N" (per inibire l'esecuzione del postino) 2. RCIT-FL-ACQUISITA = "P" 1. se RCIT-FL-STAMPA-PDF = " " o "P" 1. non fa nulla ed esce 2. se RCIT-FL-STAMPA-PDF = "A" 1. allora scarica SOLO le immagini (tra cui il PDF del voucher) da archiviare 2. al termine imposta RCIT-FL-ACQUISITA = "S" e RCIT-FL-STAMPA-PDF = "N" (per inibire l'esecuzione del postino) Nel caso in cui la chiamata risulta inserita da APP, saranno effettuati anche alcuni aggiornamenti specifici atti a importare i dati della chiamata e della assegnazione (vedi A.4). Per ciascun intervento: A.1 Aggiornamento ASNINTES:
| Nome campo | Contenuto |
|---|---|
| ACIT-INT-DATA ACIT-INT-ORA |
RCIT-ESEC-DATA RCIT-ESEC-ORA |
| ACIT-STATO | "P" |
| ACIT-STATO-MOBILE | "P" |
| ACIT-FL-RISOLUTIVO | RCIT-FL-RISOLUTIVO |
| ACIT-FL-TRASFERTA | RCIT-FL-TRASFERTA |
| ACIT-VIAGGIO-KM | RCIT-VIAGGIO-KM |
| ACIT-VIAGGIO-ORE | RCIT-VIAGGIO-ORE |
| ACIT-TIPO-INTERVENTO | RCIT-TIPO-INTERVENTO |
| ACIT-IMPORTO-CONCORDATO | RCIT-IMPORTO-CONCORDATO |
| ACIT-DST | RCIT-DST |
| ACIT-MAG-DEFAULT | RCIT-MAG-DEFAULT |
| ACIT-FL-WEB-CHIUSE | " " |
| ACIT-PROG-MOD-INTERVENTO | RCIT-PROG-MOD-INTERVENTO |
| ACIT-DST-ID-TIP | RCIT-DST-ID-TIP |
| ACIT-DST-ID-IDX | RCIT-DST-ID-IDX |
A.1.1 Inserimento/aggiornamento ASNINTE2:
| Nome campo | Contenuto |
|---|---|
| ACIT2-ID-INTERVENTO | Id intervento aggiornato |
| ACIT-NOME-FIRMA | RCIT-NOME-FIRMA |
| ACIT2-MAG-TIP | RCIT2-MAG-TIP |
| ACIT2-MAG-SEC | RCIT2-MAG-SEC |
| ACIT2-FL-RESIDENZIALE | RCIT2-FL-RESIDENZIALE |
| ACIT2-IMPORTO-PAGATO | ARPINTADD.INTADD-IMPORTO-PAGATO |
A.2 Aggiornamento ASNCHTES:
| Nome campo | Contenuto |
|---|---|
| ACHT-IVA-AGEVOLATA | RCIT-IVA-AGEVOLATA |
| ACHT-STATO | RCIT-STATO-CHIAMATA (se significativo) |
| Se il contratto è significativo | |
| ACHT-ID-CONTRATTO | RCIT-ID-CONTRATTO |
| ACHT-FL-CONTRATTO | "S" |
| ACHT-MODELLO-CERT | RCIT-MODELLO-CERT |
A.2.1 Aggiornamento ASNCHDET: A seguito dell'introduzione della possibilita di modificare il modello di certificazione sulla APP anche per le matricole, si rende necessario aggiornare anche il dettaglio matricole sulla chiamata; Scorrere ARPCHDET per la chiamata in elaborazione. Per ciascuna matricola trovata, cercare il relativo record su ASNCHDET, e confrontare RCHT-MODELLO-CERT con ACHD-MODELLO-CERT; se diversi aggiornare:
| Nome campo | Contenuto |
|---|---|
| ACHD-MODELLO-CERT | RCHT-MODELLO-CERT |
A.3 Acquisizione certificazione: Questa parte permette l'acquisizione dei dati di certificazione, quindi importa: * ARPSKDATI -> su ASNCHINF * ARPSKDATN -> su ASNCHNNF NB: a seconda della modalità di certificazione si potrà avere: * Certificazione su testata (ASNCHTES.ACHT-MODELLO-CERT significativo): aggiornamento dei record con
| Dato | Contenuto |
|---|---|
| A-SKDI-ORIGINE | "S" |
| A-SKDI-CLASSE | "AI" |
| A-SKDI-OGGETTO | ID Intervento |
- Certificazione su matricola (ASNCHDET.ACHD-MODELLO-CERT significativo): per ciascuna matricola aggiornamento dei record con
| Dato | Contenuto |
|---|---|
| A-SKDI-ORIGINE | "S" |
| A-SKDI-CLASSE | "AM" |
| A-SKDI-OGGETTO | chiave ASNCHDET |
A.3.1 Sincronizzazione certificazione con scheda CRM matricola: Se questa caratteristica è abilitata ( gestione-checklist-prec = "S" ) è necessario sincronizzare le informazioni previste sulla check-list con la scheda CRM corretta della matricola corretta; quindi: * Check-list su intervento: si sincronizza con la prima matricola trovata sulla chiamata * Check-list su matricola: si sincronizza con la matricola relativa La sincronizzazione avrà luogo se la matricola selezionata è collegata ad una scheda CRM: ASNMATRI.AMTR-COD-NOM > 0. In questo caso, si dovrà cercare CRMANAGR per ottenere il tipo nominativo collegato (CRA-TIP). Poi durante l'importazione dei dati come spiegato al punto A.3, per ciascuna informazione importata si procede come segue: A.3.1.1 - Verifico se l'informazione è da sincronizzare Posizionarsi su ASNSKINF:
| Nome campo | Contenuto |
|---|---|
| ASKI-MOD-NOME | Il nome del modello di certificazione usato: a seconda del tipo di check list |
| ASKI-PAG | A-SKDI-PAGINA |
| ASKI-PROG | A-SKDI-PROG |
Se ASKI-FL-RIPORTA = "S" significa che l'informazione è da sincronizzare, quindi proseguo. In questo caso ASKI-IPT-NUM-SINCRO conterrà il codice informazione da sincronizzare. A.3.1.2 - Ricerca informazione su scheda CRM e aggiornamento Eseguire una chiamata a CRMS06 per aggiornare l'informazione:
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | CRMS06-OPE | "SCRIVI" |
| CRMS06-NOM | Codice nominativo corrispondente alla scheda CRM matricola: AMTR-COD-NOM |
|
| CRMS06-INF | Informazione da aggiornare: ASKI-IPT-NUM-SINCRO | |
| CRMS06-MODO-LETTURA-TABELLA | "C" | |
| CRMS06-DATO | Informazione recuperata Usare CRMS06-DATO-NUM se l'informazione è numerica o CRMS06-DATO negli altri casi |
|
| CRMS06-DATA-R | ||
Questa chiamata dovrebbe già posizionarsi sull'informazione corretta (la prima sulla scheda contenente l'informazione cercata) A.4 Aggiornamenti specifici per chiamata creata su APP: Se l'intervento pre-chiuso ha: * RCIT-STATO = "Z" * RCIT-FL-ASSEGNATA = "S" significa che è stato prechiuso un intervento relativo ad una chiamata direttamente creata su APP. Quindi occorre effettuare alcuni aggiornamenti specifici: A.4.1 Aggiornamento ASNCHTES:
| Nome campo | Contenuto |
|---|---|
| ACHT-DATA ACHT-ORA |
RCIT-CHIAMATA-DATA RCIT-CHIAMATA-ORA |
| ACHT-OGGETTO | RCIT-OGGETTO |
| ACHT-CLI-ASS | RCIT-ANA |
| ACHT-AGENTE | Agente su anagrafica, se configurato |
| ACHT-CLI-FAT | RCIT-CLI-FAT Se non significativo sarà usato il cliente padre trovato sul cliente assistito in anagrafica |
| ACHT-PRIORITA | RCIT-PRIORITA |
| ACHT-SCAD-DATA ACHT-SCAD-ORA |
RCIT-SCADENZA-DATA RCIT-SCADENZA-ORA |
| ACHT-SITUAZIONE | Se risulta collegata ad un tecnico -> "A" Se non è collegata ad un tecnico -> " " (non assegnata) |
| ACHT-STATO | Stato chiamata inserito su app, o se non presente, quello configurato |
| ACHT-NOTE | RCIT-CHIAMATA-DES |
| ACHT-CHIAMATA-CLI | RCIT-CHIAMATA-CLI |
| ACHT-CONTATTO-1 | RCIT--CONTATTO-1 |
| ACHT-CLASSE | "C" (chiamata esterna) |
| ACHT-IVA-AGEVOLATA | RCIT-IVA-AGEVOLATA (doppio) |
| ACHT-FL-AREAGATE | RCIT-FL-AREAGATE |
| ACHT-PROVENIENZA | RCIT-PROVENIENZA |
| ACHT-UTE-AG-COD | RCIT-UTE-AG-COD |
| ACHT-OPERATORE | Viene inserito WO-OPER, ovvero l'operatore attivo (che nel caso di elaborazione automatica da motore di sincronizzazione non ha senso). Se: l'utente è loggato come tecnico RCIT-PROVENIENZA = " " allora viene impostato RCIT-UTE-AG-COD (l'operatore collegato al tecnico); |
| ACHT-TIPO-FAT | Se = " ", inserire il valore configurato in tipo-fat-assistenza |
| ACHT-AVVISA-CLIENTE | Prendere il valore di default configurato in avviso-default |
| ACHT-MODELLO-CERT | RCIT-MODELLO-CERT |
| ACHT-FL-STA-RAP | RCIT-FL-STA-RAP |
| ACHT-FL-STA-CERT | RCIT-FL-STA-CERT |
| ACHT-CHIAMATA-GRATUITA | Determinare se questo campo deve valere "S", con la stessa logica con cui è stato descritto in caso di inserimento in Inserimento/gestione chiamata |
| ACHT-NOM-ASS | RCIT-NOM-ASS |
| ACHT-DST-ID-TIP | RCIT-DST-ID-TIP |
| ACHT-DST-ID-IDX | RCIT-DST-ID-IDX |
A.4.2 Aggiornamento ASNINTES:
| Nome campo | Contenuto |
|---|---|
| ACIT-STATO | Se aperto ("A"), e non c'è nessun tecnico collegato, verrà forzato " " |
| ACIT-ASS-DATA ACIT-ASS-ORA ACIT-ASS-ORA-FINE |
RCIT-ASS-DATA RCIT-ASS-ORA RCIT-ASS-ORA-FINE (se c'è il tecnico assegnato) |
| ACIT-TARGA | RCIT-TARGA |
| ACIT-FL-SPOSTABILE | RCIT-FL-SPOSTABILE |
| ACIT-NOTE | RCIT-NOTE |
| ACIT-FL-BOL | "N" |
| ACIT-TECNICO (1) | Tecnico assegnato 1 |
| .... | ... |
| ACIT-TECNICO (10) | Tecnico assegnato 10 |
| ACIT-TIPO-ATT | Verrà valorizzato come "A" (attività) o "G" (agenda) a seconda della configurazione e della durata dell'appuntamento |
| ACIT-IMPORTO-CONCORDATO | RCIT-IMPORTO-CONCORDATO (doppio) |
| ACIT-DST | RCIT-DST (doppio) |
| ACIT-MAG | RCIT-MAG-DEFAULT (doppio) |
A.4.2.1 Aggiornamento ASNINTE2: Vedi anche Acquisizione dati veicolo e magazzino tecnico
| ACIT2-MAG-TIP | RCIT2-MAG-TIP |
|---|---|
| ACIT2-MAG-SEC | RCIT2-MAG-SEC |
| ACIT2-DATA-RILASCIO | RCIT2-DATA-RIL-PROD |
| ACIT2-ORA-RILASCIO | RCIT2-ORA-RIL-PROD |
| ACIT2-FL-RESIDENZIALE | RCIT2-FL-RESIDENZIALE |
| ACIT2-IMPORTO-PAGATO | ARPINTADD.INTADD-IMPORTO-PAGATO |
A.4.3 Aggiornamento ASNCHPRP: Scorrere tutti i record di ARPCHPRP collegati alla chiamata; importare il contenuto su ARPCHPRP:
| Nome campo | Contenuto |
|---|---|
| ACHP-ID-CHIAMATA | RCHP-ID |
| ACHP-PROG | RCHP-PROG |
| ACHP-MERCE | RCHP-MERCE |
| ACHP-QTA | RCHP-QTA |
| ACHP-IMPORTANZA | RCHP-IMPORTANZA |
| ACHP-ESE-DATA | RCHP-ESE-DATA |
| ACHP-ESE-TECNICO | RCHP-ESE-TECNICO |
| ACHP-FL-VAL | RCHP-FL-VAL |
| ACHP-FL-CONTENITORE | RCHP-FL-CONTENITORE |
| ACHP-FL-ESPOSTA | RCHP-FL-VISIBILE |
A.4.4 Aggiornamento agenda: Se è presente una configurazione specifica, verrà inserita una attività nell'agenda dell'operatore tramite ASNS78 Successivamente, verrà anche aggiornata l'attività CRM collegata A.4.5 Creazione dossier: Se la configurazione generazione-dossier vale "S", eseguire una chiamata a CRMS10 per la creazione del dossier chiamata
| Dato | Contenuto |
|---|---|
| CRMS10-OPE | "SCRIVI" |
| CRMS10-ANA | Il cliente assistito collegato alla chiamata |
| CRMS10-TDO | tipo-dossier-chiamata |
| CRMS10-ID | prefisso-id-dossier + ACHT-ID (vedi ASN110) |
| CRMS10-DES | "Chiamata n. " + ACHT-ID |
| CRMS10-DATA-APE | Data chiamata |
All'uscita, memorizzare il riferimento del dossier sulla chiamata
| Dato | Contenuto |
|---|---|
| ACHT-DOSSIER | CRMS10-DSR-CHIA1 |
A.4.6 Creazione nuova chiamata "Z": A seguito dell'assegnazione di una chiamata "Z" (che diventa una chiamata reale), in questa fase verrà creata una nuova chiamata "Z". A.4.7 Aggiornamento contratto collegato A seguito dell'assegnazione di una chiamata "Z" (che diventa una chiamata reale), in questa fase verrà creata una nuova chiamata "Z". A.5 Acquisizione altre informazioni * Note tecnico -> su ASNINDAG Durante l'acquisizione di un intervento prechiuso, importare alcuni nuovi campi note dall'intervento, che saranno memorizzati su 5 nuovi record su ASNINDAG, solo quando sono significativi. Su questi nuovi record AITD-TIPO dovrà essere: * "E": ARPINTES.RCIT-COMMENTO-RISOLUTIVO * "A": APPINTES.A-RCIT-MSG-COMMERCIALE * "B": APPINTES.A-RCIT-MSG-ADMIN * "C": APPINTES.A-RCIT-MSG-UFF-TEC * "D": APPINTES.A-RCIT-MSG-UFF-ACQ * "G": ARPINTES2.RCIT2-PROBLEMI A.5.1 Acquisizione ASNAPPPR: Questa tabella contiene le prestazioni inserite dal tecnico dalla APP (è una tabella di appoggio che verrà analizzata in fase di chiusura chiamata quando si elabora una chiamata "pre-chiusa da APP") Verrà importata da ARPINDET In questa fase, se ACID-DESCRIZIONE è significativa si dovrà importare su un apposito record di ASNINDED A.5.2 Acquisizione ASNAPPMT: Questa tabella contiene i materiali inseriti dal tecnico dalla APP (è una tabella di appoggio che verrà analizzata in fase di chiusura chiamata quando si elabora una chiamata "pre-chiusa da APP" Verrà importata da ARPINMAT In questa fase, se ACIM-DESCRIZIONE è significativa si dovrà importare su un apposito record di ASNINDED A.5.3 Acquisizione ASNCHDET: Matricole collegate alla chiamata: è corretto che vengano sempre acquisite? Non dovrebbe essere solo quando acquisisco una chiamata "Z"? Verrà importata da ARPCHDET A.5.4 Acquisizione ASNINTMP: Questa tabella contiene il dettaglio tempi di lavorazione inseriti dal tecnico, se previsto. Verrà importata da ARPINTMP A.5.5 Acquisizione ASNINDIF: Questa tabella contiene il dettaglio difetti/soluzioni per matricola inseriti dal tecnico, se previsto. Verrà importata da ARPINDIF Durante l'importazione, verificare l'esistenza dei codici difetto e soluzione: se non esiste, eseguire l'acquisizione: A.5.5.1 Ricerca e acquisizione difetto Cercare su ASNTPDIF l'esistenza del difetto presente in ACII-DIFETTO; se non esiste. leggere il corrispondente codice difetto su ARPTPDIF e inserirlo su ASNTPDIF:
| Nome campo | Contenuto |
|---|---|
| ATPD-COD | A-ATPD-COD |
| ATPD-DES | A-ATPD-DES |
| ATPD-STAMPA-DOC | "N" |
| ATPD-TIP-MAT | A-ATPD-TIP-MAT |
| ATPD-NOME-DOC | " " |
A.5.5.2 Ricerca e acquisizione soluzione Cercare su ASNTPDSL l'esistenza del difetto presente in ACII-SOLUZIONE; se non esiste. leggere il corrispondente codice difetto su ARPTPDSL e inserirlo su ASNTPDSL:
| Nome campo | Contenuto |
|---|---|
| ATPS-DIFETTO | A-ATPS-DIFETTO |
| ATPS-SOLUZIONE | A-ATPS-SOLUZIONE |
| ATPS-DES | A-ATPS-DES |
A.6 Aggiornamenti ARPINTES:
| Nome campo | Contenuto |
|---|---|
| RCIT-FL-ACQUISITA | "S" |
| RCIT-FL-ASSEGNATA | "X" (solo se sto acquisendo una chiamata creata su APP) |
| RCIT-DST | ACIT-DST (a cosa serve?) |
| RCIT-FL-STA-RAP | "N" Solo se è una chiamata di consegna e non sono stati trovati materiali Serve per impedire la spedizione del rapportino in questo caso |
A.7 Preparazione moduli e spedizione A.7.1 Download immagini: Tramite FTP si esegue lo scaricamento dei files necessari per la stampa del rapportino; in sintesi verrà scaricato: * Un file "pilota" che indica quali altri files devono essere scaricati * Un file di firma * Eventuali allegati In questa fase viene anche eseguita la preparazione e archiviazione della stampa del rapportino, attraverso: 1. Chiamata a ASN060W per la produzione della stampa dal modello 2. Se la modalità di elaborazione è diretta, a questo punto avremo direttamente il PDF; altrimenti si esegue una chiamata a SVIEW per la conversione del file PCL generato in PDF 3. Archiviazione del file PDF tramite COGU06 Importazione galleria immagini su un server ftp, in una cartella che dovrà essere definita, esiste una struttura fatta in questo modo:: cartella/codice azienda/codice intervento ad esempio: cartella/C01692/178901 In questa cartella ci sarà un file di testo, ad esempio: 178901.txt composto in questo modo:
| Nome immagine | Descrizione |
|---|---|
| 178901.pdf | Modulo intervento |
| 178901_001.jpg | Immagine guasto |
| .... | .. |
Quindi leggere il file e per ogni riga importare il relativo file nella galleria della chiamata Tra i files importati ci sarà anche un file contenente la firma dell'utente in formato JPG, deve essere archiviato e usato nella fase successiva. NB: memorizzare il file in modo che sia distinguibile da eventuali altri firme in caso di + interventi sulla chiamata (ad esempio, memorizzare come "FIRMA INT:178901") A.7.1.1 - Scrittura collegamento su ARPCHIMG Per ciascuna immagine archiviata in galleria, leggere il record COGIMAGE che è stato appena creato da COGU06, usando IMG-CHIA2 e impostando: * IMG-TIP-DOC = "A2" * IMG-DC-A2-KEY = RCIT-ID-CHIAMATA * IMG-DC-A2-TIP = "IM" * IMG-DC-A2-PROG=progressivo inserito * Per ciascun record leggere il corrispondente record COGARIDX su ARX-CHIA2, impostando: * ARX-PROTOCOLLO = IMG-PROTOCOLLO * A questo punto siamo posizionati su un allegato dell'attività; vediamo se sulla tabella web esiste ed è aggiornato: * Lettura di ARPCHIMG impostando
| Dato | Descrizione |
|---|---|
| RCHIMG-AZI | Codice azienda |
| RCHIMG-ID | ID chiamata |
| RCHIMG-PROG | Progressivo di immagine nella galleria (IMG-DC-A2-PROG) |
Il record non dovrebbe esistere: se lo fosse sovrascriverlo aggiornando i dati qui sotto evidenziati in grassetto, altrimenti scrivere il record
| Nome campo | Note |
|---|---|
| RCHIMG-AZI | Codice azienda |
| RCHIMG-ID | RCIT-ID-CHIAMATA |
| RCHIMG-PROG | Progressivo di immagine nella galleria (IMG-DC-A2-PROG) |
| RCHIMG-DES | IMG-OGGETTO |
| RCHIMG-NOME | Il nome del file appena archiviato |
| RCHIMG-AREA-AGG-DATA | ARX-DA-DATA |
| RCHIMG-AREA-AGG-ORA | ARX-DA-TIME |
| RCHIMG-AREA-FL-AGG | "S" |
Stampa intervento A seconda del contenuto della configurazione modo-stampa-intervento, la stampa potrà essere fatta nei seguenti modi: Stampa standard (configurazione = "S") Si dovrà eseguire la stampa dell'intervento in formato WORD, usando l'apposita stampante configurata con cui generare il file in formato PCL: "stampe"-"periferica-stampa-file" Il modello da stampare dovrà essere acquisito lanciando COGPA3 con l'opzione "COGPA3-USA-DEFAULT" = "S", in modo che scelga sempre il primo tra i modelli disponibili (si dovrà comunque passare anche il cliente assistito o il cliente di fatturazione, da vedere) Dopodichè la stampa dovrà essere processata per la produzione di un file PDF, che dovrà essere inviato via ftp al server WEB. Stampa diretta (configurazione = "D") Come nel caso precedente ma con le seguenti modifiche: * Si dovrà eseguire la stampa dell'intervento in formato WORD; in questo caso però passare un apposito parametro ad ASN060W in modo che questo passi a WORDMDL non la richiesta della stampa su una periferica configurata, ma il parametro WORDMDL-SAVE-AS con indicato il nome del file pdf da creare. * Dopo l'esecuzione di ASN060W, bypassare la chiamata a SVIEW perchè non più necessaria A.7.2 Preparazione certificato: Se la chiamata prevede la certificazione, verrà eseguito un processo per la stampa, archiviazione e spedizione del modello di certificazione configurato. 1. Chiamata a ASN598 per la produzione della stampa/stampe dal modello 2. Il programma produrrà un file sequenziale chiamato "asn598_certificati.txt" che contiene l'elenco dei files prodotti. A seconda della modalità di stampa modo-stampa-intervento: 1. "S" (stampa diretta: creazione di un file prn e successiva trasformazione in PDF): ogni file dell'elenco sarà trasformato in PDF con una chiamata ad SVIEW 2. "D": (stampa diretta: la versione di Word installata consente l'esportazione diretta di un file PDF): ogni file dell'elenco sarà già in formato PDF 3. Archiviazione di ciascun file PDF risultante dall'elenco tramite COGU06 A.7.3 upload dei documenti prodotti: 1. Se la produzione del rapportino è andata a buon fine, upload attraverso FTP 2. Se la produzione del certificato è andata a buon fine, upload attraverso FTP A.7.4 Aggiornamento ARPINTES: Se l'invio dei modelli è avvenuto correttamente, dovrà essere aggiornato il flag RCIT-FL-STAMPA-PDF = "S". In caso contrario, se sono avvenuti errori, verrà aggiornato a "E" -> Questo permetterà la spedizione al cliente di un rapporto di errore. A.8 Prossima chiamata programmata Al termine dell'importazione di un intervento eseguito, se la chiamata: * è collegata a contratto * è una chiamata programmata (ACHT-PROVENIENZA = chiamate-programmate-provenienza) * il modo-programmazione vale "B", allora si dovrà eseguire la creazione della prossima chiamata programmata, con una chiamata a ASN053:
| Dato | Contenuto |
|---|---|
| ASN053-CONTRATTO | Codice contratto da elaborare |
| ASN053-OPERAZIONE | "CREA-PROSSIMA" |
| ASN053-INTERVENTO | Id intervento eseguito |
E' possibile che questa operazione non avvenga, ad esempio se abbiamo già raggiunto il numero di chiamate previste. In questo caso sarà restituito comunque esito e messaggio. Quindi, se l'esito è: * Positivo: segnalare nel file di log il numero di chiamata generata * Negativo: segnalare l'errore nel file di log con il messaggio relativo
C.B - Interventi creati su APP ma non eseguiti¶
C.B - Ricerca e importazione interventi creati su APP ma non eseguiti Nel punto "C.A" vengono acquisite tutte le chiamate eseguite, anche se sono state create appena prima tramite la chiamata "Z". Ora il programma esamina se esistono invece chiamate create da APP, ma solo assegnate (o non assegnate) e non eseguite. Query su ARPINTES, per cercare gli interventi eseguiti; devono avere: * RCIT-STATO = "Z" * RCIT-FL-ASSEGNATA = "S" * RCIT-FL-ESEGUITA <> "S" Verifica "chiamata cancellata" Se su Area i record ASNCHTES e ASNINTES non sono presenti, significa che sono stati erroneamente cancellati Quindi in questo caso li ripristino partendo dalle informazioni sul web: C.Z - Ripristino intervento/chiamata NB: per ora l'operazione è limitata all'intervento in debug (vedi configurazione "debug-doc") Operazioni preliminari Per ciascun intervento vengono effettuati i controlli descritti in Operazioni comuni Proseguire L'analisi e il programma per ora si fermano qui. Proseguire adattando la parte successiva che è stata prelevata da B - Ricerca e importazione interventi creati su APP ma non eseguiti, e con le altre sezioni di SWA004/SWA005 B.1 Aggiornamento ASNINTES:
| Nome campo | Contenuto |
|---|---|
| ACIT-STATO | "A" |
| ACIT-TIPO-INTERVENTO | RCIT-TIPO-INTERVENTO |
| ACIT-DST-ID-TIP | RCIT-DST-ID-TIP |
| ACIT-DST-ID-IDX | RCIT-DST-ID-IDX |
B.2 Aggiornamento ASNCHTES: La routine di aggiornamento al momento e' in comune con quella eseguita per il punto A - Ricerca e importazione interventi eseguiti su APP, ma in questo caso (stiamo creando una nuova chiamata) occorre fare una ricerca aggiuntiva dei riferimenti anagrafici per la chiamata: Se la configurazione commessa-impianto vale "S", e se sulla chiamata sono state agganciate delle matricole (ARPCHDET), cercare l'esistenza di una commessa con il codice identico al s/n della matricola (con questa configurazione deve esistere). Poi impostare i dati
| Nome campo | Contenuto |
|---|---|
| ACHT-CLI-FAT-COD | TSC-ANA-COD |
| ACHT-CLI-ASS-COD | TSCA-CLI-ASS Se non significativo, e' ancora TSC-ANA-COD |
| ACHT-DST | TSCA-DST |
| ACHT-FL-STA-RAP | RCIT-FL-STA-RAP |
| ACHT-FL-STA-CERT | RCIT-FL-STA-CERT |
| ACHT-AVVISA-CLIENTE | avviso-default |
| ACHT-GRP-AZ-ESE | RCIT2-GRP-AZ-ESE |
| ACHT-GRP-AZ-APP | RCIT2-GRP-AZ-APP |
| ACHT-FL-FAT | Come nel caso di inserimento chiamata standard, la valorizzazione di questo parametro dipende dalle configurazioni: default-da-fatturare flag-da-non-fatturare e dalla presenza del flag "Benestare" sul cliente di fatturazione |
| ACHT-DST-ID-TIP | RCIT-DST-ID-TIP |
| ACHT-DST-ID-IDX | RCIT-DST-ID-IDX |
| ACHT-CNT-TIP | RCIT2-CNT-TIP |
| ACHT-CNT-COD | RCIT2-CNT-COD |
B.2.1 invio avviso al cliente In questo caso (inserimento nuova chiamata) se previsto dalla configurazione avviso-ins-chiamata eseguire una chiamata a ASNS05 - Invio messaggio da chiamata/intervento :
| Dato | Formato | Contenuto |
|---|---|---|
| ASNS05-CALLER | x(08) | Programma chiamante |
| ASNS05-ID-CHIAMATA | 9(12) | Id chiamata inserita |
| ASNS05-OPE | x(20) | "INVIO-CHIAMATA" |
Questa operazione dovrebbe inviare una mail al cliente, quando previsto B.3 Aggiornamento chiamata "Z": B.3.1 Parsing informazioni note Come prima cosa, eseguire eseguire il parsing delle informazioni che possono essere contenute nel campo note ricevuto in input. Si dovrà eseguire la ricerca delle informazioni configurate in COGPARSE riguardanti la classe documento "01": quindi per ciascuna delle informazioni previste (si potrà eseguire un semplice loop) si dovrà eseguire una chiamata a COGUA6 - Parsing informazione su testo, passando:
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | COGUA6-OPE | "CERCA-INFO" |
| COGUA6-CLASSE | "01" | |
| COGUA6-COD | Codice informazione da elaborare | |
| COGUA6-SIZE-TESTO | Dimensione campo RCIT-CHIAMATA-DES | |
| COGUA6-TESTO | RCIT-CHIAMATA-DES |
Se l'informazione viene trovata (COGUA6-ESITO = "S"), eseguire il trattamento specifico dell'informazione trovata.
| PARS-COD | Descrizione | Note |
|---|---|---|
| 1 | Cliente assistito | Il dato trovato dovrà essere un codice cliente esistente nell'anagrafica clienti, e sostituirà il cliente assistito con cui viene ricevuta la chiamata |
| 2 | S/N matricola | Il dato trovato corrisponderà ad un s/n di una matricola codificata nel sistema, e appartenente al cliente assistito |
| 3 | Ragione sociale cliente assistito | Il dato trovato potrà essere la ragione sociale del cliente assistito. Verrà utilizzata nel caso in cui sia prevista la creazione automatica del cliente assistito (Vedi oltre) |
| 4 | Indirizzo cliente assistito | Il dato trovato potrà essere l'indirizzo del cliente assisisto. Verrà utilizzata nel caso in cui sia prevista la creazione automatica del cliente assistito (Vedi oltre) Il contenuto di questa informazione dipende dalla configurazione formato-indirizzo |
| 5 | Telefono cliente assistito | Il dato trovato potrà essere il numero di telefono del cliente assisisto. Verrà utilizzata nel caso in cui sia prevista la creazione automatica del cliente assistito (Vedi oltre) |
| 6 | Numero chiamata cliente | Il dato trovato verrà acquisito come Numero chiamata cliente (o codice richiesta) Non verranno effettuati controlli sulla duplicazione o esistenza di una chiamata avente lo stesso riferimento. |
| 7 | Numero intervento cliente | Il dato trovato verrà acquisito come Numero intervento cliente (o codice richiesta) Non verranno effettuati controlli sulla duplicazione o esistenza di una chiamata avente lo stesso riferimento. |
| 8 | Oggetto chiamata | Il dato trovato verrà acquisito come Oggetto sulla chiamata. |
| 9 | Id destinazione | Se viene ricevuto uno di questi 3 campi, sarà utilizzato per la ricerca della destinazione diversa a cui abbinare la chiamata. La ricerca verrà effettuata in base all'ordine di questi 3 campi: quindi se ad esempio è presente il tag "Id destinazione", sarà cercato solo questo Se invece nessuno dei 3 campi è presenti, o comunque non viene trovata nessuna corrispondenza, la destinazione non sarà agganciata |
| 10 | Immobile (Skype) | |
| 11 | Edificio (Fax) | |
| 12 | Data/ora inserimento chiamata | All'interno di questo tag il programma si aspetta di trovare almeno la data, e opzionalmente anche l'ora di inserimento della chiamata. Se non presenti, saranno usati data/ora sistema. Se presente il programma applicherà le seguenti regole: |
| 13 | Data/ora scadenza chiamata | All'interno di questo tag il programma si aspetta di trovare almeno la data, e opzionalmente anche l'ora di scadenza della chiamata. Se non presenti, saranno lasciati vuoti. Se presente il programma applicherà le seguenti regole: |
B.3.1.1 Creazione nuovo cliente assistito Se la configurazione creazione-cliente-assistito vale "S", dovranno essere cercate nel testo anche le informazioni 3,4,5 (in caso contrario non è necessario effettuare la ricerca). Quindi potrebbero avere le seguenti situazioni:
| Codice 1 (Codice cliente assistito) |
Codice 3 (Ragione sociale) |
Codice 4 (Indirizzo) |
Comportamento |
|---|---|---|---|
| Indicato | / | / | In questo caso il sistema si comporta come nel caso in cui la creazione cliente assistito non fosse configurata: il cliente indicato deve esistere |
| Non indicato | Indicato | Indicato | Il cliente assistito viene cercato attraverso la ragione sociale, che deve esistere ed essere identica al contenuto dell'informazione "Codice 3". Se trovata, deve essere confrontato anche l'indirizzo. Se: |
In caso di creazione nuovo cliente, l'informazione 4 (indirizzo), in base al contenuto di formato-indirizzo potrà essere composta da sottocampi; quindi dovranno essere separati in base al separatore configurato. Se il cliente assistito viene trovato tramite la ragione sociale, usare quello, altrimenti si dovrà creare con una chiamata alla funzione "INSANA" (vedi SWA030) usando i dati a disposizione. Quindi usare il cliente inserito come cliente assistito. B.3.1.2 Ricerca destinazione diversa Se l'analisi dei tag 9,10,11 restituisce almeno un valore, effettuare la ricerca della presenza della destinazione diversa sul cliente (di fatturazione o assistito a seconda di quanto trovato in precedenza). La ricerca va fatta esattamente in questo ordine; quindi: 1. Ricerca informazione 9 (k-cp-chiamate-dst-id); se contiene un valore, effettuare la ricerca tra le destinazioni sul campo COGDEST2.DST2-ID-DESTINAZIONE 2. Ricerca informazione 10 (k-cp-chiamate-dst-skype); se contiene un valore, effettuare la ricerca tra le destinazioni sul campo COGDEST2.DST2-SKYPE 3. Ricerca informazione 11 (k-cp-chiamate-dst-fax); se contiene un valore, effettuare la ricerca tra le destinazioni sul campo COGDEST2.DST2-FAX Alla prima ricerca positiva ci si ferma e non è necessario proseguire con le rimanenti. Se nessuna ricerca restituisce un campo significativo, o se nessuno di questi risulta essere presente in una destinazione, questa rimane vuota. B.3.1.3 Campi "Data e ora" I campi 12 e 13 corrispondono a data e/o ora. Se significativo, almeno la data dovrebbe essere presente. Per una efficace ricerca in uno di questi campi, se significativi, seguire queste regole: * L'orario se presente sarà separato da " " dalla data * Una volta isolati i campi "data" e "ora": * Normalizzare la data usando COGS52W con operazione "Accept-E" * Normalizzare l'ora, se presente, usando COGS93W con operazione "Accept-E" B.3.2 Elaborazione Verranno eseguiti gli aggiornamenti come ai punti: * A.4.1 * A.4.2 * Se l'intervento in questa fase risulta "non assegnato" (ACIT-TECNICO (1) = 0) si dovrà cercare un tecnico da preassegnare con una chiamata a ASNS19:
| Dato | Contenuto |
|---|---|
| ASNS19-OPE | "CERCA" |
| ASNS19-CLIENTE | Cliente assistito collegato alla chiamata |
| ASNS19-DST | Destinazione collegata alla chiamata |
| ASNS19-ID-MATRICOLA | Matricola collegata alla chiamata |
Assegnare il tecnico restituito all'intervento In questo caso scattano gli automatismi su veicolo/magazzino come spiegato in Acquisizione dati veicolo e magazzino tecnico * A.4.3 * A.4.4 * A.4.5 B.4 Acquisizione altre informazioni Verranno eseguiti gli aggiornamenti come al punto A.5 - Acquisizione altre informazioni B.5 Aggiornamento ARPINTES:
| Nome campo | Contenuto |
|---|---|
| RCIT-FL-ASSEGNATA | "X" |
| RCIT-DST | ACIT-DST (a cosa serve?) |
| RCIT-FL-STA-RAP | "N" Solo se è una chiamata di consegna e non sono stati trovati materiali Serve per impedire la spedizione del rapportino in questo caso |
C.F - Cancellazione intervento da Areagate¶
C.F - Cancellazione intervento Qui il programma esamina se esistono invece chiamate cancellate da un processo WEB (Areagate o APP). NB: * per il momento saranno considerati cancellabili solo gli interventi non pre-chiusi o non chiusi * Se viene cancellato l'unico intervento di una chiamata, sarà cancellata anche la chiamata stessa. Query su ARPINTES, per cercare gli interventi eseguiti; devono avere: * RCIT-FL-ASSEGNATA = "C" * RCIT-FL-CANCELLATO = "S" Per ciascun intervento considerato, si prosegue: Cancellazione intervento Controlli Quindi il programma ora verifica se l'intervento è cancellabile: dovrà avere ACIT-STATO <> "P" e <> "C": in questi casi: * sarà inserita una segnalazione di errore * l'intervento non verrà cancellato * Il flag RCIT-FL-ASSEGNATA sarà impostato a " " in modo da non rielaborarlo Cancellazione Verificare quanti sono gli interventi collegati alla chiamata: * 1: Cancellazione chiamata * >1: Cancellazione intervento Cancellazione intervento La cancellazione dell'intervento verrà effettuata con una chiamata ad ASNS06:
| Dato | Contenuto |
|---|---|
| ASNS06-ID-INTERVENTO | Id intervento da cancellare |
| ASNS06-TIPO-CANC | "I" |
Cancellazione chiamata La cancellazione dell'intervento verrà effettuata con una chiamata ad ASNS06:
| Dato | Contenuto |
|---|---|
| ASNS06-ID-CHIAMATA | Id chiamata da cancellare |
| ASNS06-TIPO-CANC | "C" |
| ASNS06-FORZA-ACPK | "N" |
Aggiornamento ARPINTES In entrambi i casi, aggiornare ARPINTES:
| Dato | Contenuto |
|---|---|
| ASNS06-FL-ASSEGNATA | " " |
Non è necessario in questo caso incrementare l'id sincro
C.Z - Ripristino intervento/chiamata¶
Questa sezione permette di ricreare la struttura chiamata/intervento dai dati presenti sul WEB. Il ripristino viene effettuato in due fasi: Manca ASNCHTES
| Tabella origine | Tabella destinazione |
|---|---|
| ARPINTES ARPINTES2 |
ASNCHTES |
| ARPCHDET | ASNCHDET |
Manca ASNINTES
| Tabella origine | Tabella destinazione |
|---|---|
| ARPINTES ARPINTES2 |
ASNINTES |
| ARPINTES ARPINTES2 |
ASNINTE2 |
C-Z - Operazioni comuni¶
Importazione cliente Se sulla chiamata da importare abbiamo: * RCIT-ANA = ' ' o 'C00000' * RCIT-NOM-ASS = 0 * RCIT-ID-UTENTE-ANA <> ' ' Significa che la chiamata/intervento è stata acquisita su un cliente nuovo, non ancora importato dal gestionale. Quindi, eseguire una lettura su ARPCLIECOM, per vedere a quale cliente ora risulta associato l'utente che ha creato l'ordine
| Dato | Contenuto |
|---|---|
| A-CLCOM-AZI | Azienda |
| A-CLCOM-ID-UTENTE | RCIT-ID-UTENTE-ANA |
Se il record esiste e A-CLCOM-CLIENTE è significativo, impostare: * RCIT-ANA = A-CLCOM-CLIENTE * RCIT-FL-STAMPA-PDF = " " Se invece non esiste, si dovrà skippare l'elaborazione dell'intervento, perchè si attende che il nuovo cliente venga acquisito dal processo SWN* specifico (non ancora implementato) Controllo matricole Non è necessario un controllo sulle matricole perchè non è possibile attualmente inserire una chiamata/intervento con matricole provvisorie create sul web. B.0.2 - Controllo su elaborazione Jasper Se a questo punto abbiamo configurato la creazione rapportini su JasperReport (swa005-servizio-stampa-intervento = "W") dovremo trovarci in una di queste situazioni: * RCIT-FL-STAMPA-PDF = "A": significa che il processo di preparazione dei rapportini è stato completato * RCIT-FL-STAMPA-PDF = "N": l'intervento è già stato processato e acquisito, ma per qualche motivo viene nuovamente elaborato Se questo flag NON è in una di queste situazioni, l'intervento in esame non dovrà essere acquisito (altrimenti si rischia di importare l'intervento pre-chiuso, un utente lo chiude, e la successiva importazione - che dovrebbe acquisire il rapportino - non avviene). Aggiornamento storico chiamata Ogni evento di importazione sull'intervento deve generare un record su ASNCHSTO:
| Dato | Contenuto |
|---|---|
| ACHS-ID-CHIAMATA | Id chiamata |
| ACHS-PROG | Primo progressivo libero |
| ACHS-OPERAZIONE | In base allo schema successivo |
| ACHS-DES | |
| ACHS-DATA | Data/ora operazione |
| ACHS-ORA | |
| ACHS-OPE | wo-oper |
| ACHS-DES | ACHS-OPERAZIONE | Quando viene effettuato |
|---|---|---|
| Creazione chiamata | CI | Quando ACHT-SITUAZIONE era "Z" prima dell'aggiornamento, e il progressivo intervento è "01" |
| Intervento n. creato | II | Quando ACHT-SITUAZIONE era "Z" prima dell'aggiornamento, e il progressivo intervento è diverso da "01" |
| Intervento n. modificato | IM | Tutti i casi diversi da quelli qui indicati |
| Intervento n. assegnato | IA | Quando nessun tecnico era significativo prima dell'aggiornamento, e dopo l'aggiornamento ce ne è almeno 1 |
| Intervento n. disassegnato | ID | Quando almeno 1 tecnico era significativo prima dell'aggiornamento, e dopo l'aggiornamento non ce ne è nessuno |
| Intervento n. pre-chiuso | IE | Quando ACIT-STATO diventa "P" |
B - Esportazioni¶
Filosofia generale di esportazione Per cercare di ottimizzare l'esportazione, ora ogni programma che effettua un aggiornamento su una o più tabelle afferenti ad un intervento dovrà aggiornare anche il record ASNINTE2, se già non viene fatto. Questo avrà 2 effetti: * Imposta ACIT2-FL-ESPORTATO = " " * Aggiorna data/ora ultimo aggiornamento (le due operazioni vengono effettuate tramite trigger) NB: i programmi che aggiornanto tabelle relative alla chiamata effettueranno l'aggiornamento per tutti gli interventi collegati, anche se chiui. Quindi questo programma potrà analizzare e tentare l'esportazione di tutti gli interventi con data/ora aggiornamento non precedenti all'ultimo memorizzato: in questo modo * si potrà decidere di riesportare agevolmente tutto quello che è stato modificato a partire da una certa data/ora, se necessario * L'esportazione comunque scarterà i record dove il flag di aggiornamento risulta essere già "elaborato" (in questo modo una eventuale esportazione in tempo reale non verrà eseguita nuovamente durante l'esportazione temporizzata) * L'esportazione verrà ignorata, se il programma che ha effettuato l'ultimo aggiornamento è sè stesso SWN037 o SWA005 (verificare) * L'esportazione verrà ignorata, se l'intervento è chiuso e il flag ACIT-FL-WEB-CHIUSE risulta già elaborato (significa che è stata effettuata un'ultima elaborazione direttamente dal programma precedente SWA004 Esportazione intervento cancellato Per trovare in modo puntuale gli interventi cancellati, useremo'a la registrazione di un evento su COGEVLOG Durante l'esportazione verrà controllata la presenza di eventi di cancellazione, che saranno ignorati nel caso in cui l'intervento sia effettivamente presente (quindi se viene ad esempio cancellato/reinserito. Tipi di elaborazione
| AGPRG-KEY | AGPRG-OPE | Cosa fare |
|---|---|---|
| " " | " " | Viene eseguito il ciclo completo di esportazione, compreso il ciclo di ricerca interventi cancellati |
| <> " " | " " | Esportazione di un singolo intervento |
| <> " " | "CANCELLA" | Cancellazione di un singolo intervento |
AGPRG-ESPORTA-TUTTO = 'S' In questo programma questa operazione ha una valenza particolare: permette di tentare l'esportazione di tutti gli interventi non chiusi, a prescindere dalla data/ora ultima modifica. Ogni intervento verrà esportato, come negli altri casi, se ha variazioni rispetto alla versione web. Se si vuole eseguire questa operazione è consigliabile di sospendere l'esecuzione automatica e di effettuare l'esportazione "una-tantum" con questo parametro attivo.
B.1 - Interventi cancellati su Area¶
B.1 - Ricerca interventi cancellati Attraverso una ricerca specifica su COGEVLOG - eventi, viene eseguita una ricerca di tutti gli interventi cancellati. Per ciascuno viene cercato l'intervento su ARPINTES, e marcato come cancellato:
| Nome campo | Contenuto |
|---|---|
| RCIT-FL-CANCELLATO | "S" |
| RCIT-FL-CHIUSO | "1" |
- Scorrere COGEVLOG attraverso EVL-CHIA4, per sapere se ci sono interventi cancellati, impostando:
- EVL-TIP = "001"
- EVL-VISTO = "N"
- Per ciascun record valido trovato:
- Leggere il record ASNINTES impostando:
- RCIT-AZI = azienda corrente
- RCIT-ID-INTERVENTO = EVL-CHIAVE (i primi 12 caratteri)
- Impostare sul record:
- RCIT-FL-CANCELLATO = "S"
- Leggere ARPINTES2 e impostare
- RCIT2-ID-SINCRO = primo ID sincronizzazione disponibile
- Eseguire il punto A.2
- Aggiornare COGEVLOG impostando EVL-VISTO = "S" A.1 - Notifica al cliente A seguito della cancellazione di un intervento, se risulta essere stata cancellata anche la chiamata collegata, deve essere inviata una notifica Quindi, effettuare una lettura su ASNCHTES per verificare se la chiamata è stata effettivamente cancellata: se il record non esiste, creare un record su ARPNOTIFICHE:
- Leggere il record ASNINTES impostando:
| Nome campo | Note |
|---|---|
| ANTP-ID | Campo autoincrementante, non è necessario valorizzarlo |
| ANTP-AZIENDA | Codice azienda |
| ANTP-CLASSE | "E1" |
| ANTP-ID-OGGETTO | Id chiamata in elaborazione |
| ANTP-ID-TECNICO | 0 |
| ANTP-TIP | 3 |
| ANTP-ESITO | 0 |
A.2 - Cancellazione logica produzione Eseguire una query per recuperare tutti i record di produzione collegati ad un intervento:
| Nome campo | Note |
|---|---|
| A-APTN-AZIENDA | Codice azienda |
| A-APTN-ID | Id intervento in elaborazione |
Per ciascun record trovato, eseguire la cancellazione logica:
| Nome campo | Note |
|---|---|
| A-APTN-VAL | "C" |
| A-APTN-ID-SINCRO | Id di sincronizzazione "ARPPRODT" |
B.2 - Esportazione interventi aggiornati¶
Si dovrà leggere APSTATOSYN - Stato sincronizzazione; il record relativo a "ARPINTES". Questa conterrà data/ora di aggiornamento dell'ultimo intervento esportato in precedenza. Si dovranno esportare solo gli interventi inseriti/aggiornati dopo questa data/ora. Ciclo di ricerca Si scorrono i record di ARPINTE2 con data/ora >= ultimo aggiornamento memorizzato. Verranno scartati i record: * Con ACIT2-STATO-ESPORTAZIONE (1:1) = "E" -> Già esportato, probabilmente tramite l'esportazione immediata del singolo intervento * Con ACIT2-DA-PROG = "SWN037" o "SWA005": significa che è appena stato importato/aggiornato da web * Con ACIT-FL-WEB-CHIUSE <> " " -> Intervento chiuso già esportato da SWA004; se fosse stato riaperto e chiuso successivamente, questo flag risulterebbe inizializzato 23-01-2024 Ora escludiamo da questo giro gli interventi chiusi: questo perchè in questo modo possiamo eseguire l'esportazione di questi interventi all'interno della procedura B.3: questo ci permette di rendere questa parte (che è secondaria rispetto alla sincronizzazione degli interventi ancora in essere) indipendente ed eseguibile in un'operazione diversa. Altre condizioni di esclusione Intervento aperto e con RCIT-FL-ASSEGNATA = "M" E' un intervento aggiornato su scheduler. Ora questa condizione rappresenta un conflitto: in questo programma se arrivo qui significa che l'intervento è stato aggiornato da gestionale: quindi lo segnalo come errore critico Intervento di laboratorio Gli interventi di laboratorio per ora non vengono sincronizzati: ACHT-CLASSE = 'L' Se trovato (errore?) verrà eliminato. Elaborazione singolo record Nel caso di aggiornamento di un singolo record, si potranno mantenere comunque le condizioni indicate sopra, perchè quasi sicuramente non saranno valide. Aggiornamento modello certificazione Prima di iniziare, verifico se devo aggiornare il modello di certificazione sulla chiamata: le condizioni sono * Deve essere configurata la gestione certificazioni (gestione-certificazioni = "S") Esecuzione: * Se ACHT-MODELLO-CERT è vuoto, si procede in base alla modalità in cui è configurata la gestione: * modo-applicazione-certificazioni = "A": * si effettua una chiamata a ASNS15 con operazione CERCA-MODELLO * Il valore restituito viene aggiornato su ACHT-MODELLO-CERT * modo-applicazione-certificazioni = "B": * Solo se la chiamata è collegata a contratto, si effettua una chiamata a ASNS15 con operazione CERCA-MODELLO * Il valore restituito viene aggiornato su ACHT-MODELLO-CERT B.2.3 - Estrazione altri dati B.2.3.1 DDT di consegna Per ciascuna chiamata esportata, se il tipo attività è quello configurato in tipo-attivita-consegna verificare l'esistenza di un ddt di consegna collegato, attraverso una lettura su ASNINDMG, dove:
| Nome campo | Formato |
|---|---|
| ACIM-ID-INTERVENTO | Id intervento |
| ACIM-TIP | "N" |
Se esiste, procedere all'esportazione di testata e dettaglio: DDT di consegna: testata Leggere la testata documento COGTESBO presente in ACIM-TES-CHIA3; con i dati qui contenuti creare o modificare il record relativo trovato in APCOGTESBO; i campi saranno riempiti in funzione dell'analogia tra i campi delle due tabelle. DDT di consegna: dettaglio Come prima cosa, attraverso un apposito comando SQL cancellare tutti i record id APCOGMOMAG relativi al documento in elaborazione. Dopodichè scorrere i record COGMOMAG relativi al documento esaminato e riesportarli su APCOGMOMAG, i campi saranno riempiti in funzione dell'analogia tra i campi delle due tabelle.
B.3 - Esportazione interventi chiusi¶
Esportazione massiva Gestiremo una nuova riga su APSTATOSYN, con tabella = "MASSIVO-INT-CHIUSI" Se questa data è > '0001-01-01', allora si dovrà effettuare la riesportazione massiva a partire dalla data indicata di tutti gli interventi chiusi, per motivi di ricalcolo statistico o altri motivi. Questo primo giro non terrà conto del flag ACIT2-FL-ESPORTATO. Questo permetterà l'esportazione massiva. Al termine azzeriamo di nuovo questa data. Esportazione puntuale In questa fase tentiamo di esportare tutti gli interventi chiusi non ancora esportati, ovvero con ACIT2-FL-ESPORTATO = " ", a prescindere dalla data ultima esportazione
Z - Operazioni di supporto¶
Operazioni eseguite per sistemare problematiche che si riscontrano. SUPP-01 - Aggiorno gli interventi "Z" Quando il programma viene lanciato con questo parametro di avvio esegue solamente un ciclo su ASNINTES: scova gli interventi "Z" e li aggiorna, in modo che possano essere poi riesportati nel primo giro standard. Questo si è reso necessario perchè una versione di SWN037 per errore non esportava RCIT-STATO sugli interventi nuovi.
Estratto da documentazione interna ClickUp