items_in Interna
Ein Artikelimport läuft grundsätzlich so ab, dass die XML-Daten in die entsprechenden Schnittstellentabellen geschrieben werden. Nach dem Schreiben in die Schnittstellentabellen wird die Import-Prozedur aufgerufen. Es wird für den Import der Datenbankbenutzer „interfaceuser“ verwendet.
Im Detail passieren dabei folgende Schritte: Wie in items_in XML-Schema erwähnt, können durch das Attribut „ExecutionLevel“ von „ListOfItems“ einzelne Schritt übersprungen werden.
Löschen der Schnittstellen-Tabellen mittels
im_DeleteInterfaceTables_Ad, dadurch werden die Schnittstellentabellen automatisch gegen konkurrierenden Zugriff geschützt. Dies wird durch den Eintrag eines Status 99 in Batchjobs für die Prozedur
im_ImportItemData_Ad erreicht. Hat jemand bereits die Schnittstellentabellen für sich „reserviert“, so kommt es beim Versuch, die Schnittstellentabellen zu löschen, zu einem Fehler.
Einfügen der Daten der XML-Datei in die Schnittstellentabellen. Es werden dabei folgende Tabellen befüllt:
Ausführen der Prozedur
im_ImportItemData_Ad. Dabei wird abhängig vom Listen-Typ der Parameter „HandleExistingItemNotImported“ gesetzt.
Handelt es sich um eine PartialList, so werden - je nach ApplicationSetting „ITEMS_IN_PASS_ONLY_ITEMNOS“ - entweder nur die ItemNos oder die ItemNos und die VariantNos in die temporäre Tabelle tempdb..AnyValues eingefügt. Dieser Mechanismus erlaubt wesentliche Optimierungen bei der Erstellung der Datenankprozeduren die nach dem Import ausgeführt werden können.
Am Ende wird noch die in den ApplicationSettings angegeben Prozedur ausgeführt. Hierbei kann je nach Listen-Typ eine andere Prozedur angegeben werden
1).