Controllo coerenza dati | |||
|
Nome programma: BS--CKDB.DLL
Moduli richiesti: Qualsiasi
Con l'utilizzo di questo programma è possibile effettuare dei controlli di coerenza sui dati di Business, per individuare eventuali anomalie sui dati che potrebbero provocare dei comportamenti errati in Business.
Nella maschera sono presenti diversi tipi di controlli ciascuno con un codice ed una descrizione, che spiegano la verifica effettuata sui dati. Per selezionare uno o più controlli occorre spuntare le relative caselle presenti sulla lista della maschera.
Una volta spuntato i controlli da effettuare occorre lanciare l'elaborazione tramite l'apposito tasto. Al termine dell'elaborazione viene aperto un file di log che mostra il risultato delle verifiche effettuate sui dati di Business. Esempio:
--------------------------------------------------------------------
BS--CKDB Versione 14.00.0046
Controllo coerenza dati
Log avviato il 27/11/2008 10.03.32
--------------------------------------------------------------------
Esecuzione controllo [00010]: Listini: violazione della chiave primaria logica.
Sono presenti 7 record di listini con la stessa chiave: ditta PROVA, articolo RCSM1, lavorazione 0, conto 0, valuta 0, promozione 0, listino 2, data aggiornamento 29/07/2008, da quantità 0, unità di misura N, fase 0, casella.
Sono presenti 7 record di listini con la stessa chiave: ditta PROVA, articolo RCSM1, lavorazione 0, conto 0, valuta 0, promozione 0, listino 3, data aggiornamento 29/07/2008, da quantità 0, unità di misura N, fase 0, casella.
Sono presenti 7 record di listini con la stessa chiave: ditta PROVA, articolo RCSM1, lavorazione 0, conto 0, valuta 0, promozione 0, listino 4, data aggiornamento 29/07/2008, da quantità 0, unità di misura N, fase 0, casella.
Esecuzione controllo [00010] terminata con i 3 messaggi sopra indicati.
--------------------------------------------------------------------
Esecuzione controllo [00011]: Listini: presenza di record su cod. root di articoli a varianti con prezzi sui dettagli variante o sulla 1. variante
Esecuzione controllo [00011] terminata con successo.
--------------------------------------------------------------------
Esecuzione controllo [00012]: Listini: presenza di record su dettaglio variante per articoli a varianti con prezzi comuni
Esecuzione controllo [00012] terminata con successo.
--------------------------------------------------------------------
Esecuzione controllo [00013]: Listini: presenza di record su dettaglio variante per articoli a varianti con prezzi sulla 1. variante
Esecuzione controllo [00013] terminata con successo.
--------------------------------------------------------------------
Esecuzione controllo [00014]: Listini: presenza di record su unità di misura non ammesse in anagrafica articoli
Esecuzione controllo [00014] terminata con successo.
--------------------------------------------------------------------
Log terminato il 27/11/2008 10.03.32
--------------------------------------------------------------------
All'interno del file di log per ogni controllo effettuato con successo vi è
una riga di inizio (Esecuzione controllo [00012]: Listini: presenza di
record su dettaglio variante per articoli a varianti con prezzi comuni
) e
una di fine (Esecuzione controllo [00012] terminata con successo.
),
altrimenti per i controlli che rilevano incoerenze sui dati fra la riga iniziale
e finale vengono inserite le righe di dettaglio degli errori rilevati.
Il file di log viene creato sotto la directory di installazione di Business
con il nome
Bs--ckdb_NomeOperatore_AnnoMeseGiornoOraMinutiSecondi.log
(esempio: Bs--ckdb_admin_20081127100332.log
).
Spuntando la casella "Mostra query eseguite nel file di LOG" nel file di log, subito dopo la riga di inizio di ogni controllo selezionato viene inserita una riga aggiuntiva che mostra la query effettuata sul database. Esempio:
--------------------------------------------------------------------
BS--CKDB Versione 14.00.0046
Controllo coerenza dati
Log avviato il 27/11/2008 10.17.10
--------------------------------------------------------------------
Esecuzione controllo [00010]: Listini: violazione della chiave primaria logica.
Controllo [00010]: Query eseguita:SELECT codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase, Count(codditt) AS NumDuplicati, lc_codcas FROM listini GROUP BY codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase, lc_codcas HAVING Count(codditt)>1
Sono presenti 7 record di listini con la stessa chiave: ditta PROVA, articolo RCSM1, lavorazione 0, conto 0, valuta 0, promozione 0, listino 2, data aggiornamento 29/07/2008, da quantità 0, unità di misura N, fase 0, casella.
Sono presenti 7 record di listini con la stessa chiave: ditta PROVA, articolo RCSM1, lavorazione 0, conto 0, valuta 0, promozione 0, listino 3, data aggiornamento 29/07/2008, da quantità 0, unità di misura N, fase 0, casella.
Sono presenti 7 record di listini con la stessa chiave: ditta PROVA, articolo RCSM1, lavorazione 0, conto 0, valuta 0, promozione 0, listino 4, data aggiornamento 29/07/2008, da quantità 0, unità di misura N, fase 0, casella.
Esecuzione controllo [00010] terminata con i 3 messaggi sopra indicati.
--------------------------------------------------------------------
Esecuzione controllo [00011]: Listini: presenza di record su cod. root di articoli a varianti con prezzi sui dettagli variante o sulla 1. variante
Controllo [00011]: Query eseguita:SELECT listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase FROM listini INNER JOIN artico ON listini.codditt = artico.codditt AND listini.lc_codart = artico.ar_codart WHERE artico.ar_gesvar = 'S' AND artico.ar_codroot IS NULL AND (artico.ar_prevar = 'S' OR artico.ar_prevar = '1') ORDER BY listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase
Esecuzione controllo [00011] terminata con successo.
--------------------------------------------------------------------
Esecuzione controllo [00012]: Listini: presenza di record su dettaglio variante per articoli a varianti con prezzi comuni
Controllo [00012]: Query eseguita:SELECT listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase FROM listini INNER JOIN artico ON listini.codditt = artico.codditt AND listini.lc_codart = artico.ar_codart WHERE artico.ar_gesvar = 'S' AND artico.ar_codroot IS NOT NULL AND artico.ar_prevar = 'N' ORDER BY listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase
Esecuzione controllo [00012] terminata con successo.
--------------------------------------------------------------------
Esecuzione controllo [00013]: Listini: presenza di record su dettaglio variante per articoli a varianti con prezzi sulla 1. variante
Controllo [00013]: Query eseguita:SELECT listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase FROM listini INNER JOIN artico ON listini.codditt = artico.codditt AND listini.lc_codart = artico.ar_codart WHERE artico.ar_gesvar = 'S' AND artico.ar_prevar = '1' AND lc_codart <> ar_codroot + ar_codvar1 ORDER BY listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase
Esecuzione controllo [00013] terminata con successo.
--------------------------------------------------------------------
Esecuzione controllo [00014]: Listini: presenza di record su unità di misura non ammesse in anagrafica articoli
Controllo [00014]: Query eseguita:SELECT DISTINCT listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase FROM listini INNER JOIN artico ON listini.codditt = artico.codditt AND ((artico.ar_codart = listini.lc_codart) OR (artico.ar_codroot = listini.lc_codart) OR (artico.ar_codroot + artico.ar_codvar1 = listini.lc_codart)) WHERE lc_unmis not in( COALESCE(ar_unmis,'?'),coalesce(ar_unmis2,'?'), COALESCE(ar_confez2,'?') , COALESCE(ar_um4,'?')) ORDER BY listini.codditt, lc_codart, lc_codlavo, lc_conto, lc_codvalu, lc_codtpro, lc_listino, lc_datagg, lc_daquant, lc_unmis, lc_fase
Esecuzione controllo [00014] terminata con successo.
--------------------------------------------------------------------
Log terminato il 27/11/2008 10.17.11
--------------------------------------------------------------------