Zum Inhalt springen

OmniSeller:OmniSellerUpload ChangeTracking: Unterschied zwischen den Versionen

Aus HTK Wiki
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 20: Zeile 20:
! INI-Schlüssel !! Tabelle !! Beschreibung
! INI-Schlüssel !! Tabelle !! Beschreibung
|-  
|-  
| <code>TrackPrices</code> || KHKPreislistenArtikel || Einzelpreise in Preislisten
|   <code>TrackPrices</code> || KHKPreislistenArtikel || Einzelpreise in Preislisten
|-  
|-  
| <code>TrackKHKPreislisten</code> || KHKPreislisten || Gültigkeitsänderung der Preisliste selbst
|   <code>TrackKHKPreislisten</code> || KHKPreislisten || Gültigkeitsänderung der Preisliste selbst
|-  
|-  
| <code>TrackPriceListValidity</code> || – (täglicher Check) || Preislisten die über Nacht gültig/ungültig wurden
|   <code>TrackPriceListValidity</code> || – (täglicher Check) || Preislisten die über Nacht gültig/ungültig wurden
|-  
|-  
| <code>TrackAttributes</code> || oHTKAttributeEntities || Artikelattribute
|   <code>TrackAttributes</code> || oHTKAttributeEntities || Artikelattribute
|-  
|-  
| <code>TrackKHKArtikel</code> || KHKArtikel || Stammdaten der Artikel
|   <code>TrackKHKArtikel</code> || KHKArtikel || Stammdaten der Artikel
|-  
|-  
| <code>TrackKHKArtikelVarianten</code> || KHKArtikelVarianten || Artikelvarianten
|   <code>TrackKHKArtikelVarianten</code> || KHKArtikelVarianten || Artikelvarianten
|-  
|-  
| <code>TrackKHKArtikelLagerbewegungen</code> || KHKArtikelLagerbewegungen || Lagerbewegungen (für Bestandsänderungen)
|   <code>TrackKHKArtikelLagerbewegungen</code> || KHKArtikelLagerbewegungen || Lagerbewegungen (für Bestandsänderungen)
|-  
|-  
| <code>TrackKHKArtikelStueckliste</code> || KHKArtikelStueckliste || Stücklisten
|   <code>TrackKHKArtikelStueckliste</code> || KHKArtikelStueckliste || Stücklisten
|-  
|-  
| <code>TrackHTKOmniAlternativeSKU</code> || HTKOmniAlternativeSKU || Alternative SKUs
|   <code>TrackHTKOmniAlternativeSKU</code> || HTKOmniAlternativeSKU || Alternative SKUs
|-  
|-  
| <code>TrackOHTKSyncData</code> || oHTKSyncData || Sync-Daten
|   <code>TrackOHTKSyncData</code> || oHTKSyncData || Sync-Daten
|-  
|-  
| <code>TrackOHTKSyncDataClient</code> || oHTKSyncDataClient || Client-spezifische Sync-Daten
|   <code>TrackOHTKSyncDataClient</code> || oHTKSyncDataClient || Client-spezifische Sync-Daten
|-
|    <code>TrackKHKRabattlistenArtikel</code> || KHKRabattlistenArtikel || Änderungen an Sage 100 Rabattlisten
|}
|}


Zeile 93: Zeile 95:
== Empfohlene Konfiguration für Preise ==
== Empfohlene Konfiguration für Preise ==


Für vollständiges Preis-Tracking empfehlen wir:
Für ein Preis-Tracking empfehlen wir:


<source lang="ini">
<source lang="ini">
Zeile 105: Zeile 107:
TrackPriceListValidity = 1  ; Preislisten die über Nacht gültig werden
TrackPriceListValidity = 1  ; Preislisten die über Nacht gültig werden
</source>
</source>
== Debugging ==
== Debugging ==



Aktuelle Version vom 21. April 2026, 13:30 Uhr

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 OmniSellerUpload.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
TrackKHKRabattlistenArtikel KHKRabattlistenArtikel Änderungen an Sage 100 Rabattlisten

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 (Aktiv geändert)
  • GueltigVon oder GueltigBis geä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 ein 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.

Siehe auch