Vai al contenuto

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:
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