Posizione nel menu
Programma non a menu
Linkage section
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 |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
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: 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 |