Abfragen von Variablen-Updates
- Aktualisiert2025-08-27
- 2 Minute(n) Lesezeit
HTTP-Clients erhalten Updates nach dem manuellen Abrufen von Informationen (Polling). HTTP verfügt nicht über eine automatisierte Methode, mit deren Hilfe Server HTTP-Clients über Ereignisse oder Änderungen informieren können. Zum Reduzieren von unnötiger Datenübertragung beim Polling bietet OData den Parameter $deltatoken. Mit diesem Parameter werden nur Objekte ausgegeben, die geändert oder hinzugefügt wurden.
Im Fall von VariableValueGroups werden mit dem Parameter $deltatoken aktualisierte Variablenwerte abgefragt. Werte, die sich seit dem letzten Abfragen nicht geändert haben, werden ausgelassen.
Der Vorgang läuft folgendermaßen ab:
Der HTTP-Client liest die Eigenschaft VariableValues einer Gruppe.
GET http://Mein_Server:3580/nivariable/VariableValueGroups('1587dcd4a87d118ae3ddd0fce09246f6')/VariableValues?$format=json
Der HTTP-Client erhält den anfänglichen Datensatz. Zum Abfragen der Delta-Änderung wird die folgende URI verwendet. Die URI wird von der Eigenschaft _delta vorgegeben und hat den Zeitstempel vom Abfragen des VariableValue als $deltatoken.
GET http://Mein_Server:3580/nivariable/VariableValueGroups('1587dcd4a87d118ae3ddd0fce09246f6')/VariableValues?$format=json&$deltatoken=1305692428170
Wenn seit dem letzten Abfragen keine Änderungen erfolgten, ist das Ergebnis leer. Zum erneuten Abfragen verwenden Sie die URI für Änderungen (Delta) der letzten Antwort.
GET http://Mein_Server:3580/nivariable/VariableValueGroups('1587dcd4a87d118ae3ddd0fce09246f6')/VariableValues?$format=json&$deltatoken=1305692428170
Abfragen von Variablen, die an externe I/O- oder andere Umgebungsvariablen gebunden sind, in festgelegten Intervallen
Wenn eine Umgebungsvariable an eine externe I/O- oder andere Umgebungsvariable gebunden ist, kann ein Update einen Zeitstempel haben, der älter ist als das Delta-Token. Das ist z. B. der Fall, wenn Sie eine Änderung zur Zeit t, abfragen und eine neue Wertänderung zur Zeit t+1 auftritt, aber den Zeitstempel t-1 hat. Beim nächsten Abfragen von Änderungen wird der Zeitstempel t-1 vom Server nicht mehr als neuer Wert betrachtet. Zum Vermeiden dieses Problems sollten Sie Variablenwerte in festgelegten Intervallen abfragen und nicht $delta verwenden.