Ü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.
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) undSourceTimestamp(für den Zeitstempel)
Schritt-für-Schritt-Anleitung
Teil 1: Ziel-Tabelle vorbereiten
-
Neues Datenobjekt anlegen
Erstellen Sie im UDM Admin Client ein neues Datenobjekt (z. B. „UDM_Alarme“) in Ihrem UDM-Subsystem. -
Pflichtfelder anlegen
Legen Sie folgende Spalten an:
Markieren SieSourceRecordIdText oder Ganzzahl — speichert den Primärschlüssel der Quell-Tabelle SourceTimestampDatum/Zeit — speichert den Zeitstempel der Quell-Tabelle SourceRecordIdals eindeutig (Unique), um Duplikate zu verhindern. -
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
-
Neuen Job anlegen
Öffnen Sie Aktionen & Jobs und erstellen Sie einen neuen Job:Name z. B. „Alarm-Überwachung SCADA“ Job-Typ Time (zeitgesteuert) Aktionstyp External Table Polling -
Tab „External Table Polling“ konfigurieren
Der neue Tab erscheint automatisch nach Auswahl des Aktionstyps.
Teil 3: Quelle konfigurieren
-
Quell-Subsystem und -Entity wählen
Wählen Sie das Subsystem der externen Datenbank und die zu überwachende Tabelle (Entity). -
Watermark-Felder angeben
ID-Feld (aufsteigend) Name der aufsteigenden PK-Spalte (z. B. AlarmId)Zeitstempel-Feld Name der Timestamp-Spalte (z. B. CreatedAt)Watermark-Modus ID + Zeitstempel (empfohlen) — erkennt neue und geänderte Datensätze -
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
-
Ziel-Subsystem und -Entity wählen
Wählen Sie Ihr UDM-Subsystem und die in Teil 1 angelegte Ziel-Tabelle. -
Zuordnungsfelder angeben
Feld für Quell-ID SourceRecordIdFeld für Quell-Timestamp SourceTimestamp -
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
-
Feld-Zuordnungen erstellen
Klicken Sie „Hinzufügen“ und ordnen Sie jedes Quell-Feld dem passenden Ziel-Feld zu:
Hinweis: Die Pflichtfelder (Quell-ID und Quell-Timestamp) werden automatisch gemappt.Quell-Feld → Ziel-Feld AlarmText → AlarmText Prioritaet → Prioritaet Anlage → Anlage Status → Status
Teil 6: Polling-Verhalten
-
Intervall und Batch-Größe einstellen
Basis-Intervall 5 Sekunden (Minimum bei aktiver Datenlieferung) Batch-Größe 100 (max. Datensätze pro Poll-Zyklus) Adaptives Polling Aktiviert — bei Leerlauf wird das Intervall automatisch hochgefahren (bis max. 60 Sek.)
Benachrichtigungen einrichten
Der Polling-Job kopiert nur Daten. Benachrichtigungen konfigurieren Sie über Nachrichtenvorlagen auf der Ziel-Tabelle — genau wie bei jeder anderen UDM-Tabelle:
-
Nachrichtenvorlage erstellen
Öffnen Sie die Ziel-Tabelle (z. B. „UDM_Alarme“) und legen Sie eine Nachrichtenvorlage an. -
Auslöser wählen
Bei neuen Datensätzen Aktivieren Sie „Neuer Datensatz“ — feuert bei jedem neuen Alarm Bei Änderungen Aktivieren Sie „Datensatz geändert“ — feuert z. B. bei Statuswechsel -
Versandbedingung (optional)
Setzen Sie eine Bedingung, z. B.Prioritaet = "Kritisch", damit nur kritische Alarme eine Nachricht auslösen. -
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.
Eskalationen einrichten
Für Eskalationen erstellen Sie zusätzliche Hintergrund-Jobs auf der Ziel-Tabelle:
- Neuen Time-Job anlegen auf der Ziel-Tabelle „UDM_Alarme“ mit Intervall 60 Minuten
-
Bedingung setzen (ConditionFunc oder Ausführungsbedingung):
Status != "Erledigt" AND Alter > 1 Stunde - Aktion: SendMessage mit einer Eskalations-Nachrichtenvorlage an den Schichtleiter
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 |
Unterstützte Datenquellen
External Table Polling funktioniert mit allen Subsystem-Typen, die in UDM angebunden werden können:
| Datenquelle | Polling möglich | Hinweis |
|---|---|---|
| SQL Server, PostgreSQL, MySQL, Oracle | Ja | ID + Timestamp nativ verfügbar |
| REST-API | Ja | Endpoint muss Sortierung und Filterung unterstützen |
| OData4 | Ja | $orderby + $filter werden nativ unterstützt |
| CSV | Nein | Keine Änderungserkennung möglich |
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
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.