DBF013 - Sincronizzazione dettaglio kit intervento

Navigation:  »No topics above this level«

DBF013 - Sincronizzazione dettaglio kit intervento

Return to chapter overview

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