Posizione nel menu
Programma non a menu
Linkage section
Nome processo: CONTATTI
Tabella: DFTECNICI - Tabella tecnici
Logica generale
Sincronizzazione dell'anagrafica contatti tra AREA e il DB frontiera.
Per il momento funziona solo in IMPORT
Configurazioni possibili
Gruppo |
Parametro |
Note |
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
Elaborazione
Tipi di segnalazione:
Vedi Tipi di segnalazione
A - Controllo di esecuzione
B - Apertura
B.1 Apertura tabelle
Tentare l'apertura della tabella da sincronizzare: DFTECNICI. Se fallita inviare una Segnalazione grave e chiudere.
Tentare l'apertura della tabella semaforo: DFSEMAFORO. Se fallita inviare una Segnalazione grave e chiudere.
B.2 Blocco semaforo
Lettura del record DFSEMAFORO:
Nome campo |
Note |
DF_SMF_TABELLA |
DFTECNICI |
Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF_SMF_USO_HOST = 1) Informazione sul log e chiudere.
Dopodichè aggiornare il semaforo impostando:
Nome campo |
Note |
DF_SMF_USO_AREA |
1 |
DF_SMF_VERSIONE |
Versione attuale: 1 |
B.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"I" |
DBFST-ATT-DATA |
Data sistema |
DBFST-ATT-ORA |
Ora sistema |
DBFST-SCHED-DATA |
Sommare il tempo di attesa a data/ora sistema |
DBFST-SCHED-ORA |
|
DBFST-ERRORI |
0 |
DBFST-MSG-ERRORE |
" " |
DBFST-LOG-PROCEDURA |
" " |
C - Sincronizzazione (Importazione)
C.1 Selezione record da importare
Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST:
SELECT * FROM dftecnici WHERE df_tec_agg_host = 1
C.2 Controllo record
Per ciascun record letto, verificare la correttezza delle informazioni contenute:
Controllo DF_TEC_KEY_HOST
Questa informazione deve essere significativa, altrimenti segnalare Errore .
Controllo DF_TEC_FOR_KEY_HOST
Non obbligatorio.
Se indicato, dovrà essere collegato ad un fornitore, con una ricerca su COGANAPP.AAP2-CHIA2, impostando
•AAP2-RACCORDO = DF_TEC_FOR_KEY_HOST
Se il raccordo:
➢Esiste: il tecnico dovrà essere collegato al fornitore trovata
➢Non esiste: il fornitore a cui è collegato il tecnico non è stato ancora acquisita: Informazione e skippare: "DF_TEC_KEY_HOST collegato a fornitore non ancora importato : DF_TEC_FOR_KEY_HOST"
Controllo DF_TEC_VAL
Questo campo potrà valere: " " o "C"; se è presente un valore diverso segnalare Errore e skippare: "DF_TEC_KEY_HOST; DF-IND-VAL contiene un valore errato: DF_TEC_VAL"
Se vale "C", marcare come cancellato il tecnico (RIF-VAL = "C") e passare al record successivo
Controllo DF_TEC_AREA_TIP/DF_TEC_AREA_COD
Se queste informazioni sono presenti, significa che il contatto è già codificato; quindi controllare l'esistenza su COGRIFER impostando:
Nome campo |
Contenuto |
RIF-TIP |
DF_TEC_AREA_TIP |
RIF-COD |
DF_TEC_AREA_COD |
Se non esiste, segnalare Errore e skippare: "DF_TEC_KEY_HOST creata ma non trovata: DF_TEC_AREA_TIP/DF_TEC_AREA_COD"
Arrivati a questo punto, se questo controllo è positivo, allora significa che siamo in fase di Variazione. Cercare il record tecnico COGANATN collegato a COGRIFER; il codice host trovato ATN-CODICE-HOST deve corrispondere a DF_TEC_KEY_HOST; altrimenti Errore e skippare: "DF_TEC_KEY_HOST registrato sul tecnico: DF_TEC_AREA_TIP/DF_TEC_AREA_COD ma con codice host diverso"
Se invece le informazioni non sono presenti:
•Se DF_TEC_FOR_KEY_HOST risulta già raccordato ad un tecnico, in base al controllo precedente: significa che l'esportazione da host ha erroneamente ripulito DF_TEC_AREA_TIP/DF_TEC_AREA_COD; Informazione e proseguire: "DF_TEC_KEY_HOST collegato a contatto DF_TEC_AREA_TIP/DF_TEC_AREA_COD ma non ancora raccordato."
Riepilogo casi possibili
DF_TEC_KEY_HOST |
DF_TEC_AREA_TIP/COD |
Situazione |
Non esiste su COGANATN |
In tutti i casi |
Tecnico nuovo: verrà inserito |
Esiste su COGANATN |
Vuoto |
Tecnico già presente su AREA ma non raccordato su DFTECNICI: dovrà essere: 1.raccordato 2.aggiornato su AREA |
Esiste su COGANATN |
Presente, ma non corrisponde |
Situazione anomala: segnalare errore e skippare |
Esiste su COGANATN |
Presente e corrisponde |
Tecnico esistente: verrà aggiornato |
Controllo DF_TEC_NOME
Questo campo dovrà essere significativo, altrimenti segnalare Errore e skippare.
C.3 Importazione record
Se tutti i controlli sono superati, proseguire con l'inserimento/variazione del tecnico.
A seconda dei casi descritti in precedenza, potrebbe essere un inserimento o una variazione.
I record da aggiornare sono:
COGRIFER |
|
Nome campo |
Note |
RIF-TIP |
"C" |
RIF-COD |
•Inserimento: nuovo codice progressivo •Variazione: DF_TEC_AREA_COD |
RIF-ANA-TIP |
Chiave anagrafica raccordata a DF_TEC_FOR_KEY_HOST; se non presente, sarà usato il fornitore interno (AZ-FOR-INT) |
RIF-ANA-COD |
|
RIF-NOME |
DF_TEC_NOME |
RIF-TEL (n) |
DF_TEC_TEL_n |
RIF-MAIL |
DF_TEC_EMAIL |
COGRIFE2 |
|
Nome campo |
Note |
RIF2-TIP |
RIF-TIP |
RIF2-COD |
RIF-COD |
RIF2-NOTE |
" " |
In caso di variazione, gli altri dati rimangono invariati
COGANATN |
|
Nome campo |
Note |
ATN-RIF-TIP |
RIF-TIP |
ATN-RIF-COD |
RIF-COD |
ATN-OPE-COD |
0 |
ATN-CODICE-HOST |
DF-TEC-KEY-HOST |
C.4 Aggiornamento stato record
Aggiornare il record DFTECNICI impostando:
Nome campo |
Contenuto |
DF_TEC_AGG_HOST |
0 |
DF_TEC_AGG_AREA |
0 |
Se necessario dobbiamo anche raccordare il nuovo contatto a questo record, quindi aggiorneremo:
Nome campo |
Contenuto |
DF_TEC_AREA_TIP |
RIF-TIP |
DF_TEC_AREA_COD |
RIF-COD |
DF_TEC_AGG_AREA |
1 |
D - Sincronizzazione (esportazione)
Fase non prevista in questo programma
E - Chiusura
E.1 Rilascio semaforo
Aggiornare il record semaforo relativo a DFTECNICI, impostando
Nome campo |
Note |
DF_SMF_USO_AREA |
0 |
E.2 Chiusura tabelle
Chiudere le tabella DFTECNICI e DFSEMAFORO
E.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"A" |
DBFST-ERRORI |
Numero di errori rilevati |
DBFST-MSG-ERRORE |
Ultimo errore rilevato |
DBFST-LOG-PROCEDURA |
Codice procedura di gestione log |