Import von Lookup-Daten

Der Import von Lookupdaten kann am einfachsten per XML Import realisiert werden.

Wichtig: Bitte dieses Dokument einmal bis zum Ende durchlesen.

Generelles Vorgehen

  • Erstellte eine XML Datei "lookups.xml"

    • In der Datei können beliebig viele Lookup-Klassen , bzw. Werte enthalten sein, siehe unter Daten - die Daten-Datei
  • Erstellte eine XML Datei "lookups.xsd"

    • Der Inhalt muss der aus xxx/net3/services/IkxServices2.asmx/GetAllLookupValuesImportSchema sein, oder siehe unter Daten - die Schema-Datei
  • Packe beides in ein Zip (ohne Ordnerstruktur) und Lade es im Bereich "In/Out&Schema" hoch.

    Die ausgewählte Puzzle-Kategorie spielt dabei keine Rolle! Beachte, dass die Option "Trockenlauf" standardmäßig aktiv ist, diese ausschalten

    Beachte ggf. die Ausgaben, prüfe auf Fehlermeldung (diese werden immer ganz oben in Rot ausgegeben.

    Lookupimport

Beachte

  • Bei allen XML Dateien: Das Encoding muss UTF-8 sein, bei älteren Texteditoren muss das vor dem Bearbeiten u.U. eingestellt werden.

  • Der Name der Dateien sind beliebig, müssen nur gleich sein (a.xml und a.xsd)

Daten

Die Schema-Datei (.xsd)

Das zu verwendende Schema ist fix, entweder per Dienst-Abruf besorgen, oder diesen Text verwenden:

<?xml version="1.0"?>
<xs:schema xmlns:ikx="http://www.cardogis.com/ikx/schema/IDUIT/Exchange"
			xmlns:ikxBase="http://schemas.webs.idu.de/cardo3/Ikx/IkxBase"
			elementFormDefault="qualified"
			targetNamespace="http://www.cardogis.com/ikx/schema/IDUIT/Exchange" 
			xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:complexType name="LookupExchangeOnly_Records_Type">
		<xs:sequence>
			<xs:element minOccurs="1" maxOccurs="1" name="LookupValues"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="LookupExchangeOnly_Records" type="ikx:LookupExchangeOnly_Records_Type"/>
</xs:schema>

Die Daten-Datei (.xml)

Die Struktur der Inhalte richtet sich nach der Definition der IKX-Klasse.

Wie das Schema für die jeweilige Klasse aussieht, kann per https://Server/net3/ogcsl.ashx?Service=IKXSCHEMA&Request=GetIkxClassSchema&usage=Exchange&classId=[*BSP_CLASS_ID*]&ikxStoreId=[*storeId*] ermittelt werden.

Wenn es um das ändern bereits vorhandener Werte geht, dann ist wichtig zu bedenken, dass die Daten anhand der Unique-Id identifiziert werden.

Der Import löscht keine vorhandenen Datensätze, es werden jeweils nur die in der XML enthaltenen Datensätze der jeweiligen Klasse betrachtet.

Die Identifikation erfolgt dabei ausschließlich über das Attribut "uuid" pro Datensatz.

Beim Erstimport kann das Attribut "uuid" des Datensatzes leer gelassen werden. Wenn diese Datei dann mehrfach importiert werden würde, würde Datensätze jeweils neu angelegt!

Daher sollten die Daten am besten vorher vom System abgerufen werden. Dazu verwende die Methode ExportAllLookupValues des IkxServices2.

Hier die Aufruf-Urls (Server ist anzupassen):

  • mit Formular: https://Server/net3/services/IkxServices2.asmx?op=ExportAllLookupValues

  • oder Direkt per GET: https://Server/net3/services/IkxServices2.asmx/ExportAllLookupValues?ikxStoreId=XXX&behavior=All

Beispiel für eine Daten-Datei:

<?xml version="1.0" encoding="utf-8"?>
<LookupExchangeOnly_Records xmlns="http://www.cardogis.com/ikx/schema/IDUIT/Exchange">
  <LookupValues>
    <UNT_LAND uuid="{3EBA01B6-2FD4-41A4-939E-0315EAD81BE6}">
      <BESCHREIBUNG>Kenia</BESCHREIBUNG>
    </UNT_LAND>
    <UNT_LAND uuid="{7031C6E1-8083-4437-8F83-1EB393798360}">
      <BESCHREIBUNG>Guinea-Bissau</BESCHREIBUNG>
    </UNT_LAND>
  </LookupValues>
</LookupExchangeOnly_Records>

Zuletzt geändert: 19.04.2024 10:46:55 (erstmals erstellt 25.03.2023)