Datenprüfung
Mit der Datenprüfung können Sie eigene SQLs aufsetzen die Ihre Daten auf Fehler prüft.
Es können mehrere Datenprüfungen aufgesetzt werden. Eine Datenprüfung kann sowohl im Client als auch im AppBuilder ausgeführt werden. Eine einmal konfigurierte Datenbankprüfung kann auf beliebigen Datenbanken ausgeführt werden, sofern die SQL-Queries, die man aufgesetzt hat, auch mit der jeweiligen Datenbank kompatibel sind.
Anlegen einer Datenprüfung
Sie finden die Datenprüfung im MapEdit AppBuilder unter Datenbanken, wählen Sie dort den Menüpunkt Neu.
Vergeben Sie anschließend einen Namen für die Datenprüfung.
Konfiguration einer Datenprüfung
Jede Datenprüfung benötigt im AppBuilder eine Einrichtungsdatenbankverbindung, welche nur zum Aufsetzen und Testen von SQL-Queries benötigt wird. Die eigentliche Datenverbindung (für den Client) wird im Ribbon Designer im entsprechenden Kommando definiert.
Die Prüfung kann im Client oder im AppBuilder mit Datenprüfung ausführen auf einer beliebigen Datenbank ausgeführt werden. Das Ergebnis der Prüfung wird in die Tabelle ME_DATACHECKER_RESULT
geschrieben, über Ergebnis anzeigen werden die Elemente aus dieser Tabelle aufgelistet.
Das funktioniert aber nur wenn die SQL-Queries, die aufgesetzt wurden, mit der jeweiligen Datenbank kompatibel sind. d.h. die Tabellen, die in den SQLs verwendet wurden muss es geben.
Werden Datenbank-Typ spezifische Befehle verwendet, z.B. einen Befehl, den es nur in PostgreSQL gibt und diesen dann Oracle benutzt, wird das einen Fehler erzeugen!
Prüfung anlegen
Falls Prüfungen gruppiert werden sollen, können in der Datenprüfung optional beliebig verschachtelte Gruppen/Untergruppen angelegt werden.
Der SQL, der eingegeben wird, ist nicht 1:1 von Topobase übertragbar! Es darf nur ein SQL angegeben werden nicht mehrere.
Rückgabewerte des Prüf – SQL's:
Das SQL muss in MapEdit zwingend folgendes Format haben:
- Zuerst den fixen Wert
{PARAMETER}
- Danach den Namen der Tabelle als Textwert in Anführungszeichen zu der nachfolgende
FID
s gehören. - Danach die
FID
des/der Objekte.
Es darf außer diesen Feldern keine anderen Rückgabe Felder im select Ausdruck des SQLs geben!
Wollen Sie group by
-Ausdrücke verwenden, müssen diese in einen Unter-Select verpackt werden.
Dies Prüfung liefert alle Datensätze zurück in der das Attribut identificator
NULL
ist. Mit der Option benutzen können Prüfungen deaktiviert werden. Alle Einträge, in denen benutzen ausgeschaltet ist werden beim Ausführen der Prüfung nicht angezeigt/verwendet.
Es können auch REPEAT ~ FOR ~
Schleifen verwendet werden:
REPEAT
select {PARAMETER}, '$table_name', fid from $table_name where length=0
FOR
select table_name from ME_ALL_FEATURECLASSES where CONTENT_TYPE='LineString'
Diese Prüfung liefert alle Objekte, aller Linien Featureklassen, zurück in denen das Attribut "length" gleich 0 ist.
Zusätzliche Prüfinformationen
Der Tabellenname, zu welchem die FID
gehört, muss in Anführungszeichen angegeben werden. Ansonsten ist im Resultat nicht ersichtlich zu welcher Tabelle die FID
gehört. Dies ist notwendig, da es im MapEdit Datenmodell keine TB_UFID
Tabelle gibt, in der ersichtlich ist zu welcher Tabelle eine FID
gehört.
Die Ergebnisse der SQLs werden in der Tabelle me_datachecker_result
gespeichert. Vor jedem ausführen wird diese Tabelle geleert.
Beim Ausführen macht das Programm aus dem SQL-Befehl, der angegeben wurde, einen INSERT INTO me_datachecker_result (Felder) as select PRÜF SQL
Befehl.
Der Ausdruck {PARAMETER}
wird vom Programm zur Laufzeit durch eine eindeutige ID
, DATUM
, Prüfungsname, etc. ersetzt.
Wenn im AppBuilder Datenprüfung ausführen ausgeführt wird, öffnet sich nach dem Ausführen ein SQL-Abfrage Fenster in dem die Tabelle me_datachecker_result
abgefragt wird. Hier werden dann alle Fehler gelistet.
Wenn die Prüfung im Client ausgeführt wird und Fehler vorhanden sind, öffnet sich das Formular "me_datachecker_result". Das geht im AppBuilder nicht, deswegen dort die Variante mit dem SQL-Abfrage Fenster.
In dem Formular me_datachecker_result
wird hinter dem FID
-Feld automatisch ein Highlight Knopf erzeugt. Mit diesem kann das Objekt in der Grafik angezeigt werden. Des Weiteren gibt es einen FID Reference Knopf, dieser öffnet das Formular des Features und filtert nach diesem.
Ribbon konfigurieren
Die Konfigurierte Datenprüfung muss nun einem Ribbon hinzugefügt werden. Ein Ribbon ist meist schon vorhanden, fügen Sie diesem das Kommando Datenprüfung hinzu.
In dem Kommando müssen nun die Datenprüfung und die Datenbankverbindung definiert werden.
Vergewissern Sie sich anschließend, dass das Ribbon dem gewünschten Projekt zugewiesen ist.
Prüfung ausführen
Die Datenprüfung wird nun in Professional bei den Ribbons mit aufgelistet. Und beim Ausführen der Datenprüfung können die auszuführenden Prüfungen gewählt werden.
Anschließend wird das Ergebnis der Prüfung im Formular aufgelistet.
Seit Version 22.1.208 ist die Prüfung Multi Benutzer und Multi Prüfungsfähig. D.h. wenn mehrere Benutzer die Funktion gleichzeitig ausführen bekommt jeder Benutzer seine eigene Ergebnisse und die Tabelle ME_DATACHECKER_RESULT wird nicht gegenseitig überschrieben.
Wenn man im Generic Dialog den Filter aufhebt dann kommen alle Ergebnisse aller Benutzer und aller Prüfungen und nicht mehr nur das eigene Ergebniss.
Beschreibung der Tabelle ME_DATACHECKER_RESULT
In der Tabelle ME_DATACHECKER_RESULT werden die Ergebnisse aller Prüfungen gespeichert.
Feldname | Beschreibung |
---|---|
ID | Eindeutige ID |
USER_NAME | Login Benutzername der die Prüfung ausgeführt hat |
CHECK_ID | Name der Prüfungskonfiguration |
CHECK_NAME | Name der Prüfung |
FID_ITEM | Fid des geprüften Objektes |
TABLE_NAME | Tabellenname des geprüften Objektes |
CHECK_DATE | Datum an dem die Prüfung ausgeführt wurde |
CHECK_DESCRIPTION | Beschreibung der Prüfung |
CHECK_ERROR | Fehlermeldung |
Bekannte Probleme
Wenn Sie mit Planungsdatenbanken arbeiten und Sie beim Ausführen im Client die folgende Meldung bekommen:
Could not create Form *.ME_DATACHECKER_RESULT.DEFAULT
dann gehen Sie bitte in den AppBuilder und führen Sie die Datenprüfung einmalig im AppBuilder auf die Planungs Vorlage Datenbank aus.