Vai al contenuto

DBF006 - Sincronizzazione testata gruppi sconto

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. * Se 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." * Se 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:


Variazione

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

Estratto da documentazione interna ClickUp