Zum Inhalt springen

OmniSeller:OmniSellerUploadDienst: Unterschied zwischen den Versionen

Aus HTK Wiki
Die Seite wurde neu angelegt: „= 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 <code>HTKOmniUploadQueue</code> schreiben. == Grundkonfiguration == Alle Einstellungen erfolgen in der <code>OmniSeller.ini</code> in der Sektion <code>[ChangeTracking]</code>. <source lang="ini"> […“
 
Die Seite wurde geleert.
Markierung: Geleert
 
Zeile 1: Zeile 1:
= 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 <code>HTKOmniUploadQueue</code> schreiben.
== Grundkonfiguration ==
Alle Einstellungen erfolgen in der <code>OmniSeller.ini</code> in der Sektion <code>[ChangeTracking]</code>.
<source lang="ini">
[ChangeTracking]
Enabled = 1          ; Master-Switch (muss 1 sein damit der Worker startet)
IntervalMs = 5000    ; Prüf-Intervall in Millisekunden (Standard: 5000 = 5 Sekunden)
</source>
'''Wichtig:''' <code>Enabled = 1</code> ist Voraussetzung für alle anderen Tracking-Optionen.
== Verfügbare Tracking-Optionen ==
{| class="wikitable"
! INI-Schlüssel !! Tabelle !! Beschreibung
|-
| <code>TrackPrices</code> || KHKPreislistenArtikel || Einzelpreise in Preislisten
|-
| <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>TrackAttributes</code> || oHTKAttributeEntities || Artikelattribute
|-
| <code>TrackKHKArtikel</code> || KHKArtikel || Stammdaten der Artikel
|-
| <code>TrackKHKArtikelVarianten</code> || KHKArtikelVarianten || Artikelvarianten
|-
| <code>TrackKHKArtikelLagerbewegungen</code> || KHKArtikelLagerbewegungen || Lagerbewegungen (für Bestandsänderungen)
|-
| <code>TrackKHKArtikelStueckliste</code> || KHKArtikelStueckliste || Stücklisten
|-
| <code>TrackHTKOmniAlternativeSKU</code> || HTKOmniAlternativeSKU || Alternative SKUs
|-
| <code>TrackOHTKSyncData</code> || oHTKSyncData || Sync-Daten
|-
| <code>TrackOHTKSyncDataClient</code> || oHTKSyncDataClient || Client-spezifische Sync-Daten
|}
== Preisbezogene Tracking-Optionen im Detail ==
=== TrackPrices (Einzelpreise) ===
Überwacht die Tabelle <code>KHKPreislistenArtikel</code>. 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:'''
* <code>TRIU_HTKSyncdata__KHKPreislistenArtikel</code> (INSERT/UPDATE)
* <code>TRD_HTKSyncdata__KHKPreislistenArtikel</code> (DELETE)
'''Hinweis:''' Der Trigger reagiert nur auf '''echte''' Preisänderungen. Ein UPDATE das den gleichen Preis schreibt löst keinen Upload aus.
<source lang="ini">
[ChangeTracking]
TrackPrices = 1
</source>
=== TrackKHKPreislisten (Preislisten-Gültigkeit) ===
Überwacht die Tabelle <code>KHKPreislisten</code>. Ein Upload wird ausgelöst wenn sich der '''Gültigkeitsstatus''' einer Preisliste ändert:
* Preisliste wird aktiviert (<code>Aktiv</code> geändert)
* <code>GueltigVon</code> oder <code>GueltigBis</code> 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 (<code>Bezeichnung</code>)
* Änderung anderer Felder die nicht die Gültigkeit betreffen
* <code>GueltigBis</code> ändern, aber Preisliste war und bleibt gültig
'''Trigger:'''
* <code>TRIU_OmniSellerTrigger_KHKPreislisten</code>
<source lang="ini">
[ChangeTracking]
TrackKHKPreislisten = 1
</source>
=== 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 <code>GueltigVon = 2026-03-01</code>. Am 1. März werden automatisch alle Artikel dieser Preisliste hochgeladen, auch wenn niemand etwas geändert hat.
<source lang="ini">
[ChangeTracking]
TrackPriceListValidity = 1
</source>
== Empfohlene Konfiguration für Preise ==
Für vollständiges Preis-Tracking empfehlen wir:
<source lang="ini">
[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
</source>
== Debugging ==
Für die Fehlersuche bei Preis-Problemen gibt es ein spezielles Debug-Log:
<source lang="ini">
[Log]
Pricelog = 1
</source>
Dies schreibt detaillierte Informationen in <code>preislogiclog.txt</code> 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 <code>HTKOmniUploadQueue</code> wird in Batches von maximal 500 Einträgen verarbeitet. Bei mehr Einträgen erfolgt die Verarbeitung in mehreren Zyklen (alle <code>IntervalMs</code> 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 <code>Reason</code>-Feld das angibt woher der Eintrag kommt. Der Service verarbeitet nur Einträge deren Reason zu einer aktivierten Tracking-Option passt:
{| class="wikitable"
! 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 ==
* [[OmniSeller Upload-Service Installation]]
* [[OmniSeller.ini Referenz]]
* [[OmniSeller Preislogik]]
[[Kategorie:OmniSeller]]
[[Kategorie:Upload-Service]]
[[Kategorie:Konfiguration]]

Aktuelle Version vom 6. Februar 2026, 10:09 Uhr