Core Modell (Class Overlay)

Das Core-Modell beinhaltet alle Klassen, ValueLists, Eigenschaften und Relationen die in einem Modell vorhanden sind. Dieses kann ebenfalls über die XML Schnittstelle erweitert werden.

Nach Änderungen am Core-Modell muss die Applikation neu gestartet werden und die Schema-Migration muss aktiviert sein. Ist die Schema-Migration nicht aktiviert müssen die Elemente manuell zur Datenbank hinzugefügt werden damit diese benutzt werden können.

Eine zusätzliche Klasse kann mit folgendem XML hinzugefügt werden:

<metaClass name="ExtensionClass" pluralName="ExtensionClasses"> <caption de="Meine Klasse" /> <property name="Name" dataType="Text" size="100" /> <relation name="Relation" targetClass="Person" cardinality="OneToMany"> <caption de="Zugewiesene Personen" /> </relation> </metaClass>

Auf dem Top-Level werden drei verschiedene Typen unterstützt:

  • metaClass eine Standard-Entität welche Eigenschaften und Relationen besitzt.

  • valueList fixe Liste von Werten (z.B. Rechnungsstatus: Offen, Bezahlt, Überfällig)

  • module eine Sammlung von valueList und metaClass. Kann benutzt werden um zusammengehörige Klassen/ValueLists zusammenzuhalten.

Die metaClass beinhaltet die folgenden möglichen Sub-Elemente:

  • property eine normale Eigenschafte. Diese muss im Minimum einen Typ und Namen beinhalten.
    Standardmässig wird diese auf der Datenbank gespeichert.

  • calculatedProperty eine berechnete Eigenschaft. Diese benötigt zusätzlich eine valueExpression welche benutzt wird um den aktuellen Wert zu berechnen.

  • relation eine Beziehung zu einer anderen Tabelle. Dabei muss das Ziel und die entsprechende Kardinalität angegeben werden. Es wird automatisch eine Rück-Relation von der Zielklasse erstellt.

  • virtualRelation eine virtuelle Relation welche keinen physischen Fremdschlüssel erzeugt und mit einem zusätzlichen Filter definiert werden muss um das Resultat der Relation zu berechnen.

Die valueList beinhaltet fixe Werte welche statisch zur Verfügung stehen.

<valueList name="MyValueList" dataType="SmallInteger"> <value name="MyValue1" value="1"> <caption de="Mein Wert" /> </value> <value name="MyValue2" value="2"> <caption de="Mein zweiter Wert" /> </value> </valueList>

Diese fixe Aufzählung kann auch auf der Datenbank gespeichert werden um die referentielle Integrität zu gewährleisten. Das value Element definiert die zur Verfügung stehenden Werte.

Einige Standard Elemente stehen bei diversen Elementen zur Verfügung. Darunter folgende:

  • caption die Caption eines Element. Die unterstützten Sprachen werden als Attribute definiert:
    <caption de="Deutsch" en="English" />

  • description die Beschreibung für ein Element - die Definition ist analog der caption.

  • instruction die Instruktion für ein Element - die Definition ist analog der caption.

  • control das Standard-Control welches für die property/relation verwendet wird.

  • transient bei verschiedenen Elementen kann definiert werden ob diese auf der Datenbank gespeichert werden sollen oder eine reine In-Memory Repräsentation ausreicht.

Der Standard-Editor im ECUI bietet auch auto-complete für die zur Verfügung stehenden Elemente:

image-20240308-073153.png