DBF006 - Sincronizzazione testata gruppi sconto

Navigation:  »No topics above this level«

DBF006 - Sincronizzazione testata gruppi sconto

Return to chapter overview

Posizione nel menu

Programma non a menu

 

Linkage section

 

UTILDBFPRG - Linkage comune

 

Nome processo: CONTATTI

 

Tabella: DFGRUPPISCONTO - Gruppi sconto

 

Logica generale

 

Sincronizzazione delle definizione gruppi di sconto 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

 

 

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: DFGRUPPISCONTO. 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

DFGRUPPISCONTO

 

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 DFGRUPPISCONTO WHERE DF_GSC_AGG_HOST = 1

 

C.2 Controllo record

 

Per ciascun record letto, verificare la correttezza delle informazioni contenute

 

NB: i controlli possono essere diversi a seconda del tipo di gruppo sconto:

"C": il gruppo sconto corrisponde ad un insieme di sconti particolari per cliente

"G": il gruppo sconto corrisponde ad un gruppo sconto vero e proprio

 

Controllo DF_GSC_TIP

Questa informazione deve valere "G" o "C", altrimenti segnalare Errore: "DF_GSC_KEY; DF_GSC_TIP errato: DF_GSC_TIP".

 

Controllo DF_GSC_KEY_HOST

Questa informazione deve essere significativa, altrimenti segnalare Errore

Se DF_GSC_TIP vale "C": non si fanno altri controlli

Se DF_GSC_TIP vale "G"/"P": potrebbe corrispondere ad un gruppo sconto nuovo o già esistente su AREA. Cercare la presenza in COGGRSCT usando GST-CHIA2, nel campo GST-CODICE-HOST.

oSe trovato, allora il gruppo sconto è già presente: DF_GSC_AREA_GRUPPO dovrà corrispondere a GST-COD; altrimenti segnalare Errore: "DF_GSC_KEY; DF_GSC_KEY_HOST raccordato ad un altro gruppo sconto: GST-COD."

oSe non trovato, il gruppo sconto è nuovo e quindi andrà inserito. in questo caso quindi DF_GSC_AREA_GRUPPO dovrà essere vuoto, altrimenti segnalare Errore "DF_GSC_KEY; DF_GSC_KEY_HOST nuovo ma contiene già il riferimento ad un gruppo sconto: DF_GSC_AREA_GRUPPO."

 

Controllo DF_GSC_ANA_HOST

Se DF_GSC_TIP vale "C"

DF_GSC_ANA_HOST deve essere significativa; se non lo è segnalare Errore.

Deve corrispondere ad un cliente già raccordato; quindi eseguire la ricerca su COGANAP2 su AAP2-RACCORDO.

Se non trovato, segnalare Errore e skippare: "DF_GSC_KEY: il cliente DF_GSC_ANA_HOST non è ancora acquisito.

Se DF_GST_TIP vale "G"/"P"

Il campo deve essere vuoto.

 

Controllo DF_GSC_VAL

Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_GSC_KEY_HOST con DF_GSC_VAL errato: DF_GSC_VAL".

 

C.3 Importazione record

 

Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della testata gruppo sconto, a seconda dei controlli precedenti.

 

I dati da aggiornare sono

 

COGGRSCT:

 

Nome campo

Contenuto

GST-TIP

DF_GSC_TIP

GST-COD

Inserimento:

o"G"/"P": i primi 5 caratteri di DF_GSC_KEY_HOST; se già esistente, modificare il codice cambiando l'ultimo carattere (tentando di attribuire un codice numerico ad esempio sull'ultima cifra)

o"C": il codice cliente "AREA"

Variazione: il codice trovato durante i controlli

GST-DES

DF_GSC_DES

GST-VAL

DF_GSC_VAL

GST-DATA-DA

0

GST-DATA-A

0

GST-CODICE-HOST

DF_GSC_KEY_HOST

NB: in questo caso questo raccordo potrebbe variare di volta in volta, se su DFGRUPPISCONTO sono presenti più gruppi sconto "cliente" collegati allo  stesso cliente

In ogni caso DBF007 ne terrà conto in fase di importazione

Vedi Pieri, tabella DFGRUPPISCONTO, i gruppi sconto dove df_gsc_key_host like "%22566%"

 

 

COGSCONT:

Solo se il tipo è "G":

Nome campo

Note

SCC-TIP

"G"

SCC-GRUPPO-SCONTO

GST-COD

SCC-MERCE

k-merce-null

 

 

C.4 Controllo testate non più esistenti

Per eliminare problemi residui, verifichiamo se esistono testate di sconti cliente non più esistenti sul DBF.

 

Si scorre COGGRSCT, per tutti i record ancora validi (GST-VAL <> "C")

 

La testata deve esistere su DFGRUPPISCONTO, altrimenti il record viene marcato come cancellato.

 

Inoltre, in funzione del tipo viene cercato il dettaglio:

 

C.4.1 GST-TIP = "C"

Sconti per cliente: si cerca l'esistenza di un record collegato su COGSCONT:

 

Nome campo

Contenuto

SCC-TIP

"A"

SCC-ANA

GST-COD

se non ne esiste almeno 1 valido, viene impostato come cancellato anche qui

 

C.4.2 GST-TIP = "G"

Gruppi sconto: si cerca l'esistenza di un record collegato su COGSCONT:

Nome campo

Contenuto

SCC-TIP

"G"

SCC-ANA

vuoto

SCC-GRUPPO-SCONTO

GST-COD

se non ne esiste almeno 1 valido, viene impostato come cancellato anche qui

 

C.4.3 GST-TIP = "P"

Promozioni: si cerca l'esistenza di un record collegato su COGGRSCD:

Nome campo

Contenuto

GSCD-TIP

"P"

GSCD-COD

GST-COD

se non ne esiste almeno 1 valido, viene impostato come cancellato anche qui

 

C.5 Aggiornamento stato record

 

Aggiornare il record DFGRUPPISCONTO impostando:

 

Nome campo

Contenuto

DF_GSC_AGG_HOST

0

DF_GSC_AGG_AREA

0

 

In caso di inserimento nuovo record:

Memorizzare il collegamento con il nuovo gruppo:

Nome campo

Contenuto

DF_GSC_AREA_GRUPPO

GST-COD

DF_GSC_AGG_AREA

1

 

 

D - Sincronizzazione (esportazione)

Fase non prevista in questo programma

 

E - Chiusura

 

E.1 Rilascio semaforo

 

Aggiornare il record semaforo relativo a DFGRUPPISCONTO, impostando

 

Nome campo

Note

DF_SMF_USO_AREA

0

 

E.2 Chiusura tabelle

 

Chiudere le tabella DFGRUPPOSCONTO 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