DBF013 - Sincronizzazione dettaglio kit intervento¶
Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune 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 | sincro-attiva | |
| dbfront | email-segnalazioni | |
| dbfront | db-tipo | |
| dbfront | db-conn-string | |
| dbfront | db-log-level | |
| listvend | classe-raggr-sconti |
Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi 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 |
Estratto da documentazione interna ClickUp