OmniSeller:OmniSellerUpload ChangeTracking
OmniSeller Upload-Service: Change Tracking
Der OmniSeller Upload-Service kann Änderungen in der ERP-Datenbank automatisch erkennen und betroffene Artikel zum Upload vormerken. Dies geschieht über SQL-Trigger, die bei Datenänderungen Einträge in die HTKOmniUploadQueue schreiben.
Grundkonfiguration
Alle Einstellungen erfolgen in der OmniSeller.ini in der Sektion [ChangeTracking].
[ChangeTracking]
Enabled = 1 ; Master-Switch (muss 1 sein damit der Worker startet)
IntervalMs = 5000 ; Prüf-Intervall in Millisekunden (Standard: 5000 = 5 Sekunden)
Wichtig: Enabled = 1 ist Voraussetzung für alle anderen Tracking-Optionen.
Verfügbare Tracking-Optionen
| INI-Schlüssel | Tabelle | Beschreibung |
|---|---|---|
TrackPrices |
KHKPreislistenArtikel | Einzelpreise in Preislisten |
TrackKHKPreislisten |
KHKPreislisten | Gültigkeitsänderung der Preisliste selbst |
TrackPriceListValidity |
– (täglicher Check) | Preislisten die über Nacht gültig/ungültig wurden |
TrackAttributes |
oHTKAttributeEntities | Artikelattribute |
TrackKHKArtikel |
KHKArtikel | Stammdaten der Artikel |
TrackKHKArtikelVarianten |
KHKArtikelVarianten | Artikelvarianten |
TrackKHKArtikelLagerbewegungen |
KHKArtikelLagerbewegungen | Lagerbewegungen (für Bestandsänderungen) |
TrackKHKArtikelStueckliste |
KHKArtikelStueckliste | Stücklisten |
TrackHTKOmniAlternativeSKU |
HTKOmniAlternativeSKU | Alternative SKUs |
TrackOHTKSyncData |
oHTKSyncData | Sync-Daten |
TrackOHTKSyncDataClient |
oHTKSyncDataClient | Client-spezifische Sync-Daten |
Preisbezogene Tracking-Optionen im Detail
TrackPrices (Einzelpreise)
Überwacht die Tabelle KHKPreislistenArtikel. Ein Upload wird ausgelöst wenn:
- Ein Einzelpreis geändert wird
- Ein Artikel einer Preisliste hinzugefügt wird
- Ein Artikel aus einer Preisliste entfernt wird
Trigger:
TRIU_HTKSyncdata__KHKPreislistenArtikel(INSERT/UPDATE)TRD_HTKSyncdata__KHKPreislistenArtikel(DELETE)
Hinweis: Der Trigger reagiert nur auf echte Preisänderungen. Ein UPDATE das den gleichen Preis schreibt löst keinen Upload aus.
[ChangeTracking]
TrackPrices = 1
TrackKHKPreislisten (Preislisten-Gültigkeit)
Überwacht die Tabelle KHKPreislisten. Ein Upload wird ausgelöst wenn sich der Gültigkeitsstatus einer Preisliste ändert:
- Preisliste wird aktiviert (
Aktivgeändert) GueltigVonoderGueltigBisgeändert, sodass die Preisliste jetzt gültig/ungültig ist
Wichtig: Es werden alle Artikel dieser Preisliste zum Upload vorgemerkt.
Wann wird KEIN Upload ausgelöst:
- Änderung des Namens (
Bezeichnung) - Änderung anderer Felder die nicht die Gültigkeit betreffen
GueltigBisändern, aber Preisliste war und bleibt gültig
Trigger:
TRIU_OmniSellerTrigger_KHKPreislisten
[ChangeTracking]
TrackKHKPreislisten = 1
TrackPriceListValidity (Täglicher Gültigkeits-Check)
Dies ist kein Trigger, sondern ein täglicher Check der prüft:
- Welche Preislisten sind seit gestern gültig geworden? (GueltigVon erreicht)
- Welche Preislisten sind seit gestern ungültig geworden? (GueltigBis überschritten)
Anwendungsfall: Eine Preisliste hat GueltigVon = 2026-03-01. Am 1. März werden automatisch alle Artikel dieser Preisliste hochgeladen, auch wenn niemand etwas geändert hat.
[ChangeTracking]
TrackPriceListValidity = 1
Empfohlene Konfiguration für Preise
Für vollständiges Preis-Tracking empfehlen wir:
[ChangeTracking]
Enabled = 1
IntervalMs = 5000
; Preise
TrackPrices = 1 ; Einzelpreis-Änderungen
TrackKHKPreislisten = 1 ; Preisliste wird gültig/ungültig geschaltet
TrackPriceListValidity = 1 ; Preislisten die über Nacht gültig werden
Debugging
Für die Fehlersuche bei Preis-Problemen gibt es ein spezielles Debug-Log:
[Log]
Pricelog = 1
Dies schreibt detaillierte Informationen in preislogiclog.txt im Service-Verzeichnis:
- Welche Artikel in die Queue geschrieben werden
- Welche Tracking-Optionen aktiv sind
- SQL-Abfragen die ausgeführt werden
- Übersprungene Artikel und warum
Technische Details
Queue-Verarbeitung
Die HTKOmniUploadQueue wird in Batches von maximal 500 Einträgen verarbeitet. Bei mehr Einträgen erfolgt die Verarbeitung in mehreren Zyklen (alle IntervalMs Millisekunden).
Trigger-Management
Die SQL-Trigger werden vom Upload-Service automatisch verwaltet:
- Service startet: Trigger für aktivierte Optionen werden eingeschaltet
- Service stoppt: Alle Trigger werden deaktiviert (verhindert Queue-Überlauf)
Reason-Filterung
Die Queue-Einträge haben ein Reason-Feld das angibt woher der Eintrag kommt. Der Service verarbeitet nur Einträge deren Reason zu einer aktivierten Tracking-Option passt:
| Reason | Benötigte INI-Option |
|---|---|
| KHKPreislistenArtikel | TrackPrices = 1 |
| KHKPreislisten | TrackKHKPreislisten = 1 |
| KHKArtikel | TrackKHKArtikel = 1 |
| KHKArtikelVarianten | TrackKHKArtikelVarianten = 1 |
| KHKArtikelLagerbewegungen | TrackKHKArtikelLagerbewegungen = 1 |
| KHKArtikelStueckliste | TrackKHKArtikelStueckliste = 1 |
| HTKOmniAlternativeSKU | TrackHTKOmniAlternativeSKU = 1 |
| oHTKSyncData | TrackOHTKSyncData = 1 |
| oHTKSyncDataClient | TrackOHTKSyncDataClient = 1 |
| HTKOmniArtikelAttribute | TrackAttributes = 1 |
Einträge mit deaktiviertem Reason werden automatisch aus der Queue gelöscht.