XIP iesxip: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
+ | Das Kommandozeilen-Werkzeug <code>iesxip</code> steht ab der IES Version 2.2 auf dem IES Server zur Verfügung. Über dieses Werkzeug können Daten im [[XIP Format]] im- und exportiert werden. | ||
+ | |||
+ | Ein Im- oder Export kann über Kommandozeilen Optionen, über eine XML-Konfiguration oder einer Kombination aus aus beidem erfolgen. | ||
+ | |||
+ | ;Import mit Kommandozeilen Optionen | ||
+ | :<source lang="bash">iesxip -i -u Nutzername -p Passwort -c Mandanten-Anchor [weiter Optionen] XIP-Datei|XIP-Verzeichnis</source> | ||
+ | ;Export mit Kommandozeilen Optionen | ||
+ | :<source lang="bash">iesxip -x -u Nutzername -p Passwort -c Mandanten-Anchor [weiter Optionen] Pool-Anchor|Element-Anchor</source> | ||
+ | ;Import/Export über XML-Konfiguration | ||
+ | :<source lang="bash">iesxip Konfigurations-Datei</source> | ||
+ | ;Import/Export über XML-Konfiguration mit ergänzenden Kommandozeilen Optionen | ||
+ | :<source lang="bash">iesxip [Optionen außer -x und -i] Konfigurations-Datei</source> | ||
+ | |||
+ | |||
+ | |||
+ | ==Allgemeine Optionen== | ||
+ | ;<code>-u, --user</code> | ||
+ | :IES Nutzer, mit dem der Import/Export durchgeführt werden soll. | ||
+ | ;<code>-p, --password</code> | ||
+ | :Passwort des IES Nutzers, mit dem der Import/Export durchgeführt werden soll. | ||
+ | ;<code>-c, --client</code> | ||
+ | :Mandant des IES, mit dem der Import/Export durchgeführt werden soll. | ||
+ | ;<code>-m, --module</code> | ||
+ | :Frei vergebbarer Module-Name. Diese Name wird in der Session-Liste es IES-Admin angezeigt, um erkennen zu können für welches Modul die Session genutzt wird. Wenn kein Modul-Name angegeben wird <code>XIP Import</code>, bzw <code>XIP Export</code> verwendet | ||
+ | ;<code>-c, --client</code> | ||
+ | :Mandant des IES, mit dem der Import/Export durchgeführt werden soll. | ||
+ | ;<code>-v</code> | ||
+ | :Gibt bei einem Fehler den Stack-Trace aus | ||
+ | ;<code>-vv</code> | ||
+ | :wie <code>-v</code> und setzt den Log-Level für den Logger <code>com.sitepark.ies</code> auf <code>DEBUG</code> | ||
+ | ;<code>-vvv</code> | ||
+ | :wie <code>-v</code> und setzt den Log-Level für den Root-Logger auf <code>DEBUG</code> | ||
+ | ;<code>-vvvv</code> | ||
+ | :wie <code>-v</code> und setzt den Log-Level für den Root-Logger und den Logger <code>com.sitepark.ies</code> auf <code>TRACE</code> | ||
+ | ;<code>-s, --silent</code> | ||
+ | :Gibt keine Fortschrittsanzeige aus | ||
+ | ;<code>--dumpConfig</code> | ||
+ | :Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole | ||
+ | ;<code>--attributes</code> | ||
+ | :Setzt Attribute für den Im- oder Export. Diese Attribute können in einer angegebenen XSLT ausgelesen werden. In der XML-Konfiguration kann mit <code>${attribute-name}</code> auf die Attribute zugegriffen werden. Namen und Werte der Attribute werden durch <code>=</code> getrennt. Die einzelnen Attribute werden durch Kommata (<code>,</code>) getrennt. <source lang="text">--attributes name1=value1,name2=value2</source> | ||
+ | ;<code>--workDir</code> | ||
+ | :Arbeitsverzeichnis für den Im- oder Export. In diesem Verzeichnis werden für den Im- oder Export notwendige temporäre Dateien abgelegt. Das Verzeichnis wird nach der ausgeführten Aktion gelöscht. Wird kein Arbeitsverzeichnis angegeben wird bei Angabe einer XML-Konfiguration ein Verzeichnis parallel zu der Konfigurations-Datei angelegt. Sonst wird im aktuelle Verzeichnis ein Arbeitsverzeichnis angelegt. | ||
+ | ;<code>--anchorReplace</code> | ||
+ | :Benennt Anchor um. Für den Import werden die Anchor vor dem Import geändert. Bei einem Export werden die Anchor in den erzeugten Export-Daten geändert (Die Anchor im IES werden nicht geändert). Für die Ersetzung muss ein Regulärer Ausdruck angegeben werden. Die einzusetzende Zeichenkette wird vom Regulären Ausdruck mit einem Doppelpunkt (<code>;</code>) getrennt. Mehrfache Ersetzungen werden mit Kommata (<code>,</code>) getrennt und werden in der angegebenen Reihenfolge ausgeführt. <source lang="text">regex:replacement[,regex:replacement[,...]]</source> | ||
+ | ;<code>--autoAnchorPrefix</code> | ||
+ | :Grundsätzlich können nur Elemente im- und exportiert werden, die einen Anchor besitzten. Mit dieser Option können automatische Anchor vergebene werden. Hierbei wird ein Prefix angegeben. Der erzeugte Anchor setzt sich aus diesem Prefix und dem Mandanten-unabhängigen Teil der ID ohne führende Nullen zusammen (Siehe [[ID]] Unique-Number). Bei einem Export wird der Anchor nur für die Exportierten Daten gesetzt. Die Daten im IES werden nicht geändert. | ||
+ | ;<code>--includeFields</code> | ||
+ | :Es werden nur die Felder mit den angegebenen Namen importiert/exportiert. Sollen Felder innerhalb eines Iterators importiert/exportiert werden, muss auch der Feldname des Iterators angegeben werden. Die einzelnen Feldnamen werden durch Kommata (<code>,</code>) getrennt. | ||
+ | ;<code>--excludeFields</code> | ||
+ | :Die Felder mit den angegebenen Namen werden nicht importiert/exportiert. Die einzelnen Feldnamen werden durch Kommata (<code>,</code>) getrennt. | ||
+ | ;<code>--includeTypes</code> | ||
+ | :Es werden nur Elemente mit den angegebenen Typen importiert/exportiert. Mögliche Type sind <code>article, media, resource, user, template, role, articlepool, userpool, templatepool, rolepool</code> | ||
+ | ;<code>--excludeTypes</code> | ||
+ | :Elemente mit den angegebenen Typen werden nicht importiert/exportiert. Mögliche Type sind <code>article, media, resource, user, template, role, articlepool, userpool, templatepool, rolepool</code> | ||
+ | ;<code>--deleteWorkDir</code> | ||
+ | :Wird <code>false</code> angegeben, wird das Arbeitsverzeichnis nach dem import/export nicht gelöscht. Default ist <code>true</code> | ||
+ | |||
+ | |||
+ | ;<code>-i, --import</code> | ||
+ | :Gibt an, das ein Import durchgeführt werden soll. | ||
+ | ;<code>-e, --export</code> | ||
+ | :Gibt an, das ein Import durchgeführt werden soll. | ||
+ | |||
+ | |||
+ | |||
==Import== | ==Import== | ||
+ | |||
+ | ;<code>--dumpXML</code> | ||
+ | :Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole | ||
===Import Quellen=== | ===Import Quellen=== |
Version vom 21. Juni 2010, 10:39 Uhr
Das Kommandozeilen-Werkzeug iesxip
steht ab der IES Version 2.2 auf dem IES Server zur Verfügung. Über dieses Werkzeug können Daten im XIP Format im- und exportiert werden.
Ein Im- oder Export kann über Kommandozeilen Optionen, über eine XML-Konfiguration oder einer Kombination aus aus beidem erfolgen.
- Import mit Kommandozeilen Optionen
iesxip -i -u Nutzername -p Passwort -c Mandanten-Anchor [weiter Optionen] XIP-Datei|XIP-Verzeichnis
- Export mit Kommandozeilen Optionen
iesxip -x -u Nutzername -p Passwort -c Mandanten-Anchor [weiter Optionen] Pool-Anchor|Element-Anchor
- Import/Export über XML-Konfiguration
iesxip Konfigurations-Datei
- Import/Export über XML-Konfiguration mit ergänzenden Kommandozeilen Optionen
iesxip [Optionen außer -x und -i] Konfigurations-Datei
Allgemeine Optionen
-u, --user
- IES Nutzer, mit dem der Import/Export durchgeführt werden soll.
-p, --password
- Passwort des IES Nutzers, mit dem der Import/Export durchgeführt werden soll.
-c, --client
- Mandant des IES, mit dem der Import/Export durchgeführt werden soll.
-m, --module
- Frei vergebbarer Module-Name. Diese Name wird in der Session-Liste es IES-Admin angezeigt, um erkennen zu können für welches Modul die Session genutzt wird. Wenn kein Modul-Name angegeben wird
XIP Import
, bzwXIP Export
verwendet -c, --client
- Mandant des IES, mit dem der Import/Export durchgeführt werden soll.
-v
- Gibt bei einem Fehler den Stack-Trace aus
-vv
- wie
-v
und setzt den Log-Level für den Loggercom.sitepark.ies
aufDEBUG
-vvv
- wie
-v
und setzt den Log-Level für den Root-Logger aufDEBUG
-vvvv
- wie
-v
und setzt den Log-Level für den Root-Logger und den Loggercom.sitepark.ies
aufTRACE
-s, --silent
- Gibt keine Fortschrittsanzeige aus
--dumpConfig
- Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole
--attributes
- Setzt Attribute für den Im- oder Export. Diese Attribute können in einer angegebenen XSLT ausgelesen werden. In der XML-Konfiguration kann mit
${attribute-name}
auf die Attribute zugegriffen werden. Namen und Werte der Attribute werden durch=
getrennt. Die einzelnen Attribute werden durch Kommata (,
) getrennt.--attributes name1=value1,name2=value2
--workDir
- Arbeitsverzeichnis für den Im- oder Export. In diesem Verzeichnis werden für den Im- oder Export notwendige temporäre Dateien abgelegt. Das Verzeichnis wird nach der ausgeführten Aktion gelöscht. Wird kein Arbeitsverzeichnis angegeben wird bei Angabe einer XML-Konfiguration ein Verzeichnis parallel zu der Konfigurations-Datei angelegt. Sonst wird im aktuelle Verzeichnis ein Arbeitsverzeichnis angelegt.
--anchorReplace
- Benennt Anchor um. Für den Import werden die Anchor vor dem Import geändert. Bei einem Export werden die Anchor in den erzeugten Export-Daten geändert (Die Anchor im IES werden nicht geändert). Für die Ersetzung muss ein Regulärer Ausdruck angegeben werden. Die einzusetzende Zeichenkette wird vom Regulären Ausdruck mit einem Doppelpunkt (
;
) getrennt. Mehrfache Ersetzungen werden mit Kommata (,
) getrennt und werden in der angegebenen Reihenfolge ausgeführt.regex:replacement[,regex:replacement[,...]]
--autoAnchorPrefix
- Grundsätzlich können nur Elemente im- und exportiert werden, die einen Anchor besitzten. Mit dieser Option können automatische Anchor vergebene werden. Hierbei wird ein Prefix angegeben. Der erzeugte Anchor setzt sich aus diesem Prefix und dem Mandanten-unabhängigen Teil der ID ohne führende Nullen zusammen (Siehe ID Unique-Number). Bei einem Export wird der Anchor nur für die Exportierten Daten gesetzt. Die Daten im IES werden nicht geändert.
--includeFields
- Es werden nur die Felder mit den angegebenen Namen importiert/exportiert. Sollen Felder innerhalb eines Iterators importiert/exportiert werden, muss auch der Feldname des Iterators angegeben werden. Die einzelnen Feldnamen werden durch Kommata (
,
) getrennt. --excludeFields
- Die Felder mit den angegebenen Namen werden nicht importiert/exportiert. Die einzelnen Feldnamen werden durch Kommata (
,
) getrennt. --includeTypes
- Es werden nur Elemente mit den angegebenen Typen importiert/exportiert. Mögliche Type sind
article, media, resource, user, template, role, articlepool, userpool, templatepool, rolepool
--excludeTypes
- Elemente mit den angegebenen Typen werden nicht importiert/exportiert. Mögliche Type sind
article, media, resource, user, template, role, articlepool, userpool, templatepool, rolepool
--deleteWorkDir
- Wird
false
angegeben, wird das Arbeitsverzeichnis nach dem import/export nicht gelöscht. Default isttrue
-i, --import
- Gibt an, das ein Import durchgeführt werden soll.
-e, --export
- Gibt an, das ein Import durchgeführt werden soll.
Import
--dumpXML
- Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole
Import Quellen
Im Nachfolgenden wird beschreiben wie die unterschiedlichen Import-Quellen angegeben werden können.
Datei / Verzeichnis
Die zu importierende XIP-Datei oder das zu importierende Verzeichnisses in denen XML-Dateien im XIP Format liegen können als Argument des iesxip
Kommandos angegeben werden
iesxip -i -u user -p password -c client xip-file|xip-directory
Soll der Import über eine Konfigurations-Datei erfolgen so muss die Import-Quelle mit folgenden Tag angegeben werden:
<import>
....
<source type="file" file="path-to-file-or-dir"/>
...
</import>
HTTP
Ein Import von XML-Daten über HTTP kann nur mit Hilfe einer XML-Konfiguration erfolgen. Im folgenden wird beschrieben, wie das <source>
Element definiert werden muss.
- Element
<source>
- Attribute:
Name Beschreibung type
muss für einen HTTP-Import http
lauten.url
URL der Import-Quelle method
get
oderpost
für die zu verwendende HTTP Methode. Default istget
.
- Unterelemente:
- Element
<header>
- Mit diesem Element können HTTP-Header angegeben werden.
- Attribute:
- Element
Name Beschreibung name
Name des Headers
- Der Wert des Headers wird innerhalb des
<header>
-Elementes angegeben <header name="My-Header">Header-Wert</header>
- Element
<parameter>
- Wird die HTTP-POST Methode verwendet, können mit diesen Elementen HTTP-POST Parameter definiert werden.
- Attribute:
- Der Wert des Headers wird innerhalb des
Name Beschreibung name
Name des Parameters
- Der Wert des Parameters wird innerhalb des
<parameter>
-Elementes angegeben <parameter name="myparam">Parameter-Wert</header>
- Element
<body>
- Wird die HTTP-POST Methode verwendet, kann mit diesem Element der HTTP-Body definiert werden. Wird dieses Element angegeben, werden die mit
<parameter>
definierten HTTP-Parameter ignoriert. - Attribute:
- Der Wert des Parameters wird innerhalb des
Name Beschreibung content-type
Content-Type des HTTP-Body charset
Charset des HTTP-Body. Kann alternativ auch im content-type
z.B. mittext/xml; charset=UTF-8
angegeben werden.
- Innerhalb des
<body>
Elementes wird der HTTP-Body definiert.
- Innerhalb des
Beispiel-Konfiguration für einen SOAP-Request
<source type="http" url="${wsurl}/getformlist.php" method="post">
<header name="SOAPAction">"urn:FS#getformlist"</header>
<body content-type="text/xml; charset=UTF-8"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:FS" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<tns:getformlist xmlns:tns="urn:FS">
<cms xsi:type="xsd:string">${cmskey}</cms>
</tns:getformlist>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>]]></body>
</source>
LDAP
Ein Import von LDAP-Daten kann nur mit Hilfe einer XML-Konfiguration erfolgen. Der abzufragenden LDAP-Server muss im IES-Admin konfiguriert sein. Die Abfrage der LDAP-Daten erfolgt über eine LDAP-Suche. Da mit LDAP keine kombinierte Suche mit LDAP-Gruppen möglich ist, bietet der XIP Importer zusätzlich diese Möglichkeit, indem LDAP-Suchen und LDAP-Gruppen mit UND und ODER Verknüpfungen kombiniert werden können.
Im folgenden wird beschrieben, wie das <source>
Element definiert werden muss.
- Element
<source>
- Attribute:
Name Beschreibung type
muss für einen LDAP-Import ldap
lauten.id
ID der LDAP-Konfiguration im IES-Admin
- Unterelemente:
- Element
<query>
- Unterhalb dieses Elements wird die LDAP-Suche definiert
- Unterelement
<ldap-query>
- Suche im LDAP-System
- Unterelement
<search-filter>
- LDAP-Suchfilter. Beispiel:
(&(uid=a*)(objectClass=inetOrgPerson))
- Unterelement
<search-base>
- Basis ab der im LDAP-System gesucht werden soll. Beispiel:
dc=sitepark,dc=com
- Unterelement
<search-scope>
- Gibt an, welche Ebenen durchsucht werden sollen. Mögliche Werte sind:
subtree
: Alle Ebenen, ab der Suchbasis werden durchsucht.onlevel
: Nur die Suchbasis-Ebenen wird durchsucht.
- Unterelement
<limit>
- Maximale Anzahl an zurück zu liefernden Treffer
- Unterelement
- Unterelement
<ldap-group>
- Ldap-Gruppe dessen Mitglieder gefunden werden sollen. In LDAP-Gruppen werden nur Referenzen zu LDAP-Objekten abgelegt. Je nach LDAP-Sytem können diese Referenzen über den DN oder die UID aufgebaut werden. Damit der XIP-Importer über die Refererzen die LDAP-Objekte laden kann muss mit dem Attribut
member-dn-attribute
bzw.member-uid-attribute
angegeben werden wie die Referenz in der LDAP-Gruppe gespeichert ist. - Attribute:
- Unterelement
- Element
Name Beschreibung member-dn-attribute
Name des LDAP-Attributes, in dem der DN abgelegt ist. Muss angegeben werden oder member-uid-attribute
member-uid-attribute
Name des LDAP-Attributes, in dem die UID abgelegt ist. Muss angegeben werden oder member-uid-attribute
- Innerhalb des
<ldap-group>
Elementes wird die DN der Gruppe angegeben. - Unterelement
<and>
- Und-Verknüpfung zwischen zwei Suchdefinitionen. Und-Verknüfungen können auch in LDAP-Queries selbst angegeben werden. Die Verknüpfung mit diesem
<and>
Element ist nur zu empfehlen, wenn Suchen mit LDAP-Gruppen verknüpft werden sollen, da dies mit LDAP sonst nicht möglich ist.- Erlaubte Unterelemente
<and>
,<or>
,<ldap-query>
,<ldap-group>
- Erlaubte Unterelemente
- Innerhalb des
- Unterelement
<or>
- Oder-Verknüpfung zwischen zwei Suchdefinitionen. Oder-Verknüfungen können auch in LDAP-Queries selbst angegeben werden. Die Verknüpfung mit diesem
<or>
Element ist nur zu empfehlen, wenn Suchen mit LDAP-Gruppen verknüpft werden sollen, da dies mit LDAP sonst nicht möglich ist.- Erlaubte Unterelemente
<and>
,<or>
,<ldap-query>
,<ldap-group>
- Erlaubte Unterelemente
- Unterelement
Beispiel:
<source type="ldap" id="1">
<query>
<and>
<ldap-query>
<search-filter>(&(uid=a*)(objectClass=inetOrgPerson))</search-filter>
<search-base>dc=sitepark,dc=com</search-base>
<search-scope>subtree</search-scope>
<!-- <limit>1000</limit> -->
</ldap-query>
<or>
<ldap-group member-dn-attribute="uniqueMember">cn=CMS Redakteure,ou=groups,dc=sitepark,dc=com</ldap-group>
<ldap-group member-dn-attribute="uniqueMember">cn=CMS Administratore,ou=groups,dc=sitepark,dc=com</ldap-group>
<or>
</and>
</query>
</source>
Aus dem Suchergebnis erzeugt der XIP Importer XML-Daten der folgenden Form:
<?xml version="1.0" encoding="UTF-8"?>
<rowset>
<row>
<dn>dn 1</dn>
<fieldname1>fieldvalue1</fieldname1>
<fieldname2>fieldvalue2</fieldname2>
<fieldname3>fieldvalue3</fieldname3>
<group>dn group1</group>
<group>dn group2</group>
</row>
<row>
<dn>dn 2</dn>
<fieldname1>fieldvalue1</fieldname1>
<fieldname2>fieldvalue2</fieldname2>
<fieldname3>fieldvalue3</fieldname3>
<group>dn group3</group>
</row>
...
</rowset>
Mit der Option --dumpXml
könne diese Daten auf der Konsole ausgegeben werden (ist bereist eine XSLT angegeben werden aber die transformierten Daten ausgegeben)
Um die Daten importieren zu könne muss eine XSLT definiert werden, die diese XML-Daten in das gewünschte XIP Format umwandelt.
Datenbank
Ein Import von Datenbank-Daten kann nur mit Hilfe einer XML-Konfiguration erfolgen. Die abzufragende Datenbank muss im IES-Admin konfiguriert sein. Die Abfrage der Daten erfolgt über eine SQL-Suche.
Im folgenden wird beschrieben, wie das <source>
Element definiert werden muss.
- Element
<source>
- Attribute:
Name Beschreibung type
muss für einen Datenbank-Import database
lauten.id
ID der Datenbank-Konfiguration im IES-Admin
- Unterelemente:
- Element
<sql>
- In diesem Element wird das SQL-Statement angegeben, das der XIP Importer ausführen soll.
- Element
Beispiel:
<source type="ldap" id="1">
<sql>SELECT id, field1 AS title, field2 AS text WHERE type= 'content'</sql>
</source>
Aus dem Suchergebnis erzeugt der XIP Importer XML-Daten der folgenden Form:
<?xml version="1.0" encoding="UTF-8"?>
<rowset>
<row>
<id>1</id>
<title>Titel 1</title>
<text>Text 1</text>
</row>
<row>
<id>2</id>
<title>Titel 2</title>
<text>Text 2</text>
</row>
...
</rowset>
Mit der Option --dumpXml
könne diese Daten auf der Konsole ausgegeben werden (ist bereist eine XSLT angegeben werden aber die transformierten Daten ausgegeben)
Um die Daten importieren zu könne muss eine XSLT definiert werden, die diese XML-Daten in das gewünschte XIP Format umwandelt.