Im Checkservice können pro Datenmodell benutzerdefinierte Regeln angegeben werden. Die benutzerdefinierten Regeln müssen in einer speziellen Excel Konfigurationsdatei eingetragen werden (<Modellname>.xls). In diesem Kapitel ist der Aufbau der Regeldatei beschrieben.
Die Regeldatei muss wie folgt aufgebaut sein:
Das Format der Regeldatei ist Microsoft Excel 97
(.xls).
Der Name der Datei muss <Modellname>.xls sein (z.B.
DM01AVCH24D.xls).
Die Regeldatei muss vollständig sein, d.h. alle Regeln zum Modell enthalten.
Die Excel-Datei muss die Tabellen
Checkrules, Definitions,
Options, Comments und
Version enthalten.
Der Aufbau und Inhalt der Tabellen muss den nachfolgenden Beschreibungen genügen.
Alle Tabellen oder Attribute welche hier nicht spezifiziert sind, werden beim Import der Regeldatei ignoriert, d.h. werden beim erneuten Bezug der Regeldatei vom Server nicht mehr geliefert.
Die Tabelle Checkrules enthält alle
Regeldefinitionen für den Checkermodul und muss folgende Kolonnen
enthalten:
all_PROFILEHauptprofil. Alle aktiven Regeln, müssen mit einem
grossen X markiert werden. Falls das
Profil vom Benutzer ausgewählt wurde (implizit oder mit
quote site set param profile all), werden
die mit X markierten Regeln
ausgeführt.
data_forward_PROFILE (optional)Profil für Datenweiterleitung an ein Portal. Alle mit
X markierten Regeln sind für die
Datenweiterleitung relevant, d.h. wenn eine so markierte
Regel einen Fehler meldet, werden die Daten nicht an das
Portal weiter geleitet.
<user>_PROFILE (optional)Benutzerprofil. Es können beliebig viele
Benutzerprofile pro Modell definiert werden. Der
Checkservice Benutzer kann ein oder mehrere Profile mit dem
Befehl quote site set param profile
<user1>,<user2>,..,<userN>
selektieren. Es ist nicht möglich eine im Hauptprofil
deaktivierte Regel im Benutzerprofil nachträglich zu
aktivieren.
ModellnameModellname (z.B. DM01AVCH24D). Das
Modell muss auf dem Server installiert und für den
Checkservice aktiviert sein. Pro Regeldatei können nur zu
einem Modell Regeln definiert bzw. auf dem Server
gespeichert werden. Sind in der Regeldatei auch Regeln zum
Basismodell enthalten, dann werden von diesen Regeln nur die
Profilinformationen auf dem Server gespeichert.
TopicnameTopicname. Der Topicname muss ein gültiger Topicname innerhalb des Modells sein.
TablenameTablename. Der Tablename muss ein gültiger Tabellennamen innerhalb des Topics sein.
ConditionBedingung für die Tabelle. Die Checkservice Regel gilt nur für die Objekte der Tabelle, für welche die Bedingung erfüllt ist (s.a. Formulierung von Bedingungen).
OperatorName eines Checkoperators. Die Regel erzeugt eine Fehlermeldung, wenn der Operator auf den aktuellen Daten nicht erfüllt ist. Alle verfügbaren Checkoperatoren sind im Anhang zusammen gestellt.
ArgumentsArgumente des Operators (s.a. Dokumentation der Operatoren).
UserIdBenutzerdefinierbare Bezeichnung der Regel. Hinweis:
Normalerweise sollten die ersten zwei Buchstaben den Kanton
bezeichnen (z.B. BE100001).
CategoryFehlerkategorie. Es sind folgende Werte zulässig:
error, warning und
info.
Message_de (optional)Fehlermeldung auf Deutsch.
Message_fr (optional)Fehlermeldung auf Französisch.
Message_it (optional)Fehlermeldung auf Italienisch.
Message_en (optional)Fehlermeldung auf Englisch.
Modify_date (optional)Datum der letzten Änderung an der Regel im Format
YYYYMMDD (z.B.
20091116).
Modify_user (optional)Benutzer, welcher die Regel erstellt oder verändert
hat (z.B. swisstopo/rb).
Comment (optional)Kommentar zur Regel.
Die Regeln müssen wie folgt erfasst werden:
Alle obligatorischen Felder müssen erfasst werden.
Pro Regel muss mindestens eine Fehlermeldung (Deutsch, Französisch, Italienisch oder Englisch) definiert werden.
Leere Zeilen sind in der Tabelle
Checkrules nicht erlaubt.
Die Tabelle Checkrules
muss durch eine Zeile abgeschlossen
werden, welche für jede Kolonne den Wert
END enthält.
Die Tabelle Statistics enthält alle
Regeldefinitionen für den Statistikmodul:
all_PROFILEHauptprofil. Alle aktiven Regeln, müssen mit einem
grossen X markiert werden.
ModellnameModellname (z.B. DM01AVCH24D). Es
muss der gleiche Modellname wie bei
Checkrules angegeben werden.
TopicnameTopicname. Der Topicname muss ein gültiger Topicname innerhalb des Modells sein.
TablenameTablename. Der Tablename muss ein gültiger Tabellennamen innerhalb des Topics sein.
ConditionBedingung für die Tabelle. Die Statistik Regel gilt nur für die Objekte der Tabelle, für welche die Bedingung erfüllt ist (s.a. Formulierung von Bedingungen).
OperatorName eines Statistikoperators. Alle Statistikoperatoren sind im Anhang zusammen gestellt.
ArgumentsArgumente des Operators (s.a. Dokumentation der Statistik Operatoren).
Modify_date (optional)Datum der letzten Änderung an der Regel im Format
YYYYMMDD (z.B.
20091116).
Modify_user (optional)Benutzer, welcher die Regel erstellt oder verändert
hat (z.B. swisstopo/rb).
Comment (optional)Kommentar zur Regel.
Die Regeln müssen wie folgt erfasst werden:
Alle obligatorischen Felder müssen erfasst werden.
Leere Zeilen sind in der Tabelle
Statistics nicht erlaubt.
Die Tabelle Statistics
muss durch eine Zeile abgeschlossen
werden, welche für jede Kolonne den Wert
END enthält.
Die Tabelle Definitions enthält alle Listen
bzw. Listenbereiche zum Modell. Definitions besteht aus folgenden
Kolonnen:
ModelnameModellname (z.B. DM01AVCH24D). Es
muss der gleiche Modellname wie bei
Checkrules angegeben werden.
DefinitionListendefinitionen gemäss folgender Syntax:
<Liste> :=
LIST <Listenname>
<Zeichenkette>*
END_LIST
<Listrange> :=
LISTRANGE <Listerangename>
(<Zeichenkette> <Zeichenkette>)*
END_LISTRANGE
Beispiel:
Die Zeilen müssen wie folgt erfasst werden:
Die Zeilen müssen der Syntaxregel entsprechen.
Die erste Zeile nach Definitions darf
nicht leer sein, sonst sind leere Zeilen nur nach
END_LIST erlaubt.
Alle Kolonnen der letzten Zeile müssen den Wert
END enthalten.
Die Tabelle Options enthält Programmoptionen
zu den diversen Checkservicemodulen. Options
besteht aus folgenden Kolonnen:
ModelnameModelname (z.B. DM01AVCH24D). Es
muss der gleiche Name wie in Checkrules
angegeben werden.
OptnameName der Programmoption. Die möglichen Programmoptionen sind im Anhang dokumentiert.
OptvalueWert der Programmoption. Falls Programmoptionen zu
einem erweiterten Modell (z.B.
DM01AVZH24) angegeben werden, werden
gleichnamige Programmoptionen des Basismodells (z.B.
DM01AVCH24D) durch den angegebenen Wert
überschrieben.
Die Zeilen müssen wie folgt erfasst werden:
Leerzeilen sind nicht erlaubt.
Alle Kolonnen der letzte Zeile müssen den Wert
END enthalten.
Die Tabelle Comments enthält Kommentare zum
Modell und muss folgende Kolonnen enthalten:
ModelnameModelname (z.B. DM01AVCH24D). Es
muss der gleiche Name wie in Checkrules
angegeben werden.
CommentsBeliebige Kommentarzeilen.
Die Zeilen müssen wie folgt erfasst werden:
Die erste Zeile nach Comment darf
nicht leer sein, sonst sind leere Zeilen erlaubt.
Die letzte Zeile muss den Wert END
enthalten.
Die Tabelle Version enthält
Versionsinformationen zur aktuellen Konfiguration.
Version besteht aus folgenden Kolonnen:
ModelnameModelname (z.B. DM01AVCH24D). Es
muss der gleiche Name wie in Checkrules
angegeben werden.
VersioninfoBeliebige Versionsinfozeile. Die Versionsinfozeile werden zu beginn jeder .log Datei des Checkservice angezeigt.
Die Zeilen müssen wie folgt erfasst werden:
Alle Kolonnen der letzten Zeile müssen den Wert
END enthalten.
Zur Laufzeit werden die Checkregeln wie folgt ausgewertet:
Alle Regeln, welche nicht zu einem ausgewählten Profil gehören, werden ignoriert.
Zu jedem gelesenen INTERLIS Objekt werden die zu
Modelname, Topicname und
Tablename passenden Regeln in der Tabelle
RULES gesucht.
Für alle gefundenen Regeln wird geprüft, ob die Vergleiche
in Condition für das aktuelle INTERLIS Objekt
erfüllt sind.
Für alle durch die Regeln selektierten Objekte wird der
Operator der Regel mit den Argumenten aus
Arguments ausgeführt.
Falls das Objekt eine Regel nicht erfüllt, wird die Fehlermeldung in der vom Benutzer gewählten Sprache ausgegeben.
Manchmal ist es notwendig, dass eine Regel nur für eine bestimmte
Teilmenge von Objekten einer Tabelle gilt. Die Teilmengen kann mit der
Angabe einer Condition gebildet werden.
Beispiel:
Topicname Tablename Condition Operator
Liegenschaften ProjLiegenschaft Qualitaet_TXT=AV93 GRUNDSTUECK
Die obige Regel wird z.B. nur für Objekte der Tabelle
ProjLiegenschaft ausgeführt, wenn für die Objekte das
Aufzählungsattribut Qualitaet den Wert
AV93 hat. Die Kombination von mehreren Bedingungen
ist ebenfalls möglich. Dazu müssen die einzelnen Bedingungen durch Komma
getrennt angegeben werden. Als Vergleichsoperatoren stehen
= (gleich), # (ungleich),
> (grösser als) und <
(kleiner als) zur Verfügung. Der Test auf Undefiniert ist via
=NULL oder #NULL möglich.
Beispiel für mehrere Vergleiche in der gleichen Bedingung:
Condition Punktzeichen_TXT=Stein,Begehbarkeit_TXT=ja
Bei Aufzählungstypen ist es erlaubt, den textuellen Wert des
Attributs in Regeln oder Bedingungen zu verwenden. Dazu muss jedoch der
Attributname des Aufzählungsattributs mit dem Postfix
_TXT ergänzt werden (z.B.
Punktzeichen_TXT).
Beispiel:
Condition Punktzeichen_TXT=Stein
Falls zwischen zwei Tabellen eine 1:1,
1:m oder 1:mc Beziehung besteht,
kann man in Regeln oder Bedingungen des Unterobjekts auf Attribute des
Oberobjekts via das Beziehungsattribut zugreifen. Dazu muss der
Attributname aus
<Referenzattribut>.<Oberobjektattribut>
gebildet werden. Es ist auch möglich über mehrere Stufen zu verweisen
(z.B. Zugriff auf Attribute des Oberoberobjekts).
Beispiel:
Topicname Tablename Condition
Liegenschaften Liegenschaft Liegenschaft_von.Vollstaendigkeit_TXT=Vollstaendig
Die meisten Objektattribute sind durch das konkrete INTERLIS Datenmodell gegeben. Es gibt jedoch noch einige zusätzliche Systemattribute, welche durch den Checkservice zur Verfügung gestellt werden und in Bedingungen bzw. als Argumente für Operatoren verwendet werden können:
MODELAktuelles Modell des Objekts.
TOPICAktuelles Topic des Objekts.
TABLEAktuelle Tabelle des Objekts.
OBJIDTransferidenditifkation des Objekts.
GEOMLiniengeometrie für Linientabellen (z.B.
BoFlaeche_Geometrie) von
AREA- bzw.
SURFACE-Attributen.
Flächengeometrie für
AREA-Attribute.
Für jede Regel kann die Fehlermeldung in mehreren Sprachen in den
Feldern Message_de, Message_fr,
Message_it und Message_en
angegeben werden. Die Sprache der Fehlermeldungen kann vom Benutzer des
Checkservice mit quote site set param language
<Sprachcode> ausgewählt werden.
Falls das gleiche Modell in mehreren Sprachen vorliegt (z.B.
DM01AVCH24D und MD01MOCH24F), muss
die Regeldatei nur für die Hauptsprache (z.B. de)
konfiguriert werden. Es kann aber sein, dass einzelne Tests trotzdem nur
für eine bestimmte Sprachversion des Modells formuliert werden können
(z.B. der Inhalt von Textattributwerten).
Beispiel:
Modelname Topicname Tablename Operator
DM01AVCH24D Liegenschaften LSNachfuehrung LIST,Beschreibung,GRUDA_Geschaeftstyp_de
MD01MOCH24F Liegenschaften LSNachfuehrung LIST,Beschreibung,GRUDA_Geschaeftsyp_fr
Im Beispiel, wird das Textattribut Beschreibung
mit einer vordefinierten Liste verglichen (s.a. Operator
LIST). Für das französische Modell soll eine andere
Liste als für das deutsche Modell verwendet werden.
![]() | |
Der Test wird trotzdem nur mit den Topic-, Tabellen- und Attributnamen des deutschen Hauptmodells definiert. |
![]() | |
Falls die Benutzer des französischen Modells die Fehlermeldungen auf Deutsch erhalten möchten, muss man die Fehlermeldungen in beiden Sprachen formulieren. |