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.
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)