Kommandozeilen-Tool
Allgemein
Der Import von Daten via XML ist über eine native Java-Schnittstelle möglich.
Eine Verknüpfung mit anderen Daten ist hierbei vollständig über Anker realisiert. Dadurch sind sowohl Beziehungen zu neuen, wie auch vorhandenen Daten möglich. Jedes Element muss für den Import über einen eindeutigen Anker verfügen. Dieser dient als Primärschlüssel. Bei einem nochmaligen Import wird das entsprechende Element hierüber identifiziert und aktualisiert. Auch Verknüpfungen mit anderen Elementen z.B. für Systemlinks erfolgen über den Anker. Auch die Angabe des "parent
" für Elemente, wie auch die Beziehung zum Template erfolgt über einen Anker.
Der Import kann beliebig oft ausgeführt werden. Ist ein Element bereits vorhanden, werden die in XML beschriebenen Felder ersetzt bzw. ergänzt. Auf diese Weise können auch wechselseitige Beziehungen zwischen Elementen und Pools importiert werden.
Importiert werden können:
- Einzelne XML-Dateien
- Ein XML-Dokument das sich genau auf einen Artikel bzw. Artikelpool bezieht, kann einzeln importiert werden
- Eine Ordnerstruktur von XML-Dateien
- Eine verschachtelte Ordnerstruktur mit XML-Daten kann verwendet werden, um mehrere XML-Dokumente zu importieren. Dabei kann die Verschachtelung verwendet werden, um auf die Reihenfolge des Imports Einfluss zu nehmen. Artikelpools sollten in der Regel vor Artikeln, die in diesem neuen Pool gespeichert werden sollen, importiert werden. Die Verschachtelung der XML-Dokumente hat dabei keinen direkten Einfluss auf Beziehungen im IES. Diese Beziehungen werden ausschließlich über Anker realisiert. Aber dadurch, dass ein Pool oder Element in einem Ordner "oberhalb" eines anderen Elementes liegt, wird dieses zuerst importiert. Zum ersten Elemente kann das zweite dann eine Beziehung über den Anker aufbauen.
- XIP-Dateien
- XIP Dateien sind gezippte XML-Strukturen (siehe oben). Der Vorteil liegt darin, dass bei einem Upload nur eine Datei angegeben werden muss. Dieses Format wird in Zukunft noch weiter ausgebaut.
Import
Für den Import wird das Java-Commandline-Tool "iespkg
" ausgeführt. Es werden folgende Parameter benötigt:
usage: iespkg import <login> <password> <client> <pkg-file>
import
- Das eigentliche Kommando dieses Tools. Zur Zeit ist hier nur "
import
" möglich. login
- Account, mit dem die Daten angelegt werden sollen. Beachten Sie bitte, dass ausreichende Rechte für den Import gegeben sind.
password
- Das Passwort des Accounts.
client
- Der Namespace / Anker des Mandanten, in den die Daten importiert werden sollen. In diesem Mandanten muss auch der Nutzer des Imports konfiguriert sein.
pkg-file
- Die XML-Datei bzw. der Ordner oder das XIP-Paket mit den XML-Dateien, in denen die Informationen für den Import stehen.
Alternativ kann der Import in einer Property-Datei konfiguriert werden. Damit lassen sich auch Einstellungen zum Logging vornehmen. Der Aufruf ist dann nur noch der folgende:
usage: iespkg <property-file> <pkg-file>
Zur erweiterten Steuerung des Imports können noch Parameter angegeben werden.
usage: iespkg import <login> <password> <client> <pkg-file> --<parameter> --<parameter> ...
oder
usage: iespkg <property-file> <pkg-file> --<parameter> --<parameter> ...
Hinweis: Die --<parameter> müssen unter Windows in Anführungszeichen gefasst werden.
usage: iespkg <property-file> <pkg-file> "--<parameter>" "--<parameter>" ...
--ies.xip.import.publishMode=all|all-file
- Publiziert alle zu importierenden Artikel entwender in allen Publishern des Mandanten (all) oder in allen File-Publishern all-file). Die in den XML-Daten angegebenen Publisher-Stati werden ignoriert.
--ies.xip.import.publisher=anchor[,anchor,...]
- Publiziert alle zu importierenden Artikel in den angegebenen Publishern. Die in den XML-Daten angegebenen Publisher-Stati werden ignoriert.
--ies.xip.import.createPools=true|false
- Pools die noch nicht existieren werden angelegt. Default ist true
--ies.xip.import.updatePools=true|false
- Pools die existieren werden aktualisiert. Default ist true
--ies.xip.import.deletePools=true|false
- Pools die mit diesem XIP einmal importiert wurden, aber jetzt nicht mehr darin enthalten sind, werden gelöscht. Default ist false.
- Die Pools können nur gelöscht werden, wenn die Pools mit einem XIP-Package importiert wurden, das eine ID (ies.xip.id) und eine Version (ies.xip.version) besitzt.
--ies.xip.import.deleteOnlyEmptyPools=true|false
- Löscht nur leere Pools. Default ist false
--ies.xip.import.createElements=true|false
- Elemente, die noch nicht existieren, werden angelegt. Default ist true
--ies.xip.import.updateElements=true|false
- Elemente, die existieren, werden aktualisiert. Default ist true
--ies.xip.import.deleteElements=true|false
- Elemente die mit diesem XIP einmal importiert wurden, aber jetzt nicht mehr darin enthalten sind, werden gelöscht. Default ist false.
- Die Elemente können nur gelöscht werden, wenn die Elemente mit einem XIP-Package importiert wurden, das eine ID (ies.xip.id) und eine Version (ies.xip.version) besitzt.
--ies.xip.import.ignoreParents
- Ignoriert den Parent, wenn der Pool oder das Element schon existiert. Der Pool oder das Element wird nicht zu dem angegebenen Parent verschoben. Default ist true
--ies.xip.import.checkVersion=true|false
- Ist dieser Parameter true, wird der Import nur bei gleichen oder neueren Versionen vorgenommen. Anderenfalls wird der Import auch bei niedrigeren Versionen vorgenommen. Default ist true
--ies.xip.import.checkDepends=true|false
- Ist dieser Parameter true, prüft der Importer, ob alle für dieses XIP-Paket benötigten XIP-Pakete installiert sind. Default ist true
--ies.xip.import.anchor.replace=regex:replacement
- Ersetzt Teile von Anchor-Namen. Der zu ersetzende Teil wird mit einem regulären Ausdruck definiert. Mit einem Doppelpunkt (:) getrennt, wird die Zeichenkette angegeben, die eingetragen werden soll.
--ies.xip.import.listener=javaclass[,javaclass,...]
- In Java implementierbare Listener, die während des Imports auf bestimmte Ereignisse warten und dann ausgeführt werden.