Auswahllisten sind eine zentrale Technologie, die häufig auch zur technischen Parametrisierung verwendet wird. Es ist möglich neue Auswahllisten zu erstellen und vorhandene zu erweitern. Auswahllisten können weitere Eigenschaften haben. Beispielsweise hat die Liste “Countries” für jedes Land auch den ISO Code hinterlegt.

Die gewählten Werte können entweder per Referenz oder als kommaseparierter String in der Datentabelle abgelegt werden. Vor- und Nachteile sind hier beschrieben.

Werden die Werte als Referenz gespeichert, so werden die Referenzen redundant gespeichert, um für verschiedene Situationen einen optimalen Zugriff zu ermöglichen. Diese redundante Speicherung der Referenzen erfolgt bei allen Auswahlwertfeldern, da zurzeit bei der Datendefinition kein Unterschied zwischen bei Einzelauswahl und Mehrfachauswahl gemacht wird.

In der Regel wird der Umgang mit diesen Redundanzen durch die API Methoden in den unterschiedlichen Teilen gekapselt. Aber als Entwickler sollte man sich dieser Situation bewusst sein. Im Folgenden werden die drei redundanten Speichervarianten der Referenz erläutert.

Einzelwert

In der Datenspalte mit dem definierten Feldwert wird die Oid des Auswahlwertes abgespeichert. In der Programmierung hat man direkten Zugriff auf das Objekt des Wertes, wenn der Wert abgerufen wird.

Werden mehrere Werte ausgewählt, steht in diesem Feld ein zufälliger Wert aus der gewählten Liste und sollte daher nicht verwendet werden.

Mehrfachwert Spalte “_AllValues”

In der Datenspalte FeldName_AllValues wird eine kommaseparierte Liste der Oids aller gewählten Werte als String abgelegt. Diese wird beispielsweise genutzt, um in Ansichten eine Spalte zu erhalten, die alle ausgewählten Werte in einer Zelle anzeigt.

Mehrfachwerte als Relationen

Zusätzlich werden alle gewählten Werte über OrmRelation als Relation angelegt. Diese BA Relationen werden beispielsweise für die Mehrfachgruppierung in Ansichten genutzt. Dabei wird die Relationstabelle wie folgt belegt.

  • OrmRelation.Source Oid des Datensatzes
  • OrmRelation.SourceType Guid der Datentabelle des Datensatzes
  • OrmRelation.Target Oid des Auswahlwertes
  • OrmRelation.RelationType Oid der Auswahlliste
  • OrmRelation.RelationCategory Feldname der Auswahllistein der Datentabelle

Alle weiteren Belegungen der Tabelle sind nicht relevant.