<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.htk.de/index.php?action=history&amp;feed=atom&amp;title=OmniSeller%3AOmniSellerUploadDienst</id>
	<title>OmniSeller:OmniSellerUploadDienst - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.htk.de/index.php?action=history&amp;feed=atom&amp;title=OmniSeller%3AOmniSellerUploadDienst"/>
	<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=OmniSeller:OmniSellerUploadDienst&amp;action=history"/>
	<updated>2026-04-28T15:05:37Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in HTK Wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.htk.de/index.php?title=OmniSeller:OmniSellerUploadDienst&amp;diff=6624&amp;oldid=prev</id>
		<title>Admin: Die Seite wurde geleert.</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=OmniSeller:OmniSellerUploadDienst&amp;diff=6624&amp;oldid=prev"/>
		<updated>2026-02-06T10:09:42Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde geleert.&lt;/p&gt;
&lt;a href=&quot;https://wiki.htk.de/index.php?title=OmniSeller:OmniSellerUploadDienst&amp;amp;diff=6624&amp;amp;oldid=6623&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=OmniSeller:OmniSellerUploadDienst&amp;diff=6623&amp;oldid=prev</id>
		<title>Admin: 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 &lt;code&gt;HTKOmniUploadQueue&lt;/code&gt; schreiben.  == Grundkonfiguration ==  Alle Einstellungen erfolgen in der &lt;code&gt;OmniSeller.ini&lt;/code&gt; in der Sektion &lt;code&gt;[ChangeTracking]&lt;/code&gt;.  &lt;source lang=&quot;ini&quot;&gt; […“</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=OmniSeller:OmniSellerUploadDienst&amp;diff=6623&amp;oldid=prev"/>
		<updated>2026-02-06T10:08:19Z</updated>

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