Nummern-Kreise
Ein Nummern-Kreis (Number Group) ermöglicht es, einem Property auf einer Klasse beim Speichern eines neuen Objektes automatisch eine Nummer zuzuweisen. Diese Nummern sind streng aufsteigend und werden ebenfalls in der Datenbank verwaltet.
Ein Nummern-Kreis hat die folgenden Eigenschaften:
Name: Name des Nummernkreises. Er kann bei Bedarf fĂĽr verschiedene Properties (auch auf unterschiedlichen Klassen) verwendet werden.
InitialSequenceValue (Default = 1): Initialwert fĂĽr den Nummernkreis. Wir dem ersten gespeicherten Objekt zugewiesen.
SequenceIncrement (Default = 1): Wert um den der Nummernkreis beim Speichern jedes Objektes erhöht wird.
Die Definition wird in der Core-Schicht des Modell vorgenommen und verwendet die AssignNumberGroup Methode, welche optional auch die Konfigurations des zugrundeliegenden Aspekts erlaubt.
Beim Start eine Applikation werden für alle beim letzten Start noch nicht definierten Nummern-Kreise Objekte in die Tabelle QuinoNumberGroup geschrieben, wobei die Werte aus den Metadaten verwendet werden. Ein einmal geschriebenes Objekt für einen bestimmten Nummern-Kreis wird danach durch den Applikationstart nicht mehr verändert. Es ist darum möglich, die Werte in der Datenbank manuell den eigenen Wünschen anzupassen.
Hier ein Beispiel aus der Sandbox:
Elements.Person.Add.Property("Number", MetaType.Integer)
.Caption(English, "Number")
.Caption(German, "Nummer")
.Description(English, "Personnel number")
.Description(German, "Personalnummer")
.AssignNumberGroup("PersonnelNumber", aspect =>
{
aspect.InitialSequenceValue = 1000;
})
.Searchable();
Ob das Property Nullable sein darf und/oder ob es einen Unique-Index braucht muss vom Entwickler entschieden werden.