====== TradeItemManagerBookCache ====== Der **TradeItemManagerBookCache** Benötigt im allg. den Jobstep [[prozessdefinition:jobs:jobsteps:supplier:tradeitemmanagerfillcache|TradeItemManagerFillCache]] und verbucht die, den CacheTabellen übergebenen ArtikelDetails, Preislinien oder Texte, mittels Stored-Procedure in die entsprechende ArticlePoolTabelle.\\ {{:images:sign_warning.png?nolink|}}**Hinweis:** Funktioniert nur in Verbindung mit dem _MS-SQL Server__! Alternativ ist der [[prozessdefinition:jobs:jobsteps:supplier:tradeitemmanagerbookcache|]] zu verwenden. ^Name ^Bedeutung | |**BookOption**| **//UpdateAndInsert://** Standardeinstellung, ändert vorhandene Artikel, falls Änderungen vorliegen, und fügt neue hinzu. **//NoUpdate://** Fügt nur neue Artikel hinzu. **//NoInsert://** Aktualisiert nur vorhandene Artikel, fügt keine neuen hinzu. **//ForceUpdate://** Wie **//UpdateAndInsert//** (ändern + einfügen) und markiert alle betroffenen Datensätze als geändert, d.h. auch die, bei denen keine Änderungen in Bezug auf die Daten vorliegen. Anm.: Diese Option ist für das Verbuchen von Artikeln wirksam.| |**Description**|Hier kann ggf. eine Beschreibung der konkreten Aufgabe des Jobsteps in diesem Job eingetragen werden.| |**Name**|Name des DirectSqlTradeItemManagers. Hier sollte nach Möglichkeit ein aussagekräftiger Name gewählt werden.| |**OverwriteArticleDetail**|Ermöglicht das Überschreiben von Artikel in der Datenbank.| |**SqlCommandTimeout**|Hier kann das SQL-Server-Timeout für die SQL-Anfragen eingetragen werden.| |**UpdateOnly**|Diese Option ist nur für Preislinien gedacht. Sie wirkt sich weder auf Artikel noch auf TextContainer aus. **//True://** Nur Änderungen vorhandenenr Preislinien buchen. **//False://** Neue und geänderte Preislinien verbuchen in ArticlePool.| ===== Verbuchen von Artikel im Supplier.ArticlePool ===== Artikel werden nach folgender Vorgehensweise im Supplier.ArtikelPool verbucht:\\ \\ **Artikel werden in der Datenbank nach Artikelnummer, Farbe, Größe gesucht.** - Fall: **Artikel ist nicht in Datenbank vorhanden:** * **EAN vorhanden:** Artikel aus Artikelkatalog wird nicht in die Datenbank geschrieben --> Log-Eintrag: Doppelter Artikel. * **Ean nicht vorhanden:** Artikel aus Artikelkatalog wird in der Datenbank neu angelegt. - Fall: **Artikel ist in Datenbank vorhanden:** * **EAN ist gleich:** Artikel aus Artikelkatalog wird mit dem aus der Datenbank verglichen, geänderte Felder werden in der Datenbank gespeichert. * **EAN ist nicht gleich:** Artikel aus Artikelkatalog wird nicht in die Datenbank geschrieben --> Log-Eintrag: Doppelter Artikel. {{:images:sign_warning.png?nolink|}}**Hinweis:** Um das gleichzeitige **Buchen** von **ArtikelPool-Daten** in die **CacheTabellen** oder in die **ArtikelPool-Tabellen** durch zwei nebeneinander laufenden Jobs zu vermeiden, ist dieser Jobstep mit einem **Lock-Mechanismuns** versehen. ===== Option OverwriteArticleDetail ===== Durch die Option **OverwriteArticleDetail** wird das Überschreiben eines Artikel in der Datenbank ermöglicht. Daraus ergeben sich die unten genanten Konstellationen: - Fall **Artikel ist nicht in Datenbank vorhanden:** * ** EAN vorhanden:** Datensatz zur Ean wird in Datenbank gelöscht, danach wird ein neuer Datensatz für den Artikel aus dem Artikelkatalog erstellt und in der Datenbank gespeichert. * ** Ean nicht vorhanden:** Artikel aus Artikelkatalog wird in der Datenbank neu angelegt. - Fall **Artikel ist in Datenbank vorhanden:** * ** EAN ist gleich:** Artikel aus Artikelkatalog wird mit dem aus der Datenbank verglichen, geänderte Felder werden in der Datenbank geupdated * ** EAN ist nicht gleich:** Datensatz mit Ean suchen und aus Datenbank löschen, neuen Datensatz für Artikel aus dem Artikelkatalog in Datenbank erstellen und speichern. ===== Folgende JobSteps werden i.d.R. mit dem TradeItemManagerBookCache verbunden ===== * [[prozessdefinition:jobs:jobsteps:allgemein:MessageSelector]] * [[prozessdefinition:jobs:jobsteps:allgemein:TaskNotificatorEx]]