Kommandozeilen-Tool

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

Für den XIP Im- und Export soll das aktuelle Kommando iesxip verwendet werden.

Allgemein

Der Import und Export von Daten via XML.

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 bzw. Export über einen eindeutigen Anker verfügen. Dieser dient als Primärschlüssel. Bei einem nochmaligen Import/Export 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.

Ein 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> <xipfile|xipdir>
import
Das eigentliche Kommando dieses Tools.
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.
xipfile|xipdir
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> <xipfile|xipdir>

Zur erweiterten Steuerung des Imports können noch Parameter angegeben werden.

usage: iespkg import <login> <password> <client> <xipfile|xipdir> --<parameter> --<parameter> ...

oder

usage: iespkg <property-file> <xipfile|xipdir> --<parameter> --<parameter> ...

Hinweis: Die --<parameter> müssen unter Windows in Anführungszeichen gefasst werden.

usage: iespkg <property-file> <xipfile|xipdir> "--<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.
--ies.xip.import.xslt=xsltfile
XSLT-Datei mit Regeln zur Transformation der XML-Daten vor dem Import
--ies.xip.import.syncfile=syncfile
Datei, in der die Importe für spätere Aufrufe erfasst werden. Ein erneuter Import der Daten mit Angabe dieses Sync-Files, gleicht die vorhandenen Daten mit den XIP-Daten ab. Früher importierte Elemente, die nicht mehr in den XIP-Daten enthalten sind, werden im IES gelöscht (bei --ies.xip.import.deleteElements=true und --ies.xip.import.deletePools=true) oder depubliziert.

Export

Für den Export wird ebenfalls das Java-Commandline-Tool "iespkg" ausgeführt. Es werden folgende Parameter benötigt:

usage: iespkg export <login> <password> <client> <xipfile|xipdir> <id> <version> <pool|element>
export
Das eigentliche Kommando dieses Tools.
login
Account, mit dem die Daten angelegt werden sollen. Beachten Sie bitte, dass ausreichende Rechte für den Export gegeben sind.
password
Das Passwort des Accounts.
client
Der Namespace / Anker des Mandanten, aus dem die Daten exportiert werden sollen. In diesem Mandanten muss auch der Nutzer des Exports konfiguriert sein.
xip-file|xip-dir
Die XML-Datei bzw. der Ordner oder das XIP-Paket mit den XML-Dateien, in denen die Informationen des Exports gespeichert werden.
id
Zeichenkette, mit der das XIP-Paketes eindeutig identifisiert werden kann.
pool|element
Anker des Elements, welches exportiert werden soll
version
Version des XIP-Paketes

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> <xip-file>

Zur erweiterten Steuerung des Exports können noch Parameter angegeben werden.

usage: iespkg export <login> <password> <client> <xip-file|xip-dir> --<parameter> --<parameter> ...

oder

usage: iespkg <property-file> <xip-file|xip-dir> --<parameter> --<parameter> ...
usage: iespkg <property-file> <xip-file|xip-dir> "--<parameter>" "--<parameter>" ...
--ies.xip.export.includes=anchor[,anchor,...]
Angabe der Anchor von Pools und Elemente, die exportiert werden sollen.
--ies.xip.export.excludes=anchor[,anchor,...]
Angabe der Anchor von Pools und Elemente, die nicht exportiert werden sollen.
--ies.xip.export.ignorePools=anchor[,anchor,...]
Angabe der Anchor von Pools, dessen Pools nicht exportiert werden sollen.
--ies.xip.export.ignoreElements=anchor[,anchor,...]
Angabe der Anchor von Pools, dessen Element nicht exportiert werden sollen.
--ies.xip.export.xipAsDirectory=true|false
Die XIP-Struktur wird nicht als Datei gepackt. Die Struktur bleibt als Verzeichnisstruktur erhalten
--ies.xip.export.symlinksAsElements=true|false
Gibt an, das symblische Links nicht als Links, sondern als Elemente exportiert werden sollen
--ies.xip.export.anchor.replace=regex:replacement
Ersetzt Teile von Anchor-Namen. Der zu ersetztende Teil wird mit einem requlären Ausdruck definiert. Mit einem Doppelpunkt (:) getrennt wird die Zeichenkette angegeben, die eingetragen werden sollen.
--ies.xip.export.autoAnchorPrefix=string
Wird dieser Parameter angegeben, werden für Artikel die keinen Anchor besitzen automatisch Anchor vergeben. Die vergebenen Anchor werden nicht im System gespeichert, sondern nur für die Exportdaten verwendet. Der Anchor ergibt sich aus dem angegebenen Prefix und der ID des Artikels (Ohne ServerID, DatenbankID und ClientID). Bei einem erneuten Export werden dadruch bei gleichem Prefix wieder die identischen Anchor erzeugt.
--ies.xip.export.fieldFilter=name[,name,...]
Wird dieser Parameter angegeben, werden nur die Felder exportiert, die die angegebenen Feldnamen besitzen. Liegen die Felder innerhalb von Listen, so muss auch der Listen-Name mit angegeben werden.