Stufe 4 — Apps verbinden: Das Ticketsystem

Zweite App, Cross-App-Verknüpfung, Kanban, übergreifende Dashboards

Apps verbinden
🎯 Ziel dieser Stufe: Eine zweite App (Ticketsystem) nutzt die gleichen Kunden- und Auftragsdaten. Beide Apps interagieren über gemeinsame Datenquellen und ein übergreifendes Dashboard.
Rollen in App 2: Ticketsystem
RolleAufgabenRechte
Support-Mitarbeiter Tickets bearbeiten, kommentieren, Status ändern Lesen/Schreiben auf zugewiesene Tickets
Support-Leiter Zuweisen, eskalieren, Support-Dashboard Lesen/Schreiben auf alle Tickets
Sachbearbeiter (aus App 1) Tickets zu eigenen Aufträgen einsehen Nur Lesen auf verknüpfte Tickets

Warum eine zweite App?

In vielen Unternehmen arbeiten verschiedene Teams mit unterschiedlichen Anwendungen — aber auf den gleichen Grunddaten. In UDM können mehrere Apps dasselbe Subsystem nutzen:

   App 1: AUFTRAGSMANAGEMENT        App 2: TICKETSYSTEM
   +-------------------------+      +-------------------------+
   | Kundenliste              |      | Ticket-Liste            |
   | Auftragsliste            |      | Kanban-Board            |
   | Management-Dashboard     |      | Support-Dashboard       |
   | Meine Aufträge           |      | Meine Tickets           |
   +-------------------------+      +-------------------------+
              |                                 |
              |     GEMEINSAMES SUBSYSTEM       |
              |        "Vertrieb"               |
              |                                 |
              v                                 v
   +---------------------------------------------------+
   |  Kunden  |  Aufträge  |  Tickets  |  Kommentare  |
   +---------------------------------------------------+

   "Beide Apps greifen auf dieselben Kunden zu.
    Tickets verweisen auf Aufträge aus App 1."

Zwei Apps, ein Subsystem: Getrennte Oberflächen, gemeinsame Datenbasis.

Wichtig: Die Kunden-Entity wird von beiden Apps genutzt. Wenn in App 1 ein Kunde geändert wird, sieht App 2 sofort die aktuellen Daten — und umgekehrt.

Datenmodell erweitern

Entity „Tickets“

FeldnameDatentypPflichtHinweis
TicketnrTextJaNummernkreis: T-0001, T-0002, ...
TitelTextJa
BeschreibungMemoNeinMehrzeiliges Textfeld
PrioritaetAuswahllisteJaNiedrig / Normal / Hoch / Kritisch
StatusAuswahllisteJaNeu / Offen / In Bearbeitung / Warte auf Kunde / Gelöst / Geschlossen
KategorieAuswahllisteNeinFrage / Problem / Änderungswunsch
ErstelltAmDatumJaAutomatisch
KundeIdVerweisJaFK → Kunden (aus App 1!)
AuftragIdVerweisNeinFK → Auftraege (optional)
ZugewiesenAnTextNein

Entity „TicketKommentare“

FeldnameDatentypHinweis
TicketIdVerweisFK → Tickets
VerfasserTextAutomatisch: aktueller Benutzer
TextMemo
ErstelltAmDatumAutomatisch
   KUNDEN            AUFTRÄGE           TICKETS            KOMMENTARE
   (App 1+2)         (App 1)              (App 2)            (App 2)
   +--------+        +----------+         +----------+       +-----------+
   |        |<-------|Kunde(FK) |    .----|Kunde(FK) |<------|Ticket(FK) |
   |        |        |          |    |    |Auftrag   |       |Verfasser  |
   |        |        |          |<---'    |(FK, opt.)|       |Text       |
   |        |        |          |         |Titel     |       |ErstelltAm |
   +--------+        +----------+         |Status    |       +-----------+
                                          |Priorität |
                                          +----------+

   "Tickets verweisen auf Kunden UND optional auf Aufträge."

Vollständiges Datenmodell: Tickets verbinden sich mit den bestehenden Daten aus App 1.

Cross-App-Verknüpfung

🎯 Datenquellen verbinden Ticket-Daten mit Kunden- und Auftragsdaten aus App 1.

Datenquellen für das Ticketsystem

DatenquelleBasisJoinsFilter
Alle Tickets Tickets Kunde → Firmenname, Auftrag → Auftragsnr
Meine Tickets Tickets wie oben ZugewiesenAn = [Aktueller Benutzer]
Tickets zum Auftrag Tickets Kunde → Firmenname AuftragId = [per ElementMapping]
ElementMapping: Die Datenquelle „Tickets zum Auftrag“ wird später im Auftragsdialog von App 1 eingebettet. Das ElementMapping sorgt dafür, dass automatisch nur die Tickets angezeigt werden, die zum aktuell geöffneten Auftrag gehören.

Ansichten für das Ticketsystem

Ticket-Liste (Grid)

NameTicket-Liste
TypGrid
DatenquelleAlle Tickets

Spalten: Ticketnr, Titel, Kunde, Auftrag, Priorität, Status, ZugewiesenAn

KPI-Indikator auf Priorität:

● RotKritisch
● GelbHoch
● GrünNormal / Niedrig

Ticket-Kanban

🎯 Ein Kanban-Board zeigt Tickets als Karten in Statusspalten. Per Drag&Drop kann der Status geändert werden.
Wie eine Pinnwand mit Haftnotizen: Jede Spalte steht für einen Status (Neu, Offen, In Bearbeitung, ...). Sie ziehen eine Karte von „Offen“ nach „In Bearbeitung“ — der Status wird automatisch geändert.
  1. Neues Ansichtselement
    NameTicket-Kanban
    TypKanban
    DatenquelleAlle Tickets
  2. Kanban konfigurieren
    SpaltenfeldStatus
    Karten-TitelTitel
    Karten-UntertitelTicketnr + Kunde
    FarbeNach Priorität
    Screenshot: Kanban-Board mit Ticket-Karten in Statusspalten

Dialog „Ticket bearbeiten“

  1. Dialog anlegen
    NameTicket bearbeiten
    EntityTickets
  2. Formularfelder
    FeldTypHinweis
    TitelTextfeldPflichtfeld
    BeschreibungMemoMehrzeilig
    KundeLookupZeigt Firmenname
    AuftragLookupOptional, zeigt Auftragsnr
    PrioritätDropdown
    KategorieDropdown
    StatusDropdown
  3. Subform: Kommentare

    Fügen Sie eine Subform für Ticket-Kommentare hinzu (chronologisch, neueste oben).

    Screenshot: Ticket-Dialog mit Kommentar-Subform

Aktionen im Ticketsystem

„Ticket zuweisen“ (nur Support-Leiter)

BedingungStatus = Neu oder Offen
AktionsschritteWriteData → ZugewiesenAn setzen + SendMessage an Mitarbeiter

„Ticket eskalieren“

AktionsschritteWriteData → Priorität auf „Kritisch“ + SendMessage an Support-Leiter

„Ticket lösen“

BedingungStatus = In Bearbeitung
AktionsschritteWriteData → Status auf „Gelöst“ + SendMessage an Ersteller

Von App 1 nach App 2: Verknüpfung

🎯 Im Auftragsdialog (App 1) werden die zugehörigen Tickets angezeigt, und per Aktion kann ein neues Ticket erstellt werden.
  1. Ticket-Liste im Auftragsdialog einbetten

    Fügen Sie dem Dialog „Auftrag bearbeiten“ (App 1) ein eingebettetes Ansichtselement hinzu:

    AnsichtselementTickets zum Auftrag (Grid)
    DatenquelleTickets zum Auftrag
  2. ElementMapping konfigurieren

    Das ElementMapping verbindet den aktuellen Auftrag mit der Ticket-Liste:

    QuelleAktueller Datensatz → Id
    ZielTicket-Filter → AuftragId

    So sieht der Sachbearbeiter direkt im Auftrag, welche Tickets dazu existieren.

  3. Aktion „Ticket erstellen“ im Auftragsdialog

    Ein Button im Auftragsdialog öffnet den Ticket-Dialog mit vorausgefülltem Kunden und Auftrag:

    AktionstypOpenDialog
    Ziel-DialogTicket bearbeiten
    VorausfüllungKundeId = aktueller Kunde, AuftragId = aktueller Auftrag
    Screenshot: Auftragsdialog mit eingebetteter Ticket-Liste und Button „Ticket erstellen“

App „Ticketsystem“ konfigurieren

  1. Neue App anlegen
    NameTicketsystem
    BeschreibungSupport-Tickets und Kundenanfragen
  2. Menüpunkte
    MenüpunktAnsichtselement
    Alle TicketsTicket-Liste
    KanbanTicket-Kanban
    Meine TicketsTicket-Liste (DS: Meine Tickets)
  3. Rollen und Berechtigungen

    Richten Sie die Rollen „Support-Mitarbeiter“ und „Support-Leiter“ ein (wie in der Rollen-Box oben beschrieben). Der „Sachbearbeiter“ aus App 1 erhält Leserechte auf Tickets.

Cross-App-Dashboard

🎯 Ein übergreifendes Dashboard zeigt KPIs aus beiden Apps auf einen Blick.
  1. Dashboard-Ansichtselement anlegen
    NameSupport-Dashboard
    TypDashboard
  2. KPI-Kacheln
    KPIQuelleAggregation
    Offene TicketsTickets (Status ≠ Gelöst/Geschlossen)Anzahl
    Kritische TicketsTickets (Priorität = Kritisch)Anzahl
    Offene AufträgeAuftraege (aus App 1)Anzahl
    Ø LösungszeitGelöste TicketsDurchschnitt (ErstelltAm bis Gelöst)
  3. Diagramme

    Tickets nach Kategorie (Donut) + Ticket-Trend über Zeit (Line) einbetten.

    Screenshot: Support-Dashboard mit KPIs aus beiden Apps

Hintergrund-Jobs für Tickets

DataChange-Trigger: Neues Ticket → Benachrichtigung

Trigger-TypDataChange (Post-Insert)
EntityTickets
AktionSendMessage an Support-Leiter
DataChange vs. Time-Trigger: Der Time-Trigger aus Stufe 2 läuft nach Zeitplan (z. B. täglich 8:00). Der DataChange-Trigger reagiert sofort, wenn ein Datensatz erstellt oder geändert wird — wie ein Klingelsignal bei neuer Post.

Time-Job: Eskalation unbearbeiteter Tickets

ZeitplanTäglich um 09:00 Uhr
BedingungStatus ≠ Gelöst/Geschlossen UND ErstelltAm < Heute − 7 Tage
AktionSendMessage → Eskalationsmail an Support-Leiter

Ergebnis: Alles zusammen testen

  1. In App 1: Auftrag öffnen → „Ticket erstellen“ klicken → Ticket mit Kunde und Auftrag vorausgefüllt
  2. In App 2: Neues Ticket im Kanban-Board sehen → per Drag&Drop auf „In Bearbeitung“ ziehen
  3. In App 2: Ticket öffnen → Kommentar hinzufügen → „Ticket lösen“
  4. In App 1: Im Auftragsdialog die Ticket-Liste prüfen — das Ticket zeigt Status „Gelöst“
  5. Support-Dashboard: KPIs aus beiden Apps auf einen Blick
✅ Kontrollpunkt — Stufe 4 abgeschlossen! Tutorial komplett!
  • Zweite App „Ticketsystem“ mit eigenem Datenmodell
  • Cross-App-Verknüpfung: Tickets verweisen auf Kunden und Aufträge aus App 1
  • Kanban-Board mit Drag&Drop-Statusänderung
  • Eingebettete Ticket-Liste im Auftragsdialog (ElementMapping)
  • Aktion „Ticket erstellen“ mit vorausgefüllten Feldern
  • Cross-App-Dashboard mit KPIs aus beiden Apps
  • DataChange-Trigger und Time-Job für automatische Eskalation
  • Eigene Rollen und Berechtigungen für das Support-Team

Zusammenfassung: Was Sie gelernt haben

StufeSie können jetzt...
0 Datenstrukturen verstehen: Tabellen, Beziehungen, Datentypen
1 Eine App von Grund auf bauen: Subsystem, Entities, Datenquellen, Ansichten, Formulare, Rollen
2 Geschäftslogik konfigurieren: Aktionen, Workflows, Benachrichtigungen, Hintergrund-Jobs
3 Apps erweitern: KPIs, Diagramme, Dashboards, Datenimport, Dateianhänge, PDF-Berichte
4 Apps verbinden: Gemeinsame Daten, Cross-App-Verknüpfung, Kanban, übergreifende Dashboards
Was kommt als Nächstes? In Stufe 5 zeigen wir, wie Sie die gleiche App mit dem KI-Assistenten in Minuten statt Stunden erstellen — und wann welcher Ansatz sinnvoller ist.