3.1 Subsysteme & Datenobjekte — Datenmodell einrichten

3.1 Subsysteme & Datenobjekte — Datenmodell einrichten

Anleitung für Kundenadministratoren · UDM Admin Client

1

Überblick: Was sind Subsysteme und Datenobjekte?

Das Datenmodell in UDM ist hierarchisch aufgebaut. An oberster Stelle stehen Subsysteme — sie dienen als logische Container, um zusammengehörige Datenobjekte thematisch zu gruppieren. Ein Subsystem entspricht dabei einem fachlichen Bereich Ihres Unternehmens, z. B. „CRM“, „Lagerverwaltung“ oder „Personalwesen“.

Innerhalb eines Subsystems legen Sie Datenobjekte (Entities) an. Ein Datenobjekt repräsentiert eine konkrete Datenstruktur — vergleichbar mit einer Datenbanktabelle. Es definiert, welche Informationen gespeichert werden können. Jedes Datenobjekt enthält Felder (Entity Properties), die die einzelnen Spalten bzw. Attribute beschreiben.

Ebene Bezeichnung in UDM Beschreibung
Subsystem System / App Logischer Container für einen Fachbereich. Enthält Datenobjekte, Datenquellen und Dokumentationen.
Datenobjekt Objekt / Entity Einzelne Datenstruktur (Tabelle) innerhalb eines Subsystems. Besitzt einen technischen Namen und einen Anzeigenamen.
Feld Eigenschaft / Entity Property Einzelnes Attribut eines Datenobjekts mit Datentyp, Titel und optionaler Konfiguration (Fremdschlüssel, Nummernkreis, UI-Typ).
Praxisbeispiel
Kunden-CRM aufbauen

Sie möchten ein einfaches CRM in UDM abbilden. Dazu erstellen Sie ein Subsystem „CRM“ und legen darin drei Datenobjekte an: Kunde (Firmenname, Adresse, Telefon), Ansprechpartner (Name, E-Mail, Telefon, Zuordnung zum Kunden) und Branche (Branchenbezeichnung, Branchencode). Anschließend verknüpfen Sie die Datenobjekte über Fremdschlüssel und erstellen Datenquellen für die Anzeige im Client.

AdminClient → Systeme: Subsystem-Hierarchie als Baum
▾ Vertrieb
▸ Kunde
▸ Ansprechpartner
▸ Branche
▾ Personal
▸ Mitarbeiter
▸ Abteilung
▸ Lager
2

Schritt-für-Schritt: Subsystem anlegen

  1. Systeme-Seite öffnen Navigieren Sie im Admin Client zur Hauptseite „Systeme“. Dort sehen Sie eine Übersicht aller vorhandenen Subsysteme mit Statistiken zu Datenobjekten und Datenquellen.
  2. Neues Subsystem erstellen Klicken Sie auf die Schaltfläche „Neu“ in der Toolbar. Es öffnet sich der Detaildialog für ein neues Subsystem. Geben Sie einen Namen (z. B. „CRM“) und eine Beschreibung ein. Optional können Sie ein Icon hochladen.
  3. Subsystem speichern und öffnen Speichern Sie das Subsystem. Es erscheint nun in der Systemübersicht. Klicken Sie auf das neue Subsystem, um in die Detailansicht zu navigieren. Dort finden Sie Registerkarten für Objekte, Felder, Datenquellen und Dokumentationen.
Tipp: Subsystem-Einstellungen Jedes Subsystem verfügt über erweiterte Einstellungen (Settings), die Sie später im Detaildialog konfigurieren können. Die Option „Erweiterbar“ (CanBeExtended) legt fest, ob andere Administratoren zusätzliche Datenobjekte in diesem Subsystem anlegen dürfen.
3

Schritt-für-Schritt: Datenobjekt anlegen

  1. Registerkarte „Objekte“ öffnen Navigieren Sie innerhalb Ihres Subsystems zur Registerkarte „Alle Objekte“. Dort sehen Sie eine Liste aller bereits vorhandenen Datenobjekte des Subsystems.
  2. Neues Datenobjekt erstellen Klicken Sie auf „Neu“. Im Detaildialog konfigurieren Sie:
    • Technischer Name (EntityName) — Der interne Name, wie er in der Datenbank erscheint (z. B. Kunde).
    • Anzeigename (EntityTitle) — Der Name, der Anwendern in der Benutzeroberfläche angezeigt wird (z. B. „Kunde“).
    • Anzeigename Plural (EntityTitlePlural) — Pluralform für Listenüberschriften (z. B. „Kunden“).
    • Primärschlüssel (PKFields) — Die Spalte(n), die den Datensatz eindeutig identifizieren.
    • UDM ist Eigentümer (UdmIsOwner) — Aktivieren, wenn UDM die Tabelle selbst verwaltet und Schreibrechte hat.
  3. Felder (Properties) definieren Nach dem Speichern des Datenobjekts können Sie auf der Registerkarte „Felder“ die einzelnen Spalten anlegen. Jedes Feld benötigt mindestens:
    • Technischer Name (PropertyName) — Spaltenname in der Datenbank.
    • Anzeigename (PropertyTitle) — Name in der Benutzeroberfläche.
    • Datentyp (DataType) — Siehe Tabelle unten.
  4. Felder konfigurieren Für jedes Feld können Sie zusätzliche Optionen festlegen:
    • Nullable — Ob das Feld leer sein darf.
    • Hauptspalte (IsMainColumn) — Markiert das Feld als primären Anzeigewert des Datenobjekts.
    • Priorität — Bestimmt die Sichtbarkeit und Reihenfolge in der Benutzeroberfläche.
    • Fremdschlüssel — Verknüpft das Feld mit einem anderen Datenobjekt.
    • Nummernkreis — Automatische Nummerierung für neue Datensätze.
    • UI-Element-Typ — Legt fest, wie das Feld im Formular dargestellt wird (Textfeld, Dropdown, Datum etc.).
Achtung: Technische Namen nachträglich ändern Der technische Name eines Datenobjekts (EntityName) und seiner Felder (PropertyName) sollte nach dem ersten Anlegen nicht mehr geändert werden, wenn bereits Daten vorhanden sind oder Datenquellen darauf verweisen. Eine Änderung kann zu Datenverlust oder fehlerhaften Abfragen führen.
Datenobjekt-Detail — Konfigurations-Formular für Entity „Kunde“
Grunddaten
Technischer Name
Kunde
Anzeigename
Kunde
Anzeigename Plural
Kunden
Primärschlüssel
KundeId
UDM ist Eigentümer
aktiv
Subsystem-Zuordnung
Subsystem
Vertrieb
Erweiterbar
aus
4

Unterstützte Datentypen

Beim Anlegen eines Feldes wählen Sie einen Datentyp aus. UDM unterstützt die folgenden Standard-Datentypen (basierend auf System.Data.DbType):

Datentyp Beschreibung Beispielwerte
String Zeichenkette mit konfigurierbarer Länge (StringLength) „Mustermann GmbH“, „info@beispiel.de“
Int32 Ganzzahl (32-Bit) 1, 42, 10000
Int64 Ganzzahl (64-Bit) für große Zahlenwerte 9999999999
Decimal Dezimalzahl mit hoher Präzision (z. B. Währungsbeträge) 19.99, 1234.5678
Double Gleitkommazahl (64-Bit) 3.14159, 0.001
Boolean Wahrheitswert (Ja/Nein) true, false
DateTime Datum und Uhrzeit 2026-03-13 14:30:00
Date Nur Datum (ohne Uhrzeit) 2026-03-13
Guid Eindeutiger Bezeichner (UUID), häufig für Primärschlüssel und Fremdschlüssel a1b2c3d4-e5f6-...
Binary Binärdaten (z. B. Dateien, Bilder)
Hinweis: Anzeigeformat Für jedes Feld können Sie ein Anzeigeformat (DisplayFormat) hinterlegen. Beispielsweise {0:dd.MM.yyyy} für ein deutsches Datumsformat oder {0:N2} für Dezimalzahlen mit zwei Nachkommastellen.
5

Wichtige Feldoptionen im Detail

Primärschlüssel und Identity

Jedes Datenobjekt benötigt mindestens ein Feld als Primärschlüssel. Wenn Sie die Option „PK ist Identity“ aktivieren, wird der Wert automatisch von der Datenbank vergeben (Auto-Increment). Bei Verwendung von Guid als Primärschlüssel erzeugt UDM automatisch neue IDs beim Anlegen von Datensätzen.

Fremdschlüssel (Foreign Keys)

Über Fremdschlüssel verknüpfen Sie Datenobjekte miteinander. Konfigurieren Sie dazu:

  • Ziel-Feld — Das Primärschlüsselfeld des verknüpften Datenobjekts.
  • Textspalten (TextColumns) — Welche Felder des verknüpften Objekts als Anzeige verwendet werden.
  • Textformat (TextFormat) — Optionales Format für die kombinierte Anzeige mehrerer Textspalten.

Virtuelle Spalten

Virtuelle Spalten (IsVirtualColumn) existieren nicht physisch in der Datenbank. Sie werden ausschließlich in der Benutzeroberfläche angezeigt und können im dynamischen Code vor dem Speichern verarbeitet werden — beispielsweise als Eingabefeld für eine Berechnung oder als Steuerelement für einen Workflow.

Änderungsprotokoll (Change Log)

Aktivieren Sie „ChangeLog aktiv“ auf dem Datenobjekt, um alle Änderungen an Datensätzen automatisch zu protokollieren. Mit „ChangeLog Pflicht“ erzwingen Sie, dass Anwender bei jeder Änderung einen Kommentar eingeben müssen.

Tipp: Dynamischer Code Datenobjekte unterstützen Before-Write-Code und After-Write-Code — dynamische Code-Blöcke, die vor bzw. nach dem Speichern eines Datensatzes ausgeführt werden. Damit können Sie Validierungen, Berechnungen oder automatische Aktionen implementieren.
6

Vom Datenobjekt zur Anwendung

Nachdem Sie Subsystem, Datenobjekte und Felder angelegt haben, folgen diese weiteren Schritte, um die Daten für Anwender nutzbar zu machen:

  1. Datenquellen erstellen — Definieren Sie, welche Felder in welcher Kombination abgefragt werden (Registerkarte „Datenquellen“ im Subsystem).
  2. Dialoge konfigurieren — Legen Sie fest, wie die Daten in der Benutzeroberfläche dargestellt und bearbeitet werden.
  3. Ansichtselemente einrichten — Platzieren Sie Tabellen, Formulare oder Diagramme auf den Seiten der Anwender-App.
  4. Berechtigungen vergeben — Steuern Sie, welche Benutzergruppen auf welche Datenobjekte zugreifen dürfen.
Hinweis: Strukturdiagramm Im Bereich „Verwaltung“ finden Sie das Strukturdiagramm, das alle Subsysteme, Datenobjekte und deren Verknüpfungen visuell darstellt. Nutzen Sie es zur Überprüfung Ihres Datenmodells.
7

Häufige Fragen (FAQ)

Kann ich ein Subsystem nachträglich umbenennen?

Ja, der Name und die Beschreibung eines Subsystems können jederzeit im Detaildialog geändert werden. Dies hat keine Auswirkung auf die technische Struktur oder bestehende Daten.

Was passiert, wenn ich ein Datenobjekt lösche?

Beim Löschen eines Datenobjekts werden auch alle zugehörigen Felder, Datenquellen und Ansichtselemente entfernt. Vorhandene Daten in der Datenbank werden dabei nicht automatisch gelöscht, sofern UDM nicht Eigentümer der Tabelle ist. Prüfen Sie vor dem Löschen alle Abhängigkeiten sorgfältig.

Was bedeutet „UDM ist Eigentümer“?

Wenn UdmIsOwner aktiviert ist, verwaltet UDM die zugrundeliegende Datenbanktabelle vollständig — einschließlich Erstellen, Ändern und Löschen von Datensätzen. Ist die Option deaktiviert, liest UDM die Daten nur aus einer externen Quelle und schreibt nicht zurück.

Wie viele Datenobjekte kann ein Subsystem enthalten?

Es gibt keine technische Obergrenze. Für eine übersichtliche Struktur empfehlen wir jedoch, fachlich zusammengehörige Datenobjekte in einem Subsystem zu gruppieren und bei Bedarf weitere Subsysteme für neue Fachbereiche anzulegen.

Kann ich Felder eines bestehenden Datenobjekts nachträglich hinzufügen?

Ja, Sie können jederzeit neue Felder zu einem Datenobjekt hinzufügen. Bestehende Datensätze erhalten für das neue Feld den Standardwert (meist NULL, sofern das Feld als „Nullable“ markiert ist). Beachten Sie, dass die zugrundeliegende Datenbanktabelle ebenfalls angepasst werden muss, wenn UDM nicht Eigentümer ist.

Achtung: UDM-Systemobjekte Subsysteme mit der Eigenschaft IsUdmSystem = true sind interne Systemobjekte von UDM. Diese sollten nur in Absprache mit dem UDM-Support verändert werden, da Änderungen die Systemstabilität beeinträchtigen können.