Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_importitemdata_ad

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

engine:procedures:im_importitemdata_ad [11.01.2016 ] (aktuell)
Zeile 1: Zeile 1:
 +===== im_ImportItemData_Ad =====
 +
 +Importiert Artikeldaten aus den Tabellen ...
 +  * "​ImportItemData_Items"​
 +  * "​ImportItemData_Variants"​
 +  * "​ImportItemData_Properties"​
 +  * "​ImportItemData_ValueDetails"​
 +  * "​ImportItemData_CopyItems"​.
 +Außerdem werden Artikel bzw. Varianten, die in der Tabelle "​RemoveItemsOrVariants"​ stehen, gelöscht bzw. deaktiviert.\\ ​
 +
 +Hinweis :\\ Schnittstellen-Tabellen bilden generell die einzige Ausnahme für eine direkte Daten-Manipulation,​ d.h. OHNE Verwendung von Prozedur-Aufrufen. Daher werden in dieser Dokumentation (s.u., "​Tabellen-Definitionen und Hinweise"​) die Spalten der genannten Tabellen dokumentiert,​ was gleichzeitig die Gewähr von Abwärtskompatibilität bedeutet - es kann sich lediglich der Datentyp "​erweitern"​ (z.B. von "​tinyint"​ auf "​smallint"​ oder von "​varchar(100)"​ auf "​varchar(250)"​ o.ä.) oder es können neue Spalten, die dann aber "​NULL"​able (also optional) sind, hinzukommen !\\ 
 +
 +Die Prozedur erkennt, welche Daten bereits importiert wurden und welche Eigenschaften sich geändert haben.\\ ​
 +
 +Die Reihenfolge der Knoten unterhalb ihres Vorgängers wird durch die Reihenfolge bestimmt, in der die Datensätze in "​ImportItemData_Items"​ bzw. "​ImportItemData_Variants"​ eingefügt wurden; diese wird - falls "​UpdateSortNo = 1" - auch in "​TreeView"​ entsprechend via "​SortNo"​ abgebildet. Soll die evtl. bestehende Reihenfolge (es sind also bereits Daten vorhanden) nicht geändert werden, ist der Parameter "​UpdateSortNo"​ auf den Wert "​0"​ zu setzen. In jedem Fall werden neue Artikel bzw. Varianten unten (also mit kleinerer "​SortNo"​ als die bereits existierenden "​benachbarten"​ Elemente) angefügt.\\ ​
 +
 +Artikel, die neu importiert wurden, sind immer deaktiviert. Möchte man, daß diese Elemente automatisch aktiviert werden, ist "​ActivateImportedItems"​ auf "​1"​ zu setzen.\\ Wenn "​ActivateImportedItems = 1", dann werden deaktivierte Elemente, die in den Schnittstellen-Tabellen sind, aber bereits existieren, aktiviert !\\ 
 +
 +Wenn ein Artikel oder eine Variante bereits vorhanden ist, jedoch einen anderen Vorgänger hat, als in der entsprechenden Import-Tabelle angegeben, wird ein neues Element angelegt, d.h. diese Prozedur verschiebt keine Knoten !!! Das kann allerdings durch den Parameter "​HandleExistingItemNotImported"​ quasi simuliert werden. Dieser Parameter bestimmt, was mit den Elementen passieren soll, die bereits existieren, aber nicht mit dem gleichen Vorgänger (!) in den Importtabellen stehen. Hier die Bedeutung für "​HandleExistingItemNotImported"​ :
 +    * 0 : es passiert gar nichts
 +    * 1 : diese Elemente werden deaktiviert
 +    * 2 : die betroffenen Knoten sollen gelöscht werden (!!! noch nicht implementiert !!!)
 +Der Parameter wird komplett ignoriert, wenn die Schnittstellentabellen "​ImportItemData_Items"​ und "​ImportItemData_Variants"​ leer sind, also nur Eigenschaften importiert werden !\\ 
 +
 +Die "​UniqueCategoryName"​s in "​ImportItemData_Items"​ kennzeichnen Elemente im Artikelbaum,​ die auf einer höheren Hierarchiestufe als Produkte sind. Für die eindeutige Kennzeichnung eines solchen Elements KANN die "​NodeDescription"​ aus "​dStore"​ herangezogen werden oder aber die Eigenschaft zum Merkmal "​Eindeutiger Bezeichner"​ mit der ID "​18"​. Dabei ist allerdings zu beachten, daß die Prozedur ZUERST nach der Eigenschaft sucht und nur falls diese Eigenschaft NICHT vorhanden ist die "​NodeDescription"​ verwendet.\\ ​
 +
 +Der Import schlägt fehl (mit einer Meldung, daß ein "​NULL"​-Wert nicht in eine Spalte eingefügt werden kann, die keine "​NULL"​-Werte erlaubt, Return-Code "​530"​),​ wenn es im dStore Produkt-Elemente (oder Varianten) gibt, die keine Artikelnummer (also keine Eigenschaft zum Merkmal "​Artikelnummer",​ ID "​6"​) haben.\\ ​
 +
 +ACHTUNG : Es können keine Eigenschaften zum Merkmal "​6"​ oder "​18"​ importiert werden (-> sonst Fehler "​-500"​)\\ ​
 +
 +"​CheckTextAndBitCharacs"​ gibt an, ob Eigenschaften NUR ZU DEN Merkmalen überprüft werden, deren Basis-Feldtyp "​Text"​ oder "​Ja/​Nein"​ ist. Analog werden im Fall "​CheckExceptTextAndBitCharacs = 1" Eigenschaften zu allen Merkmalen gecheckt, deren Basis-Feldtyp NICHT "​Text"​ oder "​Ja/​Nein"​ ist.\\ Anmerkung :\\ Die Unterscheidung zwischen diesen Arten von Merkmalen liegt darin begründet, daß beim Check von Zahl- oder Datumsformaten keine im SQL-Server eingebauten Funktionen wie "​IsDate"​ oder "​IsNumber"​ verwendet werden können. (Es muß daher ein cursor verwendet werden, um für jeden einzelnen Wert eine Prozedur aufzurufen - was langsamer ist)\\ ​
 +
 +ACHTUNG : Die Default-Werte der "​Check"​-Parameter sollten nur dann geändert werden, wenn man sich ganz sicher ist, daß die Daten ok sind oder eine Überprüfung vor dem Import stattgefunden hat !!!\\ 
 +
 +Fehler werden, falls gewünscht (-> "​LogErrors"​),​ in der Tabelle "​ImportItemData_Property_Errors"​ protokolliert.\\ Z.Zt. gibt es nur einen Error-Code, nämlich :
 +    * 1 : Der Wert ist ungültig, d.h. entspricht nicht dem Feldtyp des zugehörigen Merkmals
 +
 +
 +Hinweis zur Tabelle "​ImportItemData_CopyItems"​ :\\ Eigenschaften der Merkmal-IDs,​ die in "​Settings"​ zum Schlüssel "​NodeCharacIDsToIgnoreDuringCopyOrSync"​ konfiguriert sind, werden hierbei ignoriert also weder kopiert noch synchronisiert !\\ 
 +
 +Der Parameter "​PerformanceTuning"​ hat folgenden Hintergrund :\\ Um eine Verbindung zwischen den in den Interface-Tabellen angegebenen Artikelnummern und den "​NodeID"​s herstellen zu können, muß eine Abfrage auf "​NodeCharacteristicValues"​ und "​NodeProperties"​ durchgeführt werden. Es gibt dabei grundsätzlich zwei Möglichkeiten. Man kann entweder nur die "​NodeID"​s zu den Artikelnummern aus den Schnittstellen-Tabellen ermitteln ("​PerformanceTuning = 1") oder man ermittelt die Artikelnummern zu allen "​NodeID"​s ("​PerformanceTuning = 0"). Gerade wenn aber keine neuen Artikel, sondern nur einige Eigenschaften zu bestehenden Artikeln importiert werden sollen, kann die erste Variante ("​PerformanceTuning = 1") wesentlich günstiger sein !\\ ACHTUNG : Falls Daten in "​ImportItemData_Items"​ und/oder "​ImportItemData_Variants"​ stehen, wird "​PerformanceTuning = 1" nur berücksichtigt,​ wenn gleichzeitig "​UpdateSortNo = 0" und "​HandleExistingItemNotImported = 0" ist !\\ 
 +
 +Wenn sehr viele Artikeldaten importiert werden, ist es ratsam, das Transaktionslog am Anfang zu leeren; wenn dem so ist, muß der Parameter "​DumpTransaction"​ entsprechend auf "​1"​ gesetzt werden.\\ WICHTIG : Der Aufrufer muß Systemoperator sein, um ein "dump transaction"​ ausführen zu dürfen.\\ ​
 +
 +Zum Leeren des Transaktions-Logs ist noch zu sagen, daß man alternativ ein Backup des Logs mit anschließendem Leeren veranlassen kann, indem man über den Settings-Eintrag "​DumpPath"​ einen (relativ zum $SYBASE directory !) Pfad angibt, in dem ein Backup des Transaktions-Logs geschrieben werden soll. Der Name des Files hat immer die Form "<​Datenbankname>​_logdump_<​aktueller Timestamp>"​.\\ ​
 +
 +Anmerkungen :\\ 1) Kommen neue Werte zu Merkmalen mit vordefinierten Werten ("​PredefinedValues = 1") hinzu, werden diese nach unten sortiert.\\ 2) Zu "​ValueDetails"​ : Wie der Name schon sagt, handelt es sich um Details ZU Werten, das bedeutet, zu jedem Datensatz in "​ImportItemData_ValueDetails"​ muß ein entsprechender Wert in "​ImportItemData_Properties"​ (oder bereits in "​NodeCharacteristicValues"​) existieren !\\ 
 +
 +
 +
 +Wenn in "​ImportFromTableName"​ der Name einer speziellen Import-Tabelle (durch [[dstoreproc>​im_DeleteInterfaceTables_Ad]] angelegt - siehe Parameter "​CreateImportTable_dstoreifin"​ - und i.d.R. anschließend via "​bcp"​ befüllt) angegeben wird, werden die Daten aus dieser Tabelle importiert.\\ Genauer werden die Daten von dort in die besagten "​normalen"​ Import-Tabellen ("​ImportItemData_Items",​ "​ImportItemData_Variants",​ "​ImportItemData_Properties",​ "​ImportItemData_ValueDetails",​ "​ImportItemData_CopyItems"​ und "​RemoveItemsOrVariants"​) hier umkopiert und anschließend dann der "​normale"​ Import durchgeführt.\\ Wird der Import über die spezielle Import-Tabelle in "​ImportFromTableName"​ ausgeführt,​ kann über den "​Settings"​-Eintrag zum Schlüssel "​MaxNumberOfItemsToImportSimultaneously"​ konfiguriert werden, wie viele Items pro Transaktion importiert werden. Ist keine Einstellung zum Schlüssel vorhanden oder ein Wert < 1 konfiguriert,​ werden alle "​Items"​ in einer großen Transaktion importiert.\\ ACHTUNG : Das Vorgehen über die spezielle Import-Tabelle in "​ImportFromTableName"​ ist derzeit noch "​experimentell"​ und ausschließlich der speziellen Anwendung "​xml_SmartGate"​ vorbehalten,​ daher steht bis auf weiteres KEINE nähere Dokumentation hierzu zur Verfügung. Wie die Tabellen-Definition aussieht, kann man zwar [[dstoreproc>​im_DeleteInterfaceTables_Ad]] entnehmen (und theoretisch kann man auch selbst eine entsprechende temporäre "​Session"​-Tabelle erstellen und füllen), aber eine Beschreibung zur Bedeutung der einzelnen Spalten (bzw. welche Werte man dort wie einfügen muß) gibt es z. Zt. NICHT.\\ ​
 +
 +
 +
 +"​Tabellen-Definitionen und Hinweise"​\\ ​
 +
 +
 +
 +1.) Definition "​ImportItemData_Items"​ :\\ 
 +
 +CREATE TABLE\\ ​  ​ImportItemData_Items ( UniqueCategoryName ​ varchar(400) NULL,​\\ ​                         ItemNo ​             varchar(400) NOT NULL,​\\ ​                         ItemDescription ​    ​varchar(100) NOT NULL\\ ​                       )\\ 
 +
 +CREATE UNIQUE INDEX PK_IMPORTITEMDATA_ITEMS ON ImportItemData_Items ( ItemNo )\\ 
 +
 +Hinweis : Wie Artikel-Elemente (genauer "​Kategorien"​) anhand von "​UniqueCategoryName"​ gefunden/​identifiziert werden, wurde oben schon beschrieben.\\ ​
 +
 +
 +
 +2.) Definition "​ImportItemData_Variants"​ :\\ 
 +
 +CREATE TABLE\\ ​  ​ImportItemData_Variants ( ItemNo ​             varchar(400) NOT NULL,​\\ ​                            ​VariantNo ​          ​varchar(400) NOT NULL,​\\ ​                            ​VariantDescription ​ varchar(100) NOT NULL\\ ​                          ​)\\ ​
 +
 +CREATE UNIQUE INDEX PK_IMPORTITEMDATA_VARIANTS ON ImportItemData_Variants ( VariantNo )\\ 
 +
 +Hinweise :\\ a) Die "​ItemNo"​-Werte referenzieren auf die Werte der gleichnamigen Spalte von "​ImportItemData_Items"​ ODER auf Artikelnummern (Eigenschaft zum Merkmal mit der ID "​6"​) von schon vorhandenen Produkten.\\ b) Es ist natürlich NICHT erlaubt, "​VariantNo"​-Werte zu verwenden, die als "​ItemNo"​ übergeben werden ODER schon zu bestehenden Produkten als Artikelnummer verwendet werden !\\ 
 +
 +
 +
 +3.) Definition "​ImportItemData_Properties"​ :\\ 
 +
 +CREATE TABLE\\ ​  ​ImportItemData_Properties ( VariantOrItemNo ​      ​varchar(400) NOT NULL,​\\ ​                              ​NodeCharacteristicID ​ smallint NOT NULL,​\\ ​                              ​Value ​                ​varchar(1000) NOT NULL\\ ​                            ​)\\ ​
 +
 +CREATE UNIQUE CLUSTERED INDEX PK_IMPORTITEMDATA_PROPERTIES ON ImportItemData_Properties ( VariantOrItemNo,​ NodeCharacteristicID )\\ 
 +
 +Hinweis : "​VariantOrItemNo"​-Werte referenzieren auf "​ItemNo"​-Werte aus "​ImportItemData_Items"​ oder "​VariantNo"​-Werte aus "​ImportItemData_Variants"​ ODER auf Artikelnummern (Eigenschaft zum Merkmal mit der ID "​6"​) von schon vorhandenn Produkten/​Varianten.\\ ​
 +
 +
 +
 +4.) Definition "​ImportItemData_ValueDetails"​ :\\ 
 +
 +CREATE TABLE\\ ​  ​ImportItemData_ValueDetails ( NodeCharacteristicID ​ smallint NOT NULL,​\\ ​                                ​Value ​                ​varchar(1000) NOT NULL,​\\ ​                                ​ValueDetail ​          text NOT NULL\\ ​                              ​)\\ ​
 +
 +CREATE UNIQUE CLUSTERED INDEX PK_IMPORTITEMDATA_VALUEDETAILS ON ImportItemData_ValueDetails ( NodeCharacteristicID,​ Value )\\ 
 +
 +
 +
 +5.) Definition "​ImportItemData_CopyItems"​ :\\ 
 +
 +CREATE TABLE\\ ​  ​ImportItemData_CopyItems ( SourceUniqueCategoryName ​ varchar(400) NOT NULL,​\\ ​                             SourceItemNo ​             varchar(400) NOT NULL,​\\ ​                             TargetUniqueCategoryName ​ varchar(400) NOT NULL,​\\ ​                             Clone                     bit NOT NULL\\ ​                           )\\ 
 +
 +CREATE UNIQUE CLUSTERED INDEX PK_IMPORTITEMDATA_COPYITEMS ON ImportItemData_CopyItems ( SourceUniqueCategoryName,​ SourceItemNo,​ TargetUniqueCategoryName )\\ 
 +
 +Hinweise :\\ a) Wie Artikel-Elemente (genauer "​Kategorien"​) anhand von "​SourceUniqueCategoryName"/"​TargetUniqueCategoryName"​ gefunden/​identifiziert werden, wurde oben schon beschrieben (Abschnitt "Die "​UniqueCategoryName"​s in "​ImportItemData_Items"​ kennzeichnen ..."​).\\ b) In die Spalte "​Clone"​ sollte immer nur der Wert "​0"​ eingefügt werden. Der Wert "​1"​ wird nämlich derzeit noch nicht unterstützt (es gibt aber auch keinen Fehler), d.h. es werden immer KOPIEN (d.h. eigene "​NodeID"​s) erzeugt und keine "​Clones"​ (mehrere "​TreeNodeID"​s,​ die auf dieselbe "​NodeID"​ referenzieren). Diese Funktionalität wird evtl. aber in einer späteren Version implementiert,​ deswegen sollte man immer "​0"​ angeben, um nicht irgendwann "​überrascht"​ zu werden.\\ ​
 +
 +
 +
 +6.) Definition "​RemoveItemsOrVariants"​ :\\ 
 +
 +CREATE TABLE\\ ​  ​RemoveItemsOrVariants ( UniqueNameOfPredecessor ​ varchar(400) NOT NULL,​\\ ​                          ​VariantOrItemNo ​         varchar(400) NOT NULL,​\\ ​                          ​IsItemNo ​                bit NOT NULL,​\\ ​                          ​Deactivate ​              bit NOT NULL\\ ​                        ​)\\ ​
 +
 +CREATE UNIQUE CLUSTERED INDEX PK_REMOVEITEMSORVARIANTS ON RemoveItemsOrVariants ( UniqueNameOfPredecessor,​ VariantOrItemNo )\\ 
 +
 +Hinweise :\\ a) "​IsItemNo"​ steuert, ob in "​VariantOrItemNo"​ die Artikelnummer (Eigenschaft zum Merkmal mit der ID "​6"​) eines Produktes oder einer Variante steht und damit, ob "​UniqueNameOfPredecessor"​ eine Artikelnummer eines Produktes ("​IsItemNo = 0") ist ober einen "​UniqueCategoryName"​ darstellt - wie Artikel-Elemente (genauer "​Kategorien"​) anhand von "​UniqueCategoryName"​ gefunden/​identifiziert werden, wurde oben schon beschrieben (Abschnitt "Die "​UniqueCategoryName"​s in "​ImportItemData_Items"​ kennzeichnen ..."​).\\ b) "​Deactivate"​ steuert, ob das Produkt bzw. die Variante gelöscht ("​0"​) oder nur deaktiviert ("​1"​) werden soll.\\ ​
 +|HTTP-Method|POST |
 +|HTTP-Auth|Optional |
 +|Tags|{{tag>​[im Import Item Data Ad]}}|
 +|Engine-Kategorie|item management |
 +|Engine-Typ|Daten-Änderung |
 +|Letzte Aktualisierung|7.0.7 (2015-01-29)|
 +
 +==== Parameter ====
 +
 +^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:​engine_parameterconventions|Parameter-Konventionen engine/<​Prozedur-Name>​]])) ^SQL-Datentyp((siehe [[:​webservice:​engine_datatypes|Datentypen im Bereich "​engine"​]])) ^ab Version ^
 +|LogErrors|1 |"​0"​ : Fehler nicht protokollieren\\ "​1"​ : Fehler in "​ImportItemData_Property_Errors"​ protokollieren lassen (-> "​ErrorDateAndTime"​ wird belegt, mit dessen Hilfe man [[dstoreproc>​im_GetImportErrors_Ad]] aufrufen kann, um an die Daten zu kommen)\\ |bit|3.5.0|
 +|UpdateSortNo|1 |Soll die Reihenfolge der Elemente korrigiert werden ? (siehe "​Beschreibung"​)\\ |bit|3.5.0|
 +|CheckTextAndBitCharacs|1 |Format der Eigenschaften zu Merkmalen vom Typ "​Text"​ oder "​Ja/​Nein"​ überprüfen ?\\ |bit|3.5.0|
 +|CheckExceptTextAndBitCharacs|1 |Format der Eigenschaften zu allen Merkmalen überprüfen,​ deren Basis-Feldtyp NICHT "​Text"​ oder "​Ja/​Nein"​ ist ? (Hintergrund ist langsamere Performance,​ weil für NICHT-"​Text"​-Eigenschaften ein cursor verwendet werden muß.)\\ |bit|3.5.0|
 +|PerformanceTuning|1 |siehe "​Beschreibung"​\\ |tinyint|3.5.0|
 +|ActivateImportedItems|1 |Importierte Elemente nach dem Import aktivieren?​\\ |bit|3.5.0|
 +|HandleExistingItemNotImported|0 |Gibt an, was mit vorhandenen Elementen passieren soll, die aber nicht in den Schnittstellen-Tabellen übergeben wurden:\\ "​0"​ : Nichts\\ "​1"​ : Elemente deaktivieren\\ "​2"​ : Elemente löschen (derzeit nicht implementiert !)\\ |tinyint|3.5.0|
 +|DumpTransaction|0 |Soll vor dem Import das Transaktions-Log geleert werden? (siehe auch "​Beschreibung"​)\\ |bit|3.5.0|
 +|Country|'​german'​ |Gibt an, in welchem Format Datums-Eigenschaften (Spalte "​Value"​ in "​ImportItemData_Properties"​) angegeben sind (Groß-/​Kleinschreibung wird nicht beachtet) :\\ '​german',​ '​germany'​ : Tag-Monat-Jahr\\ '​english',​ '​england'​ : Monat-Tag-Jahr\\ |varchar(10)|4.0.5|
 +|EmptyStringToDeleteDetails|0 |Ist hier "​1"​ angegeben, bedeutet der sogenannte "leere string"​ (%%''​%%) in der Spalte "​Details"​ von "​ImportItemData_ValueDetails",​ daß ein evtl. vorhandener "​Detail"​-Wert gelöscht wird\\ |bit|5.0.3|
 +|EmptyStringToDeleteProperty|0 |Entscheidet wie Datensätze in "​ImportItemData_Properties"​ mit " Value = %%''​%% " ("​leerer string"​) zu behandeln sind :\\ - "​0"​ : Wert speichern (für "​Datum"​s- oder "​Zahl"​-Eigenschaften ist das ein ungüliger Wert)\\ - "​1"​ : Evtl. vorhandene Eigenschaft löschen\\ |bit|6.5.0|
 +|ImportFromTableName|NULL |Name einer speziellen Import-Tabelle (temporäre Session-Tabelle oder durch [[dstoreproc>​im_DeleteInterfaceTables_Ad]],​ s. "​CreateImportTable_dstoreifin",​ angelegt) in der die Daten anstelle der üblichen Import-Tabellen übergeben wurden - s. Beschreibung !\\ |varchar(100)|7.0.3|
 +|DebugMode|NULL |Ausschließlich für interne Zwecke ! Dient dazu, den Import an diversen Stellen "​anhalten"​ zu können und/oder eine oder mehrere Ergebnismenge(n) auszugeben (zu "​debug"​-Zwecken eben).\\ |varchar(50)|7.0.3|
 +==== Rückgabe ====
 +
 +Die Prozedur hat keine Rückgaben.
 +==== Output-Parameter ====
 +
 +|ErrorDateAndTime|Ausgabeparameter für den Zeitpunkt, zu dem fehlerhafte Daten protokolliert wurden. Nur NICHT "​NULL",​ wenn "​LogErrors = 1" ist UND auch Fehler auftraten ! Um an die Daten zu kommen, [[dstoreproc>​im_GetImportErrors_Ad]] aufrufen ("​FromDate"/"​ToDate"​ hiermit belegen).|
 +==== Mögliche Return-Codes ====
 +
 +^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber"​ und indirekt meint "von intern aufgerufenen Unterprozeduren"​)) ^
 +|-621|Fehlender oder falscher Eintrag in PersonTypeSettings|nur indirekt|
 +|-599|Lizenz ist ungültig oder abgelaufen|nur indirekt|
 +|-569|Der Benutzer hat kein Ausführungsrecht für die Prozedur|nur indirekt|
 +|-567|Die Prozedur darf z. Zt. nicht ausgeführt werden|nur indirekt|
 +|-566|Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden|nur indirekt|
 +|-565|Die "​Objekt-ID"​ der Prozedur konnte nicht ermittelt werden|nur indirekt|
 +|-564|Der Status in BatchJobs konnte nicht gesetzt werden|nur indirekt|
 +|-562|Die Prozedur ist nicht in BatchJobs registriert|nur indirekt|
 +|-560|Prozedur konnte nicht gestartet werden|nur indirekt|
 +|-550|Fehlender oder falscher Eintrag in Settings|nur indirekt|
 +|-540|Falsches Format|nur indirekt|
 +|-535|Das Datum liegt nicht in der Vergangenheit|nur indirekt|
 +|-530|Der Wert ist nicht konvertierbar|nur indirekt|
 +|-518|Es ist eine bestimte ASE-Rolle erforderlich,​ die der Benutzer aber nicht besitzt|nur indirekt|
 +|-510|Der Benutzer ist nicht registriert|nur indirekt|
 +|-505|Es existiert ein anderer Prozeß, der ein "​dump"​ ausführt, Prozedur wird daher abgebrochen|nur indirekt|
 +|-504|Es ist ein Problem aufgetreten,​ das nicht gelöst werden kann, Prozedur wird daher abgebrochen|nur indirekt|
 +|-502|Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)|nur indirekt|
 +|-500|Falsche Parameter|nur indirekt|
 +|-110|Das (die) Element(e) ist (sind) nicht vorhanden|nur indirekt|
 +==== XML-Schema ====
 +
 +Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://​resources.dstore.de/​xsd/​webservice_SmartGate/​Response/​EngineProcedure_v1_0.xsd|Response/​EngineProcedure_v1_0.xsd]] validiert.
 +==== Historie ====
 +
 +|7.0.7 |2015-01-29|1. Dokumentation aktualisiert\\ 2. Interne Änderung : Datentyp-Erweiterung des "​ReferenceKey"​ [für "​_mi_StartProcedure"​-Aufruf]\\ ​ |
 +|7.0.3 |2013-12-13|Neue Parameter "​ImportFromTableName"​ und "​DebugMode"​\\ ​ |
 +|7.0.1 |2013-08-07|1. Anpassungen an den aktuellen Quellcode-Standard\\ 2. Doku-Anpassung wg. der Spalten-Eweiterungen einiger Import-Tabellen\\ ​ |
 +|6.5.2 |2013-02-26|Anpassungen,​ weil es Änderungen an der intern aufgerufen "​_mi_TryToStartBatchJob"​-Prozedur gab\\  |
 +|6.5.1 |2012-11-02|Neuer Ausgabeparameter "​ErrorDateAndTime"​\\ ​ |
 +|6.5.0 |2012-09-17|Neuer Parameter "​EmptyStringToDeleteProperty"​\\ ​ |
 +|6.0.3 |2011-09-07|Neuer Settings-Eintrag "​NodeCharacIDsToIgnoreDuringCopyOrSync"​ => Anpassung der Doku\\ ​ |
 +|5.5.1 |2008-07-29|Fehler im Aufruf von "​_mi_TryToStartBatchJob"​ bzgl. des Parameters "​ParameterNames_List1"​ behoben\\ ​ |
 +|5.0.3 |2005-06-07|Neuer Parameter "​EmptyStringToDeleteDetails"​\\ ​ |
 +|4.0.11 |2004-03-31|1. Aufruf der Prozeduren "​_mi_StartProcedure",​ "​_mi_FinishProcedure"​ und "​_mi_ChooseParamValueSeperator"​ \\ 2. Ausführen von "set transaction isolation level 1" und "set rowcount 0" zu Beginn der Prozedur\\ ​ |
 +|4.0.7 |2004-01-16|1. Verwendung der neuen Prozedur "​_mi_TryToFinishBatchJob"​ zum Setzen des Status am Schluß\\ 2. "​_mi_TryToStartBatchJob"​ hat zahlreiche neue Parameter bekommen (u.a. die Parameter-Werte automatisch in "​BatchJobParameters"​ eingefügen zu lassen)\\ ​ |
 +|4.0.5 |2003-10-04|1. "​PerformanceTuning"​ wird jetzt auch beachtet, wenn Daten in "​ImportItemData_Items"/"​..._Variants"​ vorhanden sind\\ 2. Speicherung der Prozedur-Parameter in "​BatchJobParameters"​\\ 3. Neuer Parameter "​Country"​\\ ​ |
 +|4.0.1 |2003-05-16|1. Komplette Umstellung der internen Prozeduren zum Import, ab jetzt wird "​_im_ImportItems_Start"​ aufgerufen, die den Import koordiniert\\ 2. Fehler bzgl. der Doku zum Parameter "​PerformanceTuning"​\\ ​ |
 +|3.5.20 |2002-07-22|\\ ​ |
 +|3.5.0 |2000-11-23|Erstmalig in dieser Version erstellt\\ ​ |
 +
 +==== Code-Snippets ====
 +
 +== Engine Playground ==
 +Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
 +  * [[http://​playground.dstore.de/​index.php?​proc=im_ImportItemData_Ad|im_ImportItemData_Ad im Engine Playground öffnen]]
 +== cURL ==
 +Unformatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​im_ImportItemData_Ad'</​code>​Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert,​ Bestandteil der libxml2, siehe http://​www.xmlsoft.org)) formatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​im_ImportItemData_Ad'​ | xmllint --format -</​code>​== dStore_php ==
 +<code php>
 +use dStore_php\WebService;​
 +
 +$service = new WebService\Service( WebService\Scheme::​HTTP,'<​partner>​-<​project>​.dstore.de',​ 80);
 +
 +$request = new WebService\Requests\Engine\Procedure\Request(
 + new WebService\Requests\AccessData('​default'​),​
 + '​im_ImportItemData_Ad',​
 + array(
 + // '​LogErrors'​ => 1,
 + // '​UpdateSortNo'​ => 1,
 + // '​CheckTextAndBitCharacs'​ => 1,
 + // '​CheckExceptTextAndBitCharacs'​ => 1,
 + // '​PerformanceTuning'​ => 1,
 + // '​ActivateImportedItems'​ => 1,
 + // '​HandleExistingItemNotImported'​ => 0,
 + // '​DumpTransaction'​ => 0,
 + // '​Country'​ => '​german',​
 + // '​EmptyStringToDeleteDetails'​ => 0,
 + // '​EmptyStringToDeleteProperty'​ => 0,
 + // '​ImportFromTableName'​ => NULL,
 + // '​DebugMode'​ => NULL
 + )
 +);
 +
 +$service->​execute($request);​
 +
 + $xml_result = $request->​getResponse()->​getBody()->​toSimpleXmlDocument();​
 + $ResultSet = $xml_result->​getRowsAsArray();​
 +
 +$OutputParams = $xml_result->​getOutputParametersAsArray();</​code>​
 +== engine/​execute ==
 +XML zur Ausführung mit der Methode [[:​webservice:​engine:​execute|engine/​execute]],​ z.B. per
 +  curl --header '​Content-Type:​ application/​xml'​ -X POST '​http://<​partner>​-<​kunde>​.dstore.de/​default/​engine/​execute'​ -d '<​xml-daten>'​
 +
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​ListOfBatches>​
 + <Batch No="​0">​
 + <​Procedure Name="​im_ImportItemData_Ad">​
 + <​Parameters>​
 + <!-- <​Parameter Name="​LogErrors">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​UpdateSortNo">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​CheckTextAndBitCharacs">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​CheckExceptTextAndBitCharacs">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​PerformanceTuning">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​ActivateImportedItems">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​HandleExistingItemNotImported">​0</​Parameter>​ -->
 + <!-- <​Parameter Name="​DumpTransaction">​0</​Parameter>​ -->
 + <!-- <​Parameter Name="​Country">'​german'</​Parameter>​ -->
 + <!-- <​Parameter Name="​EmptyStringToDeleteDetails">​0</​Parameter>​ -->
 + <!-- <​Parameter Name="​EmptyStringToDeleteProperty">​0</​Parameter>​ -->
 + <!-- <​Parameter Name="​ImportFromTableName">​NULL</​Parameter>​ -->
 + <!-- <​Parameter Name="​DebugMode">​NULL</​Parameter>​ -->
 + </​Parameters>​
 + </​Procedure>​
 + </​Batch>​
 +</​ListOfBatches></​code>​
  
engine/procedures/im_importitemdata_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)