XIP iesxip: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 11: Zeile 11:
 
;Import/Export über XML-Konfiguration mit ergänzenden Kommandozeilen Optionen
 
;Import/Export über XML-Konfiguration mit ergänzenden Kommandozeilen Optionen
 
:<source lang="bash">iesxip [Optionen außer -x und -i] Konfigurations-Datei</source>
 
:<source lang="bash">iesxip [Optionen außer -x und -i] Konfigurations-Datei</source>
 
 
  
 
==Allgemeine Optionen==
 
==Allgemeine Optionen==
Zeile 59: Zeile 57:
 
;<code>-i, --import</code>
 
;<code>-i, --import</code>
 
:Gibt an, das ein Import durchgeführt werden soll.
 
:Gibt an, das ein Import durchgeführt werden soll.
;<code>-e, --export</code>
+
;<code>-x, --export</code>
 
:Gibt an, das ein Import durchgeführt werden soll.
 
:Gibt an, das ein Import durchgeführt werden soll.
 
  
 
==Export Optionen==
 
==Export Optionen==
Zeile 102: Zeile 99:
  
 
==Import Optionen==
 
==Import Optionen==
 
+
;<code>--userArchive</code>
;<code>--dumpXML</code>
+
:Angabe eines Anchors für einen Nutzer-Pool in dem Nutzer zu Archivieren sind. Mit Angabe dieser Option wird der Nutzer bei einem synchronisierten Import nicht gelöscht sondern in den angegebenen Pool verschoben, alle Symlinks des Nutzers werden gelöscht und der Nutzer wird deaktiviert. (Siehe auch --syncFile)
 +
;<code>--dumpXml</code>
 
:Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole
 
:Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole
 
;<code>--createPools</code>
 
;<code>--createPools</code>
Zeile 124: Zeile 122:
 
;<code>--syncFile</code>
 
;<code>--syncFile</code>
 
:Synchronisations-Datei die verwendet werden soll um zu protokollieren, welche Elemente importiert wurde. Diese Datei wird bei jedem erneuten Import ausgewertet um ermitteln zu können welche Pools und Elemente bei dem Import nicht mehr enthalten sind. Die so ermittelten Elemente werden depubliziert. Wird <code>--deletePools</code> und <code>--deleteElements</code> auf <code>true</code> gesetzt werden die Pools und Elemente gelöscht. In der Datei werden die Anchor der Pools und Elemente geschrieben. Existiert die Datei nicht, wird sie bei dem ersten Import angelegt.
 
:Synchronisations-Datei die verwendet werden soll um zu protokollieren, welche Elemente importiert wurde. Diese Datei wird bei jedem erneuten Import ausgewertet um ermitteln zu können welche Pools und Elemente bei dem Import nicht mehr enthalten sind. Die so ermittelten Elemente werden depubliziert. Wird <code>--deletePools</code> und <code>--deleteElements</code> auf <code>true</code> gesetzt werden die Pools und Elemente gelöscht. In der Datei werden die Anchor der Pools und Elemente geschrieben. Existiert die Datei nicht, wird sie bei dem ersten Import angelegt.
 +
;<code>--forceSync</code>
 +
:Erzwingt eine Synchronisation auch wenn keine Elemente im XIP enthalten sind, so dass ggf alle zuvor importierten Elemente gelöscht werden. (Ab Version 2.29)
 
;<code>--xslt</code>
 
;<code>--xslt</code>
 
:XSLT-Datei die für den Import verwendet werden soll. Eine Transformation der zu importierenden Daten ist nötig, wenn die Daten nicht im XIP-Format vorliegen.
 
:XSLT-Datei die für den Import verwendet werden soll. Eine Transformation der zu importierenden Daten ist nötig, wenn die Daten nicht im XIP-Format vorliegen.
 +
;<code>--ignore-xslt</code>
 +
:Beim Aufbau eine XSLT kann es sinnvoll sein die Row-XML-Daten auszugeben. Zusammen mit der Option --dumpXml ist dies möglich.
 +
:Hinweise zu [[XIP mit XSLT|XLS-Transformationen]]
 
;<code>--listener</code>
 
;<code>--listener</code>
 
:Angabe von Java-Klassen (kommasepariert), die das <code>com.sitepark.ies.xip.importer.ImportListener</code> Interface implementiert haben.
 
:Angabe von Java-Klassen (kommasepariert), die das <code>com.sitepark.ies.xip.importer.ImportListener</code> Interface implementiert haben.
Zeile 136: Zeile 139:
 
:<b>all</b> - Publiziert in allen Publikationsbereichen des Mandanten in denen der Nutzer Rechte hat
 
:<b>all</b> - Publiziert in allen Publikationsbereichen des Mandanten in denen der Nutzer Rechte hat
 
:<b>all-file</b> - Publiziert in alle File-Publikationsbereiche des Mandanten in denen der Nutzer Rechte hat.
 
:<b>all-file</b> - Publiziert in alle File-Publikationsbereiche des Mandanten in denen der Nutzer Rechte hat.
 +
;<code>--republishAfterTemplateChanges</code>
 +
:Wird <code>false</code> angegeben, werden Artikel nicht neu generiert, dessen Templates sich nach dem Import geändert haben.
 +
;<code>--withAnchorFallback</code>
 +
:Gibt an, das wenn der Anchor nicht gefunden wird, die original-ID verwendet werden soll. Diese Option sollte nur verwendet werden, wenn Daten in dem gleichen Mandanten eingespielt werden, aus dem sei auch exportiert wurden.
 +
;<code>--setAnchorWithAnchorFallback</code>
 +
:NUR wenn <code>--withAnchorFallback</code> gesetzt wurde, kann mit <code>--setAnchorWithAnchorFallback</code> bestimmt werden, dass die über die Original-Id ermittelten Objekte den Anker aus dem XIP-Paket erhalten.
  
 +
===Benachrichtigungen===
 +
 +
Ab der Version 2.20 des IES-XIP-Modules können Nachrichten über die importierten Objekte erstellt werden. Dafür muss in dem Mandaten eine Nutzer-Gruppe mit dem Anker <code>ies.usrp.xip</code> erstellt werden. Allen Nutzern, die über die Nutzerverwaltung in diesem Pool verknüpft wurden, werden dann die (ggf. regelmäßigen) Import-Reports im Posteingang des Redaktionssystem zur Verfügung gestellt. Die neuen, geänderten und gelöschten Objekte werden jeweils in einer Nachricht aufgelistet.
 +
 +
;<code>--notification.participant</code>
 +
:Mit der Import-Option <code>notification.participant</code> kann ein vom Standard(<code>ies.usrp.xip</code>) abweichender UserPool-Anker für Benachrichtigungen angegeben werden.
 +
 +
Ab der Version 2.21 können auch die Fehler, die während des Imports aufgetreten sind, als Nachricht an eine Nutzer-Gruppe geschickt werden. Zu diesem Zweck muss in dem Redaktionssystem wieder ein Nutzergruppe erstellt werden. Der 'default' Anker der Gruppe ist <code>ies.usrp.xip.error</code>. Der Anker des Empfängerpools kann aber mit der Import-Option <code>notification.failure.participant</code>  angepasst werden.
 +
 +
;<code>--notification.failure.participant</code>
 +
:Vom Standard (<code>ies.usrp.xip.error</code>) abweichender UserPool-Anker für Benachrichtigungen über Fehler, die während des Imports aufgetreten sind.
 +
 +
====Spezialisierung für CityGov-Importe====
 +
Bei Importen für das Modul CityGov kann ein weiterer Import-Listener angegeben werden. Neben den Standard-Hinweisen zu neuen, geänderten und gelöschten Objekten, können weitere CityGov-spezifische Prüfungen durchgeführt werden. Zu diesem Zweck muss zunächst der folgende Import-Listener in der XIP-Konfiguration angegeben werden:
 +
 +
Mit den folgenden Optionen können die entsprechenden Prüfung eingestellt werden:
 +
;<code>--citygov.import.competence.check  [true|false]</code>
 +
:Diese Option aktiviert die Prüfung der Produkt-Zuständigkeiten. Alle Produkte, für die keine gültigen Mitarbeiter-Verknüpfungen (Zuständigkeiten) existieren, werden bei jedem Import in einer Nachricht aufgelistet. Es erfolgt aber KEINE Prüfung der Publikation oder Freigabe der Verknüpfungen!!!
 +
;<code>--citygov.import.competence.participant</code>
 +
:User-Pool-Anker der Enpfänger. Diese Zuständigkeits-Nachrichten werden nur verschickt, wenn der in diesem Parameter angegebene User-Pool-Anker in dem Mandanten existiert.
 +
 +
Beispiel einer import.xml:
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<import ...
 +
  ...
 +
  <options>
 +
    ...
 +
    <!-- allgemeine Benachrichtigungen bei XIP-Importen -->
 +
    <notification.participant>ies.usrp.xip</notification.participant>
 +
    <notification.failure.participant>ies.usrp.xip.error</notification.failure.participant>
 +
    ...
 +
    <!-- erweiterte Benachrichtigungen bei CityGov-XIP-Importen -->
 +
    <listener>com.sitepark.ies.xip.importer.CityGovImportListener</listener>
 +
    <citygov.import.competence.check>[true|false]</citygov.import.competence.check>
 +
    <citygov.import.competence.participant>ies.usrp.citygov.competence.messages</citygov.import.competence.participant>
 +
    ...
 +
  <options>
 +
  ...
 +
</import>
 +
</source>
  
 
==XML Konfiguration==
 
==XML Konfiguration==
Zeile 171: Zeile 221:
 
:''Unterelemente:''
 
:''Unterelemente:''
 
:;Element <code>&lt;logging&gt;</code>'''
 
:;Element <code>&lt;logging&gt;</code>'''
::Innerhalb des <code>&lt;logging&gt;</code> Elementes können angaben für ein Log-Datei definiert werden in der die Log-Einträge für den Import/Export geschrieben werden. Das <code>&lt;logging&gt;</code> Elemente entspricht dem <code><log4j:configuration></code> Element der log4j Konfiguration. Eine vollständige Dokumentation der XML-Formats für Log4j ist unter [http://wiki.apache.org/logging-log4j/Log4jXmlFormat] zu finden. Beispiel:
+
::Innerhalb des <code>&lt;logging&gt;</code> Elementes können angaben für ein Log-Datei definiert werden in der die Log-Einträge für den Import/Export geschrieben werden. Das <code>&lt;logging&gt;</code> Elemente entspricht dem <code>Configuration</code> Element der log4j2 Konfiguration. Eine vollständige Dokumentation der XML-Formats für Log4j2 ist unter [https://logging.apache.org/log4j/2.x/manual/configuration.html] zu finden. Beispiel:
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
    <logging>
+
<logging>
        <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
+
<Appenders>
            <layout class="org.apache.log4j.PatternLayout">
+
<RollingFile
                <param name="ConversionPattern" value="%d %-5p %m%n"/>
+
name="FILE"
            </layout>
+
fileName="${sys:sitepark.home}/ldap/import.log"
            <param name="File" value="${sitepark.home}/form-solutions.log"/>
+
filePattern="${sys:sitepark.home}/ldap/import-%d{dd-MM-yyyy}-%i.log.gz"
            <param name="MaxFileSize" value="10MB"/>
+
append="true">
            <param name="MaxBackupIndex" value="10"/>
+
<PatternLayout>
        </appender>
+
<Pattern>%d %-5p %m%n</Pattern>
        <logger name="com.sitepark.ies" additivity="false">
+
</PatternLayout>
            <appender-ref ref="FILE"/>
+
<Policies>
            <priority value="INFO"/>
+
<TimeBasedTriggeringPolicy />
        </logger>
+
<SizeBasedTriggeringPolicy size="10MB" />
    </logging>
+
</Policies>
 +
<DefaultRolloverStrategy max="10" />
 +
</RollingFile>
 +
</Appenders>
 +
<Loggers>
 +
<Logger name="com.sitepark.ies" level="info" additivity="false">
 +
<AppenderRef ref="FILE" />
 +
</Logger>
 +
</Loggers>
 +
</logging>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
:;Element <code><ies-connection></code>'''
 
:;Element <code><ies-connection></code>'''
Zeile 393: Zeile 452:
 
|}
 
|}
 
:;Element <code>&lt;objectattributes&gt;</code>''' (Ab Version 2.2.0.63)
 
:;Element <code>&lt;objectattributes&gt;</code>''' (Ab Version 2.2.0.63)
::Mit dieser Angabe können genau die Attribute angegeben die von dem aktuellen LDAP-Objekt zurückgeliefert werden sollen. Wenn kein Tag <code><objectattributes name="attribut_x"></code> angegeben ist, werden alle verfügbaren Attribute (außer Systemattribute) des LDAP-Objektes übernommen.
+
::Mit dieser Angabe können genau die Attribute angegeben die von dem aktuellen LDAP-Objekt zurückgeliefert werden sollen. Wenn kein Tag <code><objectattributes name=...></code> angegeben ist, werden alle verfügbaren Attribute (außer Systemattribute) des LDAP-Objektes übernommen.
 
::''Attribute:''
 
::''Attribute:''
 
::{| class="prettytable sortable"
 
::{| class="prettytable sortable"
Zeile 400: Zeile 459:
 
|-
 
|-
 
| <code>name</code>
 
| <code>name</code>
| Namen eines LDAP-Attributes, dass von jedem zu importierenden Objekt gelesen und in die XML-Struktur übernommen werden soll.
+
| Name eines LDAP-Attributes, dass von jedem zu importierenden Objekt gelesen und in die XML-Struktur übernommen werden soll.
 +
|-
 +
| <code>mapping</code>
 +
| Vom Attribut abweichender Name der in der Ergebnis-XML Struktur eingetragen werden kann.
 +
|-
 +
| <code>encoding</code>
 +
| Encoding. Gültige Werte können 'hex' oder 'base64' sein.
 +
|-
 +
| <code>type</code>
 +
| DatenTyp. Ein gültiger Wert kann derzeit nur 'binary' sein.  
 
|-
 
|-
 
|}
 
|}

Aktuelle Version vom 22. September 2023, 12:25 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 ... Suchabfrage ...
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, bzw XIP 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 Logger com.sitepark.ies auf DEBUG
-vvv
wie -v und setzt den Log-Level für den Root-Logger auf DEBUG
-vvvv
wie -v und setzt den Log-Level für den Root-Logger und den Logger com.sitepark.ies auf TRACE
-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 ist true


-i, --import
Gibt an, das ein Import durchgeführt werden soll.
-x, --export
Gibt an, das ein Import durchgeführt werden soll.

Export Optionen

Die exportierten Daten werden im XIP Format erzeugt. Je nach gewählter Option werden die Daten in einer ZIP-Datei mit der Endung .xip verpackt oder werden in einem Verzeichnis abgelegt.

Optionen für den Export

-f, --xip-file
Gibt an das der Export in einer Datei erfolgen soll. Besitzt der angegebene Dateiname nicht die Endung .xip wird diese automatisch angehängt. Die Export-Datei ist eine ZIP-Datei.
-d, --xip-dir
Gibt an das der Export in einem Verzeichnis erfolgen soll. Besitzt der angegebene Dateiname nicht die Endung .xip wird diese automatisch angehängt.
--id
Mit dieser Option kann für das erzeugte XIP-Paket eine ID vergeben werden. Diese ID kann von anderen XIP-Paketen dazu verwendet werden Abhängigkeiten zu definieren.
--version
Mit dieser Option kann für das erzeugte XIP-Paket eine Version vergeben werden. Diese Version kann, in Kombination mit der Paket-ID von anderen XIP-Paketen dazu verwendet werden Abhängigkeiten zu definieren.
--name
Mit dieser Option kann für das erzeugte XIP-Paket ein Name vergeben werden.
--description
Mit dieser Option kann für das erzeugte XIP-Paket eine Beschreibung vergeben werden.
--author
Mit dieser Option kann für das erzeugte XIP-Paket ein Author gesetzt werden.
--copyright
Mit dieser Option kann für das erzeugte XIP-Paket ein Copyright gesetzt werden.
--channel
Mit dieser Option können Publikations-Kanäle für dieses XIP-Paket definiert werden. Publikationskanäle werden dazu verwendet die Publikationsbereiche des Mandaten aus dem die Daten exportiert werden mit frei definierbaren Namen zu versehen.
anchor=name[,anchor=name,[...]]
--exportPools
Wird false angegeben, werden keine Pools exportert. Default ist true
--exportElements
Wird false angegeben, werden keine Elemente exportert. Default ist true
--symlinksAsElements
Wird true angegeben, Symlinks als echte Elemente exportiert. Default ist false
--setParent
Wird true angegeben, wird für jeden exportierten Datensatz das parent Attribut gesetzt. Default ist false
--withRoot
Wird false angegeben, werden die angegebenen Pools selber nicht mit exportiert, sondern nur dessen Unter-Elemente und -Pools. Default ist true
--exportPermisssions
Wird true angegeben, werden alle Recht der zu exportierenden Pools mit exportiert. Default ist false
--noXipInf
Wird true angegeben, wenn die XIP-INF Verzeichnisse beim Export nicht mit angelegt werden sollen. Wird diese Option gesetzt, muss auch die Option --setParent gesetzt werden. Default ist false


Import Optionen

--userArchive
Angabe eines Anchors für einen Nutzer-Pool in dem Nutzer zu Archivieren sind. Mit Angabe dieser Option wird der Nutzer bei einem synchronisierten Import nicht gelöscht sondern in den angegebenen Pool verschoben, alle Symlinks des Nutzers werden gelöscht und der Nutzer wird deaktiviert. (Siehe auch --syncFile)
--dumpXml
Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole
--createPools
Wird false angegeben, werden keine Pools erzeugt. Default ist true
--updatePools
Wird false angegeben, werden keine Pools aktualisiert. Default ist true
--deletePools
Wird true angegeben, können Pools gelöscht werden (Nur mit Angabe einer Sync-Datei). Default ist true
--deleteOnlyEmptyPools
Wird false angegeben, werden Pools auch gelöscht, wenn sie noch Unter-Elemente oder Unter-Pools enthalten (Nur mit Angabe einer Sync-Datei). Default ist true
Schreibt die angegebenen Optionen als XML-Konfiguration auf die Konsole
--createElements
Wird false angegeben, werden keine Elemente erzeugt. Default ist true
--updateElements
Wird false angegeben, werden keine Elemente aktualisiert. Default ist true
--deleteElements
Wird true angegeben, können Elemente gelöscht werden (Nur mit Angabe einer Sync-Datei). Default ist true
--root
Gibt den Default-Parent an, der für alle Import-Daten verwendet wird, die keine Parent besitzten (z.B. XIP-Pakete, die mit --withRoot exportiert wurden)
--syncFile
Synchronisations-Datei die verwendet werden soll um zu protokollieren, welche Elemente importiert wurde. Diese Datei wird bei jedem erneuten Import ausgewertet um ermitteln zu können welche Pools und Elemente bei dem Import nicht mehr enthalten sind. Die so ermittelten Elemente werden depubliziert. Wird --deletePools und --deleteElements auf true gesetzt werden die Pools und Elemente gelöscht. In der Datei werden die Anchor der Pools und Elemente geschrieben. Existiert die Datei nicht, wird sie bei dem ersten Import angelegt.
--forceSync
Erzwingt eine Synchronisation auch wenn keine Elemente im XIP enthalten sind, so dass ggf alle zuvor importierten Elemente gelöscht werden. (Ab Version 2.29)
--xslt
XSLT-Datei die für den Import verwendet werden soll. Eine Transformation der zu importierenden Daten ist nötig, wenn die Daten nicht im XIP-Format vorliegen.
--ignore-xslt
Beim Aufbau eine XSLT kann es sinnvoll sein die Row-XML-Daten auszugeben. Zusammen mit der Option --dumpXml ist dies möglich.
Hinweise zu XLS-Transformationen
--listener
Angabe von Java-Klassen (kommasepariert), die das com.sitepark.ies.xip.importer.ImportListener Interface implementiert haben.
--downloadStore
Verzeichnis in dem die, für HTTP-Importquellen per HTTP heruntergeladenen Daten abgelegt werden. Wird kein Download-Store gesetzt werden die Dateien im Verzeichnis download unterhalb des Arbeitsverzeichnisses abgelegt.
--republishAfterTemplateChanges
Wird false angegeben, werden Artikel nicht neu generiert, dessen Templates sich nach dem Import geändert haben.
--publishMode [all, all-file]
Publikationsmoduls
all - Publiziert in allen Publikationsbereichen des Mandanten in denen der Nutzer Rechte hat
all-file - Publiziert in alle File-Publikationsbereiche des Mandanten in denen der Nutzer Rechte hat.
--republishAfterTemplateChanges
Wird false angegeben, werden Artikel nicht neu generiert, dessen Templates sich nach dem Import geändert haben.
--withAnchorFallback
Gibt an, das wenn der Anchor nicht gefunden wird, die original-ID verwendet werden soll. Diese Option sollte nur verwendet werden, wenn Daten in dem gleichen Mandanten eingespielt werden, aus dem sei auch exportiert wurden.
--setAnchorWithAnchorFallback
NUR wenn --withAnchorFallback gesetzt wurde, kann mit --setAnchorWithAnchorFallback bestimmt werden, dass die über die Original-Id ermittelten Objekte den Anker aus dem XIP-Paket erhalten.

Benachrichtigungen

Ab der Version 2.20 des IES-XIP-Modules können Nachrichten über die importierten Objekte erstellt werden. Dafür muss in dem Mandaten eine Nutzer-Gruppe mit dem Anker ies.usrp.xip erstellt werden. Allen Nutzern, die über die Nutzerverwaltung in diesem Pool verknüpft wurden, werden dann die (ggf. regelmäßigen) Import-Reports im Posteingang des Redaktionssystem zur Verfügung gestellt. Die neuen, geänderten und gelöschten Objekte werden jeweils in einer Nachricht aufgelistet.

--notification.participant
Mit der Import-Option notification.participant kann ein vom Standard(ies.usrp.xip) abweichender UserPool-Anker für Benachrichtigungen angegeben werden.

Ab der Version 2.21 können auch die Fehler, die während des Imports aufgetreten sind, als Nachricht an eine Nutzer-Gruppe geschickt werden. Zu diesem Zweck muss in dem Redaktionssystem wieder ein Nutzergruppe erstellt werden. Der 'default' Anker der Gruppe ist ies.usrp.xip.error. Der Anker des Empfängerpools kann aber mit der Import-Option notification.failure.participant angepasst werden.

--notification.failure.participant
Vom Standard (ies.usrp.xip.error) abweichender UserPool-Anker für Benachrichtigungen über Fehler, die während des Imports aufgetreten sind.

Spezialisierung für CityGov-Importe

Bei Importen für das Modul CityGov kann ein weiterer Import-Listener angegeben werden. Neben den Standard-Hinweisen zu neuen, geänderten und gelöschten Objekten, können weitere CityGov-spezifische Prüfungen durchgeführt werden. Zu diesem Zweck muss zunächst der folgende Import-Listener in der XIP-Konfiguration angegeben werden:

Mit den folgenden Optionen können die entsprechenden Prüfung eingestellt werden:

--citygov.import.competence.check [true|false]
Diese Option aktiviert die Prüfung der Produkt-Zuständigkeiten. Alle Produkte, für die keine gültigen Mitarbeiter-Verknüpfungen (Zuständigkeiten) existieren, werden bei jedem Import in einer Nachricht aufgelistet. Es erfolgt aber KEINE Prüfung der Publikation oder Freigabe der Verknüpfungen!!!
--citygov.import.competence.participant
User-Pool-Anker der Enpfänger. Diese Zuständigkeits-Nachrichten werden nur verschickt, wenn der in diesem Parameter angegebene User-Pool-Anker in dem Mandanten existiert.

Beispiel einer import.xml:

<?xml version="1.0" encoding="UTF-8"?>
<import ...
  ...
  <options>
    ...
    <!-- allgemeine Benachrichtigungen bei XIP-Importen -->
    <notification.participant>ies.usrp.xip</notification.participant>
    <notification.failure.participant>ies.usrp.xip.error</notification.failure.participant>
    ...
    <!-- erweiterte Benachrichtigungen bei CityGov-XIP-Importen -->
    <listener>com.sitepark.ies.xip.importer.CityGovImportListener</listener>
    <citygov.import.competence.check>[true|false]</citygov.import.competence.check>
    <citygov.import.competence.participant>ies.usrp.citygov.competence.messages</citygov.import.competence.participant>
    ...
  <options>
  ...
 </import>

XML Konfiguration

Im- und Exporte können über eine XML-Konfiguration definiert werden. Mit Hilfe der Option --dumpConfig kann auf einfache Weise eine Konfigurations-Datei erstellt werden. Wird diese Option angegeben wird eine XML-Konfiguration aus den weiteren angegebenen Optionen auf der Konsole ausgegeben.


Das Root-Element der Konfiguration wird mit <import> für eine Import-Definition und <export> für eine Export-Definition angegeben.


Element <import>, <export>
Attribute: nur für <export>
Name Beschreibung
id ID des zu erzeugenden XIP-Paketes
version Version des zu erzeugenden XIP-Paketes
name Name des zu erzeugenden XIP-Paketes.
description Beschreibung für das zu erzeugenden XIP-Paketes.
author Author des zu erzeugenden XIP-Paketes.
copyright Copyright für das zu erzeugenden XIP-Paketes.
Unterelemente:
Element <logging>
Innerhalb des <logging> Elementes können angaben für ein Log-Datei definiert werden in der die Log-Einträge für den Import/Export geschrieben werden. Das <logging> Elemente entspricht dem Configuration Element der log4j2 Konfiguration. Eine vollständige Dokumentation der XML-Formats für Log4j2 ist unter [1] zu finden. Beispiel:
	<logging>
		<Appenders>
			<RollingFile
				name="FILE"
				fileName="${sys:sitepark.home}/ldap/import.log"
				filePattern="${sys:sitepark.home}/ldap/import-%d{dd-MM-yyyy}-%i.log.gz"
				append="true">
				<PatternLayout>
					<Pattern>%d %-5p %m%n</Pattern>
				</PatternLayout>
				<Policies>
					<TimeBasedTriggeringPolicy />
					<SizeBasedTriggeringPolicy size="10MB" />
				</Policies>
				<DefaultRolloverStrategy max="10" />
			</RollingFile>
		</Appenders>
		<Loggers>
			<Logger name="com.sitepark.ies" level="info" additivity="false">
				<AppenderRef ref="FILE" />
			</Logger>
		</Loggers>
	</logging>
Element <ies-connection>
Login-Daten für den Import/Export (alternative zu den Optionen -u, -p, -c, -m)
Attribute:
Name Beschreibung
login Login des IES Nutzers
password Passwort des IES Nutzers
client Anchor des Mandantent mit dem der Import/Export ausgeführt werden soll.
module Name des Moduls mit dem die erzeugte Session im IES-Admin angezeigt wird.
Element <options>
Optionen für den Im- oder Export. Unterhalb dieses Elementes können die Optionen als Elemente angelegt werden.
Unterelemente:
Element <attributes>
Attribute für den Import/Export
Unterelemente:
Element <attribute>
Attribute:
Name Beschreibung
name Name des Attributes
Der Wert des Attributes wird im attribute-Element angegeben.
Die Namen aller weiteren XML-Elemente entsprechen den Optionen ohne --
Element <source> nur für <import>
Definition der Import-Quelle. Weiter unten werden die Konfigurationen der unterschiedlichen Import-Quellen beschrieben
Element <entries> nur für <export>
Zu exportierende Einträge
Unterelemente:
Element <entry>
Attribute:
Name Beschreibung
anchor Anchor des Elementes das exportiert werden soll
query Suchabfrage dessen Treffer exportiert werden sollen.
Element <channel> nur für <export>
Publikationskanäle
Attribute:
Name Beschreibung
anchor Anchor des Publikationsbereichs für den ein Kanal erzeugt werden soll.
In dem <channel> Element wird der Name des Kanals angegeben.

Beispiel-Konfigurationen


Import Quellen

Im Nachfolgenden wird beschreiben wie die unterschiedlichen Import-Quellen angegeben werden können.

Datei / Verzeichnis

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 oder post für die zu verwendende HTTP Methode. Default ist get.
Unterelemente:
Element <header>
Mit diesem Element können HTTP-Header angegeben werden.
Attribute:
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:
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:
Name Beschreibung
content-type Content-Type des HTTP-Body
charset Charset des HTTP-Body. Kann alternativ auch im content-type z.B. mit text/xml; charset=UTF-8 angegeben werden.
Innerhalb des <body> Elementes wird der HTTP-Body definiert.

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>

XIP HTTP Import Beispiel

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 <getattributes> (Ab Version 2.2.0.7)
Mit dieser Definition können Attribute von LDAP-Objekten nachgeladen werden die als DN innerhalb eines gefundenen Datansatzes stehen. Die nachgeladenen Attribute werden als XML-Attribute an das XML-Elemente hinzugefügt.
Attribute:
Name Beschreibung
name Name des LDAP-Attributes, in dem der DN abgelegt ist.
attributes Namen der LDAP-Attributes, die für den ermittelten DN geladen und als XML-Attribut bereitgestellt werden sollen.
Element <parentattributes> (Ab Version 2.2.0.33)
Mit dieser Definition können Attribute von einem übergeordneten LDAP-Objekten nachgeladen werden. Die nachgeladenen Attribute werden als XML-Attribute an das XML-Elemente unterhalb von <parent> hinzugefügt.
Attribute:
Name Beschreibung
attributes Namen der LDAP-Attributes, die von dem übergeordneten Objekt geladen und als XML-Attribut bereitgestellt werden sollen.
Element <objectattributes> (Ab Version 2.2.0.63)
Mit dieser Angabe können genau die Attribute angegeben die von dem aktuellen LDAP-Objekt zurückgeliefert werden sollen. Wenn kein Tag <objectattributes name=...> angegeben ist, werden alle verfügbaren Attribute (außer Systemattribute) des LDAP-Objektes übernommen.
Attribute:
Name Beschreibung
name Name eines LDAP-Attributes, dass von jedem zu importierenden Objekt gelesen und in die XML-Struktur übernommen werden soll.
mapping Vom Attribut abweichender Name der in der Ergebnis-XML Struktur eingetragen werden kann.
encoding Encoding. Gültige Werte können 'hex' oder 'base64' sein.
type DatenTyp. Ein gültiger Wert kann derzeit nur 'binary' sein.
Element <encoding> (Ab Version 2.2.0.22)
Mit dieser Definition werden alle angegebenen Attribute (unabhängig der Herkunft wie parent- get- oder objectattributes) der LDAP-Objekte in einen bestimmten Encoding zurückgegeben. Dies ist z.B. bei binären Inhalten sinnvoll.
Attribute:
Name Beschreibung
attribute Name des LDAP-Attributes, das mit dem angegebenen Encoding encodiert werden soll.
encoding Encoding. Gültige Werte sind 'hex', 'base64'
Element <query>
Unterhalb dieses Elements wird die LDAP-Suche definiert
Unterelement <ldap-query>
Suche im LDAP-System
Unterelement <search-filter>
LDAP-Suchfilter. Beispiel:
(&amp;(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 <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:
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>
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>

Beispiel:

<source type="ldap" id="1">
   <getattributes name="linkAttribute" attributes="uid"/>
   <parentattributes attributes="uid"/>
   <query>
      <and>
         <ldap-query>
            <search-filter>(&amp;(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>
      <parent uid="124"/>
      <fieldname1>fieldvalue1</fieldname1>
      <fieldname2>fieldvalue2</fieldname2>
      <fieldname3>fieldvalue3</fieldname3>
      <linkAttribute uid="154">fieldvalue1</linkAttribute>
      <group>dn group1</group>
      <group>dn group2</group>
   </row>
   <row>
      <dn>dn 2</dn>
      <parent uid="124"/>
      <fieldname1>fieldvalue1</fieldname1>
      <fieldname2>fieldvalue2</fieldname2>
      <fieldname3>fieldvalue3</fieldname3>
      <linkAttribute uid="133">fieldvalue1</linkAttribute>
      <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.

XIP LDAP Import Beispiel

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 <sub> (Ab Version 2.2.0.33)
Unterabfrage um Strukturierte Daten abzufragen. Für den Treffer der in <sql> definierten Query wird die Unter-Abfrabge ausgeführt. Dabei kann mit den Attribut key definiert werden, welcher Wert in die Subabfrage als Schlüssel-Wert eingetragen wird. Die Unterabfrage muss ein ? enthalten an dessen Position der Schlüssel-Wert eingefügt wird.
Attribute:
Name Beschreibung
key Name der Spalte dessen Wert in die Unter-Abfrage eingefügt werden soll.
key-type (optional) Datentype des Schlüssel-Wertes. Mögliche Werte sind int oder string. Default ist string
name Name des XML-Elements das erzeugt werden soll unter dem die Ergebnisliste der Unterabfrage ausgegeben werden.

Beispiel:

<source type="database" id="1">
   <sql>SELECT id, field1 AS title, field2 AS text FROM table1 WHERE type= 'content'</sql>
   <sub key="id" name="links">SELECT link, name FROM links WHERE id = ?</sub>
</source>

Aus dem Suchergebnis erzeugt der XIP Importer XML-Daten der folgenden Form:

<?xml version="1.0" encoding="UTF-8"?>
<rowset>
   <row>
      <links>
         <row>
            <link>123</link>
            <name>Mein Link</name>
         </row>
         <row>
            <link>345</link>
            <name>Mein zweiter Link</name>
         </row>
      </links>
      <id>1</id>
      <title>Titel 1</title>
      <text>Text 1</text>
   </row>
   <row>
      <links>
         <row>
            <link>678</link>
            <name>Mein dritter Link</name>
         </row>
      </links>
      <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.

XIP Datenbank Import Beispiel