======Datentypen====== ===Aufgaben=== Datentypen sind zentrale Entwurfsobjekte in CBA. Sie definieren * die Wertebereiche von Attributen * die Speicherform der Werte * die Lexik der möglichen Eingaben * die Validierungs-Routinen * die Möglichkeiten der Bedienerführung * die verfügbaren Layouts zur Darstellung in Bedienoberflächen anhand des zugeordneten Basistyps. Datentypen sind frei konfigurierbar und an inhaltlichen Kriterien ausgerichtet. Sie stellen konkrete Mengen-Definitionen dar, d.h. definieren eindeutig erlaubte und nicht erlaubte Werte. Die Mengen können * implizit durch den Wertebereich des zugrundeliegenden Basistyps * explizit durch Angabe von Minimal- und Maximalwert * explizit durch Auflistung der erlaubten Elemente * explizit durch einen Regulären Ausdruck oder Maskierungen definiert werden. Aus den Datentypen werden Informationen zur Darstellung in Bedienoberflächen und zur Validierung abgeleitet. Sie stellen ein mächtiges Werkzeug zur Konfiguration von Attributen in Tabellen dar und haben eine Wirkung weit darüber hinaus. Werte für Attribute werden z.B. bei der Eingabe in Bedienoberflächen oder beim Abspeichern in die Datenbank auf Konformität mit dem zugrundeliegenden Datentyp geprüft. Damit ergibt sich strukturell eine gute Überprüfbarkeit der Daten auf Gültigkeit. Datentypen können keine logischen Zusammenhänge und semantischen Bedeutungen validieren - sie sind ein rein formales Mittel. Sollen logischen Zusammenhänge und semantischen Bedeutungen überprüft werden, sind entsprechende Validierungs-Routinen in die Business Logic Units (BLU) einzubinden. ------- ===Basistypen=== Basistypen sind vordefiniert, an der IT-technischen Implementierung orientiert und bilden die Grundlage für die Definition logischer Datentypen. Basistypen bilden die Grundlage für logische Datentypen. Sie repräsentieren die Datentypen in den Programmen und Datenbanken, definieren aber auch verschiedene Darstellungsmöglichkeiten (Layouts) und Arten der Bedienerführung in den Bedienoberflächen. Von den Basistypen sind die Konfiguration, die Validierung, die Formatierungs-Möglichkeiten u.a. abhängig. In CBA gibt es folgende systemseitig vordefinierten Basistypen: |Basistyp|Beschreibung|JAVA-Basisklasse| |recid|intern gebildete technische Schlüssel|Integer| |string|Zeichenketten mit definierten maximalen Längen|String| |int|ganze Zahlen |Integer| |float|Gleitkommazahl|Double| |percent|Prozentzahl (1.0 = 100%)|Double| |date|Datumsangabe|DateTime| |datetime|Datums-/Zeitangabe|DateTime| |html|HTML-Snippets|String| |message|Nachricht|String| |parameter|Parameter-Zeichenkette|String| |file|Datei|String| |boolean|Boolescher Wert|Boolean| |filter|Filter-Zeichenkette|String| |reference|Auswahl aus dynamischer Werteliste|Integer| |check|Mehrfachauswahl aus statischer Werteliste|String| ------ ===Implizite Datentypen=== Implizite Datentypen sind logische Datentypen, die nicht explizit definiert werden müssen. Jede Tabelle generiert automatisch einen impliziten Datentyp mit Basistyp Referenz und dem Namen der Tabelle in eckigen Klammern '[...]' als Datentyp-Namen. Damit werden automatisch die Datensätze einer Tabelle zugreifbar. Sollten spezielle Filter oder Sortierungen angewendet werden, ist ein expliziter Datentyp zu definieren. Implizite Datentypen stehen bei der Auswahl eines Datentyps für ein Attribut zur Verfügung, sind aber nicht in der Bedienoberfläche für Datentypen sichtbar.