B - Ricerca interventi aperti

Navigation:  »No topics above this level«

B - Ricerca interventi aperti

Return to chapter overview

B - Ricerca interventi aperti

 

Si dovrà leggere APSTATOSYN - Stato sincronizzazione; il record relativo a "ARPINTES-APERTI". Questa conterrà data/ora di aggiornamento dell'ultimo intervento esportato in precedenza. Si dovranno esportare solo gli interventi inseriti/aggiornati dopo questa data/ora.

 

Ricerca su ASNINTES - Intervento; testata, attraverso ACIT-CHIA6.

 

Vengono esaminati solo gli interventi:

Aperti (ACIT-STATO = "A", oppure ACIT-STATO = " ")

Assegnati o non assegnati (quindi ora non va più effettuato il controllo su ACIT-ASS-DATA e/o ACIT-TECNICO)

Non ancora assegnati su scheduler (quindi se RCIT-STATO = "M" vanno ignorati)

Se non cancellati logicamente, non devono essere esportati (è successo che un intervento eseguito è stato cancellato. La fase di cancellazione marca l'intervento su KPN solo come cancellato e lascia il resto invariato); quindi se

oRCIT-FL-ESEGUITA = "S"

oRCIT-FL-CANCELLATA <> "S"

  l'intervento viene scartato (non esportato)

Interventi su chiamate esterne (ACHT-CLASSE <> "L") -> gli eventuali interventi trovati su KPN che sono di tipo "laboratorio" verranno eliminati da KPN (B.1 elimina intervento)

Data/ora aggiornamento superiore a data/ora ultimo intervento esportato

 

B.0.1 - Caso particolare - Interventi creati su APP

 

Se è stato importato un intervento creato da APP, avremo un intervento dove:

ARPINTES.RCIT-FL-AREAGATE = "2"

ASNINTES.ACIT-DA-PROG = "SWA005"

 

Se stiamo esportando un intervento in questa condizione, non dovrà essere riesportato: altrimenti la seguente catena di eventi:

1.Chiusura intervento su APP e successiva pre-chiusura su ARPINTES

2.Esportazione interventi aperti (SWA004)

3.Importazione interventi chiusi

non potrebbe importare l'intervento perchè al punto 2 viene riaggiornato come aperto.

 

Intervento valido

 

Per ciascun intervento valido viene eseguita l'elaborazione:

oB.1. Elimina intervento

oB.2 Estrazione intervento

oB.3 Estrazione altri dati

oB.4 Estrazione galleria immagini

 

B.1 - Elimina intervento

 

Come prima cosa si salva il flag RCIT-FL-MYSQL dell'intervento da cancellare. Si predispone anche in campo di comodo che servirà a fare in modo che, in caso di successiva estrazione intervento, il campo RCIT-FL-CHIUSO viene impostato a "1"

 

Poi si esegue:

 

Cancellazione di ARPINTEC - Tecnici x intervento

Cancellazione logica di tutti i record su ARPCHDET - Matricole su chiamata, impostando RCHT-VAL = "C"

 

B.2 - Estrazione intervento

 

ARPINTES

 

Nome campo

Contenuto

RCIT-AZI

Azienda

RCIT-ID

Id intervento

RCIT-ASS-DATA

RCIT-ASS-ORA

Data/ora assegnazione

RCIT-ESEC-DATA

RCIT-ESEC-ORA

ACIT-INT-DATA

ACIT-INT-ORA

RCIT-ID-CHIAMATA

Id chiamata

RCIT-ANA

Cliente assistito della chiamata

RCIT-PRIORITA

ACHT-PRIORITA

RCIT-TIPO-INTERVENTO

ACIT-TIPO-INTERVENTO

RCIT-INDIRIZZO-INTERVENTO

Indirizzo completo eventuale destinazione diversa

RCIT-CHIAMATA-CLI

ACHT-CHIAMATA-CLI

RCIT-FL-RISOLUTIVO

"N"

RCIT-FL-TRASFERTA

"N"

RCIT-TARGA

ACIT-TARGA

RCIT-DESCRIZIONE

ACIT-NOTE (Note intervento)

RCIT-NOTE-INTERNE

Note interne intervento (da ASNINDAG.AITD-NOTE)

RCIT-NOTE-TECNICO

" "

RCIT-FL-AGGIORNATO

"S"

RCIT-FL-ESEGUITA

"N"

RCIT-VIAGGIO-KM

0

RCIT-VIAGGIO-ORE

0

RCIT-FL-CANCELLATO

"N"

RCIT-CHIAMATA-DATA

RCIT-CHIAMATA-ORA

Data/ora chiamata

RCIT-OGGETTO

Oggetto chiamata

RCIT-CHIAMATA-DES

Descrizione chiamata

RCIT-FL-CONTRATTO

ACHT-FL-CONTRATTO

RCIT-SCADENZA-DATA

RCIT-SCADENZA-ORA

Data/ora scadenza chiamata

RCIT-CONTATTO-1

Contatto citato sulla chiamata

RCIT-FL-MYSQL

Viene impostato a:

Valore precedente del campo, in fase di esportazione interventi aperti (B)

"0": in esportazione chiamate fittizie

RCIT-FL-CHIUSO

"1": in fase di esportazione interventi aperti (B)

"0": tutti gli altri casi

RCIT-FL-CHIUSA

" "

RCIT-STATO

Stato intervento

RCIT-SPOSTABILE

ACIT-FL-SPOSTABILE

RCIT-FL-ASSEGNATA

"N"

RCIT-ID-TECNICO-ORIG

Primo tecnico assegnato alla chiamata

RCIT-FL-FAT

ACHT-FL-FAT

RCIT-FL-STA-RAP

ACHT-FL-STA-RAP

RCIT-FL-STA-CERT

ACHT-FL-STA-CERT

RCIT-PRESENZA-PREVENTIVO

ACHT-PRESENZA-PREV

RCIT-MODELLO-CERT

ACHT-MODELLO-CERT

RCIT-AGENTE

ACHT-AGENTE

RCIT-DST

ACIT-DST

RCIT-MAG-DEFAULT

ACIT-MAG

RCIT-TIP-ATT

ACHT-TIP-ATT

RCIT-DDT-CNS*

Eventuale chiave documento di consegna collegato all'intervento, in caso di intervento di consegna

In questo caso il contenuto del ddt verrà esportato su APCOGTESBO/APCOGMOMAG

RCIT-FL-AREAGATE

ACHT-FL-AREAGATE

RCIT-PROVENIENZA

ACHT-PROVENIENZA

RCIT-UTE-AG-COD

ACIT-UTE-AG-ANA

RCIT-NOM-ASS

ACHT-NOM-ASS

 

ARPINTES2

 

Nome campo

Contenuto

RCIT2-AZI

Azienda

RCIT2-ID

Id intervento

RCIT2-NOTE-FATTURA

 

RCIT2-IMP-FRANCHIGIA

 

RCIT2-RIF-CHI-PORTALE

 

RCIT2-RIF-PTO-VENDITA

 

RCIT2-COMMESSA

 

RCIT2-SOTTOCOM

 

RCIT2-ID-OPE-CHIAMATA

ACHT-OPERATORE

RCIT2-ID-SINCRO

Primo ID sincronizzazione disponibile

RCIT2-AREA-TECNICA

ACHT-AREA-TECNICA

RCIT2-RESPONSABILE

ACHT-RESPONSABILE

RCIT2-MAG-TIP

ACIT2-MAG-TIP

RCIT2-MAG-SEC

ACIT2-MAG-SEC

RCIT2-GRP-AZ-ESE

ACHT-GRP-AZ-ESE

RCIT2-GRP-AZ-APP

ACHT-GRP-AZ-APP

RCIT2-BRAND

ACHT-BRAND

RCIT2-AVVISA-CLIENTE

ACHT-AVVISA-CLIENTE

RCIT2-CNT-TIP

ACHT-CNT-TIP

RCIT2-CNT-COD

ACHT-CNT-COD

 

B.2.1 - Verifica esistenza cliente

 

E' necessario verificare se il cliente relativo alla chiamata esiste sul db Web;

 

B.2.1.1 - Verifica esistenza cliente standard

Se RCIT-ANA è significativo, cercare l'esistenza su ARPANAGR; se non esiste eseguire una chiamata a SWA031 per l'inserimento/aggiornamento:

 

Nome campo

Contenuto

UTILSWA031-OPE

"ESPORTA-CLIENTE"

UTILSWA031-CLI

Il codice cliente da aggiornare

Quindi se ad esempio RCIT-ANA vale "C00123", il codice cliente sarà 123

Vedi anche COGE08C

 

B.2.1.2 - Verifica esistenza cliente potenziale

Se RCIT-NOM-ASS è significativo, cercare l'esistenza su APCRMANAGR; se non esiste eseguire una chiamata a SWA013 per l'inserimento/aggiornamento:

 

Nome campo

Contenuto

SWA013-OPE

"ESPORTA-NOM"

SWA013-NOM

RCIT-NOM-ASS

 

B.2.2 - Verifiche su altre tabelle secondarie

 

Per ciascuno dei seguenti campi è necessario controllare l'esistenza del record relativo sulla tabella di destinazione, e se necessario al termine dell'operazione (quindi di tutti gli interventi esportati) eseguire una-tantum il programma indicato:

 

Campo da controllare

Tabella su cui controllare

Programma da eseguire

RCIT-STATO-CHIAMATA

ARPSTCHM

SWA026

RCIT-PRIORITA

ARPPRIOR

SWA066

RCIT-TIP-ATT

ARPTPATT

SWA066

RCIT2-AREA-TECNICA

ARPAREAT

SWA025

 

In seguito viene eseguita l'operazione B.3 estrazione altri dati

 

B.3 - Estrazione altri dati

 

Per l'intervento in corso:

 

Esportazione ASNCHDET su ARPCHDET

oSe il record esiste, aggiornarlo togliendo il flag di cancellazione logica RCHT-VAL

Prestazioni previste:

oCancellazione ARPCHPRP

oEsportazione delle prestazioni previste non ancora evase su ARPCHPRP, con l'ausilio di ASNS16 - Ricerca prestazioni/materiali non evasi su chiamata

oPer ciascuna riga valida si valorizzerà anche:

RCHP-PREZZO-PREVENTIVO: se presente un preventivo collegato alla chiamata, qui verrà inserito il prezzo netto trovato sul preventivo a parità di merce

RCHP-IVA-COD, RCHP-IVA-ALI: da RA2-IVA-COD e la relativa aliquota trovata nella tabella

Esportazione tecnici su ARPINTEC:

oSe la chiamata non è assegnata (ACIT-TECNICO (1) = 0), il record ARPINTEC va creato comunque anche se con i tutti i tecnici = 0.

 

B.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.2 Notifiche push

 

Prima e durante l'aggiornamento di ARPINTES e ARPINTEC di un intervento, salvarsi i dati per capire se è stata effettuata una modifica che necessita dell'invio di una notifica.

 

Il caso più complesso che potrebbe succedere è il seguente:

 

Prima della modifica, ARPINTEC conteneva:

RCIN-ID-TECNICO1

RCIN-ID-TECNICO2

RCIN-ID-TECNICO3

....

10

15

 

 

 

Dopo la modifica, ARPINTEC contiene:

RCIN-ID-TECNICO1

RCIN-ID-TECNICO2

RCIN-ID-TECNICO3

....

15

18

 

 

 

In questo caso i tecnici a cui inviare le notifiche sono 3:

 

Tecnico (prima)

Tecnico (dopo)

Operazione

10

0

Tecnico rimosso

15

15

Tecnico rimasto sull'intervento (invariato)

0

18

Tecnico aggiunto

 

Quindi, per ciascun tecnico interessato all'intervento, vediamo i casi possibili:

 

RCIT-DATA-ASS

RCIT-ORA-ASS

(prima)

RCIT-DATA-ASS

RCIT-ORA-ASS

(dopo)

Stato tecnico

Operazione

Tipo notifica

vuoto

Non vuoto

Aggiunto

L'intervento è stato assegnato al tecnico

1

vuoto

Non vuoto

Invariato

Il tecnico era già stato preassegnato, ora gli è stata attribuita una data; di fatto è una nuova assegnazione

1

Non vuoto

Non vuoto (data-ora diverse)

Aggiunto

E' stata cambiata la data/ora assegnazione, e il tecnico è stato aggiunto; di fatto è una nuova assegnazione

1

Non vuoto

Non vuoto (stessa data-ora)

Aggiunto

Data/ora assegnazione sono rimaste le stesse, e il tecnico è stato aggiunto; di fatto è una nuova assegnazione

1

vuoto

vuoto

Rimosso

Questa sitazione, riguarda il caso in cui il tecnico era preassegnato, ma la data non era stata definita. Il tecnico viene tolto dalla preassegnazione, ma non è necessaria nessuna notifica

Nessuna

Non vuoto

Non vuoto

Rimosso

Qualunque altra situazione in cui il tecnico viene rimosso, necessita di una notifica "Assegnazione rimossa"

3

vuoto

vuoto

Invariato

Non è stata effettuata nessuna modifica all'assegnazione: nessuna notifica

Nessuna

Non vuoto

vuoto

Invariato

E' stata tolta la data assegnazione, ma il tecnico è rimasto: corrisponde ad una assegnazione rimossa

3

Non vuoto

Non vuoto (data-ora diverse)

Invariato

E' stata modificata la data assegnazione, ma il tecnico è rimasto: corrisponde ad una assegnazione modificata

2

 

in tutti gli altri casi non descritti, non deve essere inviata nessuna notifica.

 

B.3.2.1 Creazione notifica

 

La creazione di una notifica corrisponde all'inserimento di un record sulla tabella ARPNOTIFICHE (un servizio sul server WEB si preoccupa di leggere questa tabella e inviare realmente le notifiche):

 

Nome campo

Note

ANTP-ID

Campo autoincrementante, non è necessario valorizzarlo

ANTP-AZIENDA

Codice azienda

ANTP-CLASSE

"AI"

ANTP-ID-OGGETTO

Id intervento in elaborazione

ANTP-ID-TECNICO

Codice tecnico interessato

ANTP-TIP

Vedi Tipo notifica nella tabella sopra

ANTP-ESITO

0

 

Quindi per ciascun intervento potrà essere necessario creare più record, a seconda delle situazioni descritte sopra.

 

B.3.3 Notifiche per inserimento nuova chiamata

 

Questa operazione va effettuata solo quando si esporta una nuova chiamata non programmata: escludere quindi:

le chiamate con ACHT-PROVENIENZA = chiamate-programmate-provenienza

gli interventi "non nuovi" (per i quali non si sta effettuando un inserimento ma un aggiornamento)

gli interventi successivi al primo: quindi quelli il cui codice non finisce per "01"

 

Per ciascun intervento che viene considerato eseguire direttamente la creazione della notifica con l'inserimento di un record sulla tabella ARPNOTIFICHE:

 

Nome campo

Note

ANTP-ID

Campo autoincrementante, non è necessario valorizzarlo

ANTP-AZIENDA

Codice azienda

ANTP-CLASSE

"AI"

ANTP-ID-OGGETTO

Id intervento in elaborazione

ANTP-ID-TECNICO

0

ANTP-TIP

4

ANTP-ESITO

0

 

 

 

B.4 - Estrazione galleria immagini

 

B.4.1 - Azzeramento flag "aggiornato"

 

Eseguire un comando SQL con cui aggiornare tutti i record relativi alla chiamata in elaborazione in corso:

Nome campo

Note

RCHIMG-AZI

Codice azienda

RCHIMG-ID

RCIT-ID-CHIAMATA

 

Lo scopo è di predisporre i flag sulla galleria immagini per capire se ci sono immagini cancellate.

 

In pratica il comando SQL corrisponde a

"UPDATE arpchimg SET rchimg_area_fl_agg = 'N', rchimg_area_fl_canc = ' ' WHERE rchimg_azi = azienda AND rchimg_id = rcit_id_chiamata"

 

B.4.2 - Controllo ed esportazione allegati

 

Scorrere tutti i record di COGIMAGE attraverso IMG-CHIA2 aventi

oIMG-TIP-DOC = "A2"

oIMG-DC-A2-KEY = RCIT-ID-CHIAMATA

oIMG-DC-A2-TIP = "IM"

Per ciascun record leggere il corrispondente record COGARIDX su ARX-CHIA2, impostando:

oARX-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)

 

Quindi se il record esiste e:

oRCHIMG-AREA-AGG-DATA = ARX-DA-DATA

oRCHIMG-AREA-AGG-ORA = ARX-DA-ORA

Significa che l'allegato è già presente e aggiornato, quindi impostare RCHIMG-AREA-FL-AGG = "S" e leggere il prossimo record

 

Altrimenti proseguire: estrazione documento: chiamata a COGU06 con i parametri:

 

Dato

Descrizione

U06-OPE

"Estrai-da-doc"

U06-FL-INTERNO

"D"

U06-TIP-DOC

"A2"

U06-DOC-COGE

IMG-DOC-COGE

 

A questo punto sarà presente un file nella cartella EXT-TMP-DIR con nome U06-FILE

 

inserimento/aggiornamento record su ARPCHIMG:

 

 

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

U06-FILE

RCHIMG-AREA-AGG-DATA

ARX-DA-DATA

RCHIMG-AREA-AGG-ORA

ARX-DA-TIME

RCHIMG-AREA-FL-AGG

"S"

 


 

Trasferimento file sul server WEB, usando la subroutine di trasferimento FTP già usata per gli allegati di Assist, vedi SWA005:

oDA: EXT-TMP-DIR/U06-FILE

oA: vedi SWA005

 

  N.B.   configurare la seguente nuova configurazione con i parametri del server FTP e le path come quelle di SWA005:

            "areaapp"   - "swa004-codice-server-ftp" vedere anche le cfg previste per swa024

 "ass-chiam" esporta-galleria-chiamata" = S

 

 

B.4.3 - Controllo allegati non presenti sul gestionale

 

Eseguire un comando SQL con cui marcare come cancellati tutti i record relativi alla chiamata in elaborazione in corso non aggiornati

 

in pratica il comando SQL corrisponde a

"UPDATE arpchimg SET rchimg_area_fl_canc = 'C' WHERE rchimg_azi = azienda AND rchimg_id = rcit_id_chiamata AND rchimg_area_fl_agg = 'N'"

 

B.5 - Geomapping dei nuovi clienti/nominativi

 

Se durante l'elaborazione è stata effettuata l'esportazione di un cliente o prospect, si dovrà effettuare una chiamata a BROWSER, impostando:

Nome campo

Note

BRWS-OPE

"OPEN-PAGINA"

BRWS-PAGINA

https://kpngate.es2000.it/coordinate/geocoding_prospect.php?azienda=Cnnnnn