Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

Version 1 Nächste Version anzeigen »

Durch die Datenmodellierung lassen sich bestimmte Datentabellen um dynamische Informationen erweitern.

Aufbau des Plugins

Die Datenmodellierung unterteilt sich in die Datenpflege, den Eingriff in das Behandeln von Entities und den Eingriff in die Datenbankwidgets. Von der Datenmodellierung ergänzte Datenbankfelder werden als ODM-Informationen in der entsprechenden Datenbanktabelle beim entsprechenden Datensatz abgelegt.

Aktualisierung des Datenbankschemas

Werden Änderungen an der Datenmodellierung in Form der Datenpflege vorgenommen, so ist eine Aktualisierung des Datenbankschema notwendig. Hierbei werden die Datenbankwidgets aller Tabellen, welche die Datenmodellierung nutzen können, aktualisiert und ein Cache über diese Datenbankwidgets erstellt.

Jeder Datentabelle der Datenmodellierung (Formularmasken, Feldgruppen und Felder) steht der Button "Datenbankschema aktualisieren" zur Verfügung. Hierüber können die o.g. Aktionen ausgelöst werden.

Neben dem manuellen Aktualisieren des Datenbankschemas, wird dies auch im Rahmen der Installation bzw. eines Updates von brandbox durchgeführt.

Datenpflege

Die Datenmodellierung wird auf drei Ebenen gepflegt - den Formularmasken, den Feldgruppen und den Feldern. Felder können Kinder von Feldgruppen sein, Felder und Feldgruppen können Kinder von Formularmasken sein.

Formularmasken

Eine Formularmaske repräsentiert eine generelle Erweiterung einer Datentabelle um die mit dieser Formularmaske verknüpften Felder und Feldgruppen.

BezeichnungBeschreibung
NameDie Bezeichnung bzw. der Name dieser Formularmaske. Er wird ausschließlich zur Organisation verwendet und wird niemals außerhalb der Datenpflege genutzt.
Tabellen

Hier stehen alle Tabellen zur Auswahl, welche durch die Datenmodellierung erweitert werden können. Es können mehrere Tabellen gewählt werden.

Es gibt Anwendungsfälle aus anderen Plugins in denen hier keine Tabelle ausgewählt werden muss.

Feldgruppen

Eine Feldgruppe repräsentiert einen Reiter (Tab) innerhalb eines Datenformulars. Unter diesem Reiter werden alle mit dieser Feldgruppe verknüpften Felder angezeigt.

BezeichnungBeschreibung
Identifikator

Der Identifikator dieser Feldgruppe.

Identifikatoren von Feldgruppen müssen pro Mandant eindeutig sein und dürfen ausschließlich aus Groß- und Kleinbuchstaben von A bis Z und Zahlen von 0 bis 9 bestehen. Gemäß der brandbox-Code-Konvention sollten Identifkatoren mit einem kleinen Buchstaben beginnen.

NameDie Bezeichnung bzw. der Name dieser Feldgruppe. Der gepflegte Wert wird als Reiterbezeichnung in einem Datenformular angezeigt. Der Text ist übersetzbar.
Erweitert GruppeDie Datenmodellierung erlaubt es bereits bestehende Feldgruppen zu erweiterten und auch ihre Sortierung zu beeinflussen. In diesem Feld muss die zu erweiternde Gruppe aus der entsprechenden Tabelle gewählt werden. Die Sortierung der Feldgruppen in der Datenmodellierung hat Vorrang vor bereits bestehenden Sortierungen.

Feld

Ein Feld repräsentiert ein tatsächliches Feld, welches in der Datenbank abgespeichert wird.

Übersetzungsmöglichkeiten beachten.

BezeichnungBeschreibung
Identifikator

Der Identifikator dieses Feldes.

Identifikatoren von Feldern müssen pro Mandant eindeutig sein und dürfen ausschließlich aus Groß- und Kleinbuchstaben von A bis Z und Zahlen von 0 bis 9 bestehen. Gemäß der brandbox-Code-Konvention sollten Identifkatoren mit einem kleinen Buchstaben beginnen.

NameDie Bezeichnung bzw. der Name des Feldes. Der hier gepflegte Text wird als Label für das Feld verwendet. Der Text kann übersetzt werden.
Formulartyp

Der Formulartyp des Feldes. Es stehen die gängigen Formulartypen für brandbox zur Verfügung.

Felder mit dem Formulartyp "Benutzerdefiniertes Feld" benötigen ggf. eine erweiterte Konfiguration.

Ersetzt FeldDie Datenmodellierung erlaubt es bereits vorhandene Datenbankfelder zu ersetzen. Hierbei muss das zu ersetzende Feld in diesem Auswahlfeld gewählt werden.
Standardwert

Der Standardwert für dieses Feld, sollte es in einem neuen Datensatz verwendet werden.

Nicht jede Implementation der Datenmodellierung nutzt diesen Standardwert.

AuswahlwerteJede Zeile innerhalb dieses Textfeldes entspricht einem Auswahlwert. Dieses Feld wird unter anderem von Feldern des Typs "Auswahlfeld", "Auswahlfeld (mehrfach)", "Checkbox" und "Radiobutton" genutzt.
BeschreibungDie Beschreibung wird in Form eines Fragezeichens neben dem Label des gepflegten Feldes angezeigt. Je nach Länge des eingegebenen Textes wird die Beschreibung entweder als Tooltip oder Popover angezeigt.
EinheitDer hier eingetragene Wert wird hinter dem gepflegten Feld angezeigt.
Feldkonfiguration

Die Konfiguration des gepflegten Feldes.

Die hier einzutragenden Werte können sich gravierend unterscheiden. Die jeweiligen möglichen Konfigurationen werden von den entsprechenden Plugins behandelt.

Feldeinschränkungen

Eine Liste an Einschränkungen welche für die Werte des gepflegten Feldes gelten.

Genutzt werden hier Symfony Validator Constraints.

ZeilenanzahlDie Eingabe in diesem Feld ist nur relevant wenn der Formulartyp "Eingabefeld (mehrzeilig)" ist. Bestimmt die Mindesthöhe des gepflegten Feldes in Zeilen.
Ist Identifikationsfeldbrandbox kann eine Datensatzauswahl anbieten welche für einen Datensatz alle Felder mit dieser Einstellung anzeigt.
Ist übersetzbarLegt fest, dass es sich um ein übersetzbares Feld handelt. Übersetzbare Felder können pro Datensatz in alle verfügbaren Systemsprachen gepflegt werden.
Ist SuchfeldLegt fest, dass dieses Feld von brandbox als Suchfilter-Feld für die entsprechende Tabelle angeboten wird.
Ist SortierspalteLegt fest, dass nach diesem Feld in den Ansichtseinstellungen der entsprechenden Tabelle sortiert werden kann.
Ist ErgebnisspalteLegt fest, dass dieses Feld in einer Datensatztabelle angezeigt wird.

Verwendung

Durch die Hauptklasse \brandbox\component\modelling\engine werden drei öffentliche Methoden zur Verfügung gestellt:

MethodeBeschreibung
getColumnByID($id)

Liest das entsprechende Feld der Datenmodellierung anhand der eindeutigen numerischen ID aus und gibt ein Objekt zurück welches das Interface \brandbox\component\widget\lib\widget\interfaces\columnInterface implementiert.

Die Methode \brandbox\component\widget\lib\widget\interfaces\columnInterface::getColumnGroupWidget wird hier null zurückgeben, da dieses Feld direkt bezogen wurde.

getColumnByIdentifier($identifier)Siehe vorherige Beschreibung. Einziger Unterschied hier ist, dass ein eindeutiger Identifikator anstelle einer numerischen ID genutzt wird.
getFormMaskByID($id)Liest die Formularmaske anhand ihrer ID aus und gibt ein Objekt zurück welches das Interface \brandbox\component\modelling\lib\widget\interfaces\formMaskInterface implementiert.


Die Datenmodellierung integriert sich in die Datenbankwidgets und wird von anderen Plugins gesondert genutzt. Diese Plugins dokumentieren ihre Integration der Datenmodellierung selbst.

Events

Interface: \brandbox\component\modelling\lib\event\modellingEventInterface

Adapter: \brandbox\component\modelling\lib\event\adapter\modellingEventAdapter

MethodeEingabeRückgabeBeschreibung
onUpdate


voidWird ausgeführt wenn das Modelling, zum Beispiel, über den Button "Datenbankschema aktualisieren" aktualisiert wird.
  • Keine Stichwörter