Table Check
Zuletzt geändert: 10.06.2023 08:05

Table Check #

TABLE CHECK Einschränkungen (engl. CONSTRAINT) #

Die genaue Meldung lautet:

Die AAAA-Anweisung verstieß gegen die TABLE CHECK-Einschränkung 'CCCC'.`
`Der Konflikt trat in der Eulanda_DDDD-Datenbank, Tabelle 'TTTT' auf
Details:`
`Ein Ausnahmefehler vom Typ "EOleException" ist aufgetreten

AAAA - der Name der Anweisung. Dieser steht für den SQL-Befehl, der ausgeführt werden sollte. Das kann UPDATE, INSERT oder DELETE sein. Diese Befehle stehen für die Daten Änderungen, Neuanlage von Daten bzw. das Löschen von Daten.

CCCC - Name der Einschränkung. Jede Einschränkung hat eine eindeutige Bezeichnung in der Datenbank. Dazu mehr im nächsten Absatz.

TTTT - Name der Tabelle. Die Tabelle, in der die Änderungen vorgenommen werden sollten

DDDD - Datenbankname bzw. Bezeichnung des EULANDA®-Mandanten

CHECK-Einschränkungen #

Im SQL-Server sind etliche Überprüfungen (=Checks) hinterlegt, die sicherstellen, dass keine inkonsistenten Daten abgespeichert werden können. Wenn versucht wird eine solche Einschränkung zu brechen, dann bricht der SQL-Server die Anweisung ab und erzeugt eine Fehlermeldung in obigem Format.

In vielen Fällen „übersetzt“ EULANDA® diesen Fehler in verständliche Worte. In einigen Fällen jedoch kann es vorkommen, dass der Fehler ohne weitere Bearbeitung bis zum Benutzer durchgereicht wird. Hierbei ist es hilfreich zu wissen, was der Fehler genau aussagt.

Jede dieser Einschränkungen hat einen eigenen Namen, der stets mit den Großbuchstaben CK gefolgt von einem Unterstrich beginnt. Danach folgt die Abkürzung der Datenbanktabelle (siehe Abkürzungsverzeichnis) und der Spaltenname innerhalb der Tabelle bzw. - falls mehrere Spalten betroffen sind - ein kurzer Begriff, der die Einschränkung umschreibt.

TABLE CHECK Einschränkung ‘CK_ARI_MengeMax’ #

Die genaue Meldung lautet:

Die UPDATE-Anweisung verstieß gegen die TABLE CHECK-Einschränkung 'CK_ARI_MengeMax'.`
`Der Konflikt trat in der Eulanda_xxx-Datenbank, Tabelle 'ArtikelIdent' auf
Details:`
`Ein Ausnahmefehler vom Typ "EOleException" ist aufgetreten

Die Einschränkung CK_ARI_MengeMax #

Diese Einschränkung stellt sicher, dass sich die gleiche Seriennummer eines Artikels auch nur ein mal im System vorkommt. Beispiel:

  • Die Seriennummer 4711 vom Artikel “Heizkessel” wird über den Wareneingang eingebucht. es befindet sich nun genau ein Stück dieser Seriennummer im Lagesystem
  • Der Heizkessel wird an Kunde “Meier” verkauft es befindet sich dadurch immer noch ein Stück im Lagersystem. Nun nicht mehr im Warenlager, aber beim Kunden
  • Wird nun versucht erneut über einen Wareneingang die 4711 einzubuchen, dann wird das vom SQL-Server respektive von der CK-ARI_MengeMax-Einschränkung erkannt und der Wareneingang kann nicht gebucht werden. Durch das erneute Einbuchen wäre ja im Warenlager ein Stück vorhanden. Beim Kunden Meiser wäre aber auch noch ein Stück vorhanden. Das hieße es wären insgesamt zwei Stück derselben Seriennummer im System vorhanden.

Wenn der Heizkessel 4711 wieder vom Kunden ins Warenlager zurückfließen soll, dann muss ein Auftrag mit der Menge minus Eins angelegt werden. Beim Buchen des zugehörigen Lieferscheins kann dann die Seriennummer 4711 dann ausgewählt werden.

Ein Fall der etwas seltener vorkommt wäre der, dass der Heizkesselhersteller im Laufe der Zeit die Seriennummern mehrfach vergibt. Das heißt es existieren zwei unterschiedliche Heizkessel mit der gleichen Seriennummer. In EULANDA® müssen die Serienummern zu einem Artikel aber eindeutig sein. In diesem Fall muss der neuen Seriennummer eine andere Bezeichnung vergeben werden. Z.B. 4711-2. Oder die bereits bestehende Seriennummer wird unter Lagerwesen\Seriennummern abgeändert. Z.B. auf 4711-ALT.