6.2 External Table Polling — Externe Datenquellen überwachen

6.2 External Table Polling — Externe Datenquellen überwachen

Anleitung für Kundenadministratoren · UDM Admin Client

1

Überblick

External Table Polling ermöglicht die automatische Überwachung von ReadOnly-Datenquellen (z. B. SQL-Server-Tabellen, REST-APIs oder OData4-Endpunkte). Neue oder geänderte Datensätze werden erkannt und in eine UDM-eigene Ziel-Tabelle kopiert. Durch den normalen UDM-Speicher-Vorgang greifen anschließend automatisch alle bestehenden Mechanismen: Nachrichtenvorlagen, EntityCode-Hooks, Änderungsprotokoll und mehr.

Kernprinzip: Daten übernehmen statt direkt benachrichtigen Der Polling-Service hat nur eine Aufgabe: Daten von der externen Quelle in eine UDM-Tabelle kopieren. Alles Weitere (Benachrichtigungen, Eskalationen, Workflows) konfigurieren Sie über die bewährten UDM-Werkzeuge auf der Ziel-Tabelle.
Beispiel-Szenario: Ein SCADA-System schreibt Alarmmeldungen in eine SQL-Server-Tabelle, auf die UDM nur lesend zugreifen darf. Der Bereitschaftsdienst soll innerhalb von Sekunden per UDM-Nachricht und Push informiert werden. Wird ein Alarm nicht innerhalb von einer Stunde bearbeitet, soll automatisch eine Eskalationsnachricht an den Schichtleiter gehen.
2

Voraussetzungen

  • Die externe Datenquelle ist als Subsystem in UDM angebunden (SQL Server, REST-API, OData4 etc.)
  • Die Quell-Tabelle hat eine aufsteigende ID (auto-increment) und einen Zeitstempel (CreatedAt/ModifiedAt)
  • Eine UDM-Ziel-Tabelle (Datenobjekt) wurde angelegt, in die die Daten kopiert werden sollen
  • Die Ziel-Tabelle enthält mindestens die Felder SourceRecordId (für die Quell-ID) und SourceTimestamp (für den Zeitstempel)
3

Schritt-für-Schritt-Anleitung

Teil 1: Ziel-Tabelle vorbereiten

  1. Neues Datenobjekt anlegen
    Erstellen Sie im UDM Admin Client ein neues Datenobjekt (z. B. „UDM_Alarme“) in Ihrem UDM-Subsystem.
  2. Pflichtfelder anlegen
    Legen Sie folgende Spalten an:
    SourceRecordIdText oder Ganzzahl — speichert den Primärschlüssel der Quell-Tabelle
    SourceTimestampDatum/Zeit — speichert den Zeitstempel der Quell-Tabelle
    Markieren Sie SourceRecordId als eindeutig (Unique), um Duplikate zu verhindern.
  3. Fachliche Felder anlegen
    Legen Sie alle weiteren Felder an, die Sie aus der Quell-Tabelle übernehmen möchten (z. B. AlarmText, Prioritaet, Anlage, Status).

Teil 2: Polling-Job erstellen

  1. Neuen Job anlegen
    Öffnen Sie Aktionen & Jobs und erstellen Sie einen neuen Job:
    Namez. B. „Alarm-Überwachung SCADA“
    Job-TypTime (zeitgesteuert)
    AktionstypExternal Table Polling
  2. Tab „External Table Polling“ konfigurieren
    Der neue Tab erscheint automatisch nach Auswahl des Aktionstyps.

Teil 3: Quelle konfigurieren

  1. Quell-Subsystem und -Entity wählen
    Wählen Sie das Subsystem der externen Datenbank und die zu überwachende Tabelle (Entity).
  2. Watermark-Felder angeben
    ID-Feld (aufsteigend)Name der aufsteigenden PK-Spalte (z. B. AlarmId)
    Zeitstempel-FeldName der Timestamp-Spalte (z. B. CreatedAt)
    Watermark-ModusID + Zeitstempel (empfohlen) — erkennt neue und geänderte Datensätze
  3. Filter setzen (optional)
    Wenn nur bestimmte Datensätze übernommen werden sollen (z. B. nur aktive Alarme), können Sie einen Filter definieren.

Teil 4: Ziel konfigurieren

  1. Ziel-Subsystem und -Entity wählen
    Wählen Sie Ihr UDM-Subsystem und die in Teil 1 angelegte Ziel-Tabelle.
  2. Zuordnungsfelder angeben
    Feld für Quell-IDSourceRecordId
    Feld für Quell-TimestampSourceTimestamp
  3. Update-Verhalten festlegen
    Aktivieren Sie „Bestehende Datensätze aktualisieren“, wenn Änderungen an der Quelle (z. B. Statuswechsel) in die UDM-Tabelle übernommen werden sollen.
    Hinweis: Updates werden nur erkannt, wenn der Watermark-Modus „Nur Zeitstempel“ oder „ID + Zeitstempel“ gewählt ist. Im Modus „Nur ID“ werden ausschließlich neue Datensätze erkannt — die Einstellung „Bestehende aktualisieren“ hat dort keine Wirkung.

Teil 5: Feld-Mapping

  1. Feld-Zuordnungen erstellen
    Klicken Sie „Hinzufügen“ und ordnen Sie jedes Quell-Feld dem passenden Ziel-Feld zu:
    Quell-FeldZiel-Feld
    AlarmTextAlarmText
    PrioritaetPrioritaet
    AnlageAnlage
    StatusStatus
    Hinweis: Die Pflichtfelder (Quell-ID und Quell-Timestamp) werden automatisch gemappt.

Teil 6: Polling-Verhalten

  1. Intervall und Batch-Größe einstellen
    Basis-Intervall5 Sekunden (Minimum bei aktiver Datenlieferung)
    Batch-Größe100 (max. Datensätze pro Poll-Zyklus)
    Adaptives PollingAktiviert — bei Leerlauf wird das Intervall automatisch hochgefahren (bis max. 60 Sek.)
Adaptives Polling spart Ressourcen Wenn nach 3 aufeinanderfolgenden Poll-Zyklen keine neuen Daten eintreffen, verdoppelt der Service das Intervall automatisch (z. B. 5 s → 10 s → 20 s → 40 s → 60 s max.). Sobald neue Daten erkannt werden, springt das Intervall sofort auf den Basis-Wert zurück.
Polling-Konfiguration: Quelle, Watermark und Intervall
Quell-Tabelle
Subsystem
SCADA-DB (SQL Server)
Quell-Entity
Alarme
ID-Feld
AlarmId
Zeitstempel-Feld
CreatedAt
Watermark-Modus
ID + Zeitstempel
Polling
Basis-Intervall
5 Sek.
Batch-Größe
100
Adaptiv (max. 60 s)
Status-Übersicht: Letzter Lauf und übertragene Datensätze
Service läuftIntervall 5 sLetzter Lauf vor 2 sHeute neu 142Updates 38
4

Benachrichtigungen einrichten

Der Polling-Job kopiert nur Daten. Benachrichtigungen konfigurieren Sie über Nachrichtenvorlagen auf der Ziel-Tabelle — genau wie bei jeder anderen UDM-Tabelle:

  1. Nachrichtenvorlage erstellen
    Öffnen Sie die Ziel-Tabelle (z. B. „UDM_Alarme“) und legen Sie eine Nachrichtenvorlage an.
  2. Auslöser wählen
    Bei neuen DatensätzenAktivieren Sie „Neuer Datensatz“ — feuert bei jedem neuen Alarm
    Bei ÄnderungenAktivieren Sie „Datensatz geändert“ — feuert z. B. bei Statuswechsel
  3. Versandbedingung (optional)
    Setzen Sie eine Bedingung, z. B. Prioritaet = "Kritisch", damit nur kritische Alarme eine Nachricht auslösen.
  4. Empfänger und Vorlage
    Konfigurieren Sie Empfänger (Benutzer, Rollen), Betreff und Nachrichtentext wie gewohnt. Alle Felder der Ziel-Tabelle stehen als Platzhalter zur Verfügung.
5

Eskalationen einrichten

Für Eskalationen erstellen Sie zusätzliche Hintergrund-Jobs auf der Ziel-Tabelle:

  1. Neuen Time-Job anlegen auf der Ziel-Tabelle „UDM_Alarme“ mit Intervall 60 Minuten
  2. Bedingung setzen (ConditionFunc oder Ausführungsbedingung):
    Status != "Erledigt" AND Alter > 1 Stunde
  3. Aktion: SendMessage mit einer Eskalations-Nachrichtenvorlage an den Schichtleiter
Mehrere Eskalationsstufen Erstellen Sie mehrere Jobs mit unterschiedlichen Bedingungen: z. B. nach 1 Stunde an den Schichtleiter, nach 4 Stunden an den Betriebsleiter. Sobald die externe Quelle den Status ändert und der Polling-Service das Update übernimmt, matchen die Bedingungen nicht mehr — die Eskalation endet automatisch.
6

Watermark-Modi im Detail

Modus Erkennt neue Datensätze Erkennt Updates Empfehlung
Nur ID Ja Nein Wenn nur neue Datensätze relevant sind
Nur Zeitstempel Ja Ja Wenn die Quelle keine aufsteigende ID hat
ID + Zeitstempel Ja Ja Empfohlen — robustester Modus
7

Unterstützte Datenquellen

External Table Polling funktioniert mit allen Subsystem-Typen, die in UDM angebunden werden können:

DatenquellePolling möglichHinweis
SQL Server, PostgreSQL, MySQL, OracleJaID + Timestamp nativ verfügbar
REST-APIJaEndpoint muss Sortierung und Filterung unterstützen
OData4Ja$orderby + $filter werden nativ unterstützt
CSVNeinKeine Änderungserkennung möglich
8

Ergebnis

Nach Abschluss der Konfiguration haben Sie:

  • Einen Polling-Job, der alle 5 Sekunden (adaptiv bis 60 Sek.) die externe Quelle überprüft
  • Neue und geänderte Datensätze werden automatisch in die UDM-Ziel-Tabelle übernommen
  • Nachrichtenvorlagen auf der Ziel-Tabelle versenden automatisch Benachrichtigungen (intern, E-Mail, Push)
  • Eskalations-Jobs sorgen für zeitgesteuerte Erinnerungen bei offenen Vorgängen
9

Häufige Fragen

Belastet das 5-Sekunden-Polling die externe Datenbank?

Minimal. Im Leerlauf führt der Service nur einen leichtgewichtigen SELECT TOP 1 aus (< 1 ms). Durch adaptives Polling wird das Intervall bei Inaktivität automatisch auf bis zu 60 Sekunden erhöht.

Was passiert bei einem Verbindungsabbruch zur externen Datenbank?

Der Service protokolliert eine Warnung und versucht es beim nächsten Tick erneut. Es gehen keine Daten verloren — der Watermark wird nur bei erfolgreicher Verarbeitung weitergerückt.

Kann der gleiche Datensatz mehrfach verarbeitet werden?

Nein. Der SourceRecordId-Unique-Index auf der Ziel-Tabelle verhindert Duplikate. Bereits vorhandene Datensätze werden nur aktualisiert, wenn sich der Zeitstempel geändert hat.

Werden die Daten in der externen Tabelle verändert?

Nein. UDM liest die externe Tabelle ausschließlich. Alle Statusverfolgung erfolgt in der UDM-eigenen Ziel-Tabelle.