Posizione nel menu
Programma non a menu
Linkage section
Nome processo: CONTATTI
Tabella: DFKITINTDET - Kit di intervento - dettaglio
Logica generale
Sincronizzazione del dettaglio kit di intervento tra AREA e il DB frontiera.
Per il momento funziona solo in IMPORT
Configurazioni possibili
Gruppo |
Parametro |
Note |
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
listvend |
|
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: DFKITINTDET. 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 |
DFKITINTDET |
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 DFKITINTDET WHERE DF_KITD_AGG_HOST = 1
C.2 Controllo record
Per ciascun record letto, verificare la correttezza delle informazioni contenute
Controllo DF_KITD_KEY_KIT_HOST
Codice kit: deve corrispondere ad un kit presente su DFKITINTTES, e già collegato ad un kit acquisito sul gestionale:
Cercare l'esistenza su DFKITINTTES di un record avente DF_KITT_KEY_HOST = DF_KITD_KEY_KIT_HOST: se non esiste, segnalare Errore: "Record DF_KITD_KEY; Il kit DF_KITD_KEY_KIT_HOST non esiste su DFKEYKITINT"
Quindi cercare l'esistenza su ASNMTRPD, usando la chiave primaria, di un record avente:
Nome campo |
Note |
AMPD-TIPO |
"K" |
AMPD-CODICE |
DF_KITT_KEY_AREA |
AMPD-PROG |
0 |
Se trovato, AMPD-CODICE è il codice kit su cui dovremo aggiornare questa voce;
se non trovato, segnalare Informazione sul log: "Record DF_KITD_KEY; Il kit DF_KITD_KEY_KIT_HOST non è stato ancora importato"
Controllo DF_KITD_MPR_KEY_HOST
Campo obbligatorio. deve corrispondere ad una merce già importata.
Quindi, come prima cosa cercare l'esistenza della voce DF_KITD_MPR_KEY_HOST su DFMERCIPREST attraverso DF_MPR_KEY_HOST. Se non trovato, segnalare Errore: "Record DF_KITD_KEY; merce host DF_KITD_MPR_KEY_HOST non esistente su DFMERCIPREST"
Se esiste, dovrà essere collegata ad una merce del gestionale: DF_MPR_KEY_AREA dovrà essere significativo ed esistente su COGMERCI; altrimenti segnalare Informazione sul log: "Record DF_KITD_KEY; la merce DF_KITD_MPR_KEY_HOST non è stata ancora importata"
Controllo DF_KITD_VAL
Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "Record DF_KITD_KEY con DF_KITD_VAL errato: DF_KITD_VAL".
C.3 Importazione record
Se tutti i controlli sono superati, proseguire con l'inserimento/variazione del dettaglio kit, a seconda dei controlli precedenti.
C.3.1 Cancellazione
Nel caso in cui DF_KITD_VAL = 'C' è necessario cercare e cancellare un record su ASNMTRPD:
Nome campo |
Note |
AMPD-TIPO |
"K" |
AMPD-CODICE |
DF_KITT_KEY_AREA |
AMPD-PROG |
DF_KITD_PROG |
Nel caso in cui il record non esiste, Informazione sul log.: "richiesta cancellazione di un dettaglio non esistente: 'AMPD-CHIA1'"
C.3.2 Inserimento/aggiornamento
Cercare l'esistenza di un record su ASNMTRPD, come descritto sopra per il punto C.3.1.
In questo caso se il record non esiste, verrà inserito.
Poi aggiornare i dati:
Nome campo |
Contenuto |
AMPD-PRESTAZIONE |
DF_KITD_MPR_AREA |
AMPD-QTA |
DF_KITD_QTA |
AMPD-FL-VAL |
"S" |
AMPD-FL-VISIBILE |
"S" |
C.4 Aggiornamento stato record
Aggiornare il record DFKITINTDET impostando:
Nome campo |
Contenuto |
DF_KITD_AGG_HOST |
0 |
DF_KITD_AGG_AREA |
0 |
D - Sincronizzazione (esportazione)
Fase non prevista in questo programma
E - Chiusura
E.1 Rilascio semaforo
Aggiornare il record semaforo relativo a DFKITINTDET, impostando
Nome campo |
Note |
DF_SMF_USO_AREA |
0 |
E.2 Chiusura tabelle
Chiudere le tabella DFKITINTDET 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 |