FormSolutions Schnittstelle: Unterschied zwischen den Versionen
Hying (Diskussion | Beiträge) |
Hying (Diskussion | Beiträge) |
||
Zeile 176: | Zeile 176: | ||
Der Import kann manuell durch Aufruf des Skriptes <code>iespkg</code> gestartet werden: | Der Import kann manuell durch Aufruf des Skriptes <code>iespkg</code> gestartet werden: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | server:# /srv/sitepark/bin/iespkg / | + | server:# /srv/sitepark/bin/iespkg /srv/sitepark/conf/form-solutions.xml |
</source> | </source> | ||
Zeile 183: | Zeile 183: | ||
# m h dom mon dow command | # m h dom mon dow command | ||
# Formulare von form-solutions aktualisieren. | # Formulare von form-solutions aktualisieren. | ||
− | 1 1 * * * /srv/sitepark/bin/iespkg / | + | 1 1 * * * /srv/sitepark/bin/iespkg /srv/sitepark/conf/form-solutions.xml |
</source> | </source> | ||
− | *Auf Windows-Systemen müsste eine entsprechende 'Aufgabe' konfiguriert werden, die den beispielhaften Aufruf <code>c:/Programme/Sitepark/bin/iespkg / | + | *Auf Windows-Systemen müsste eine entsprechende 'Aufgabe' konfiguriert werden, die den beispielhaften Aufruf <code>c:/Programme/Sitepark/bin/iespkg c:/Programme/Sitepark/conf/form-solutions.xml</code> einmal täglich ausführt. |
<noinclude> | <noinclude> |
Version vom 22. Mai 2012, 07:56 Uhr
Formulare der Firma Form-Solutions können in den IES integriert werden. Hierzu ist eine Form-Solutions Lizenz erforderlich.
Funktionsweise
Referenzen der Formulare werden in den IES (Sitepark Information Enterprise Server) importiert und durch regelmäßige Imports synchron gehalten. Mit Hilfe des spt:formsolutions-Tag kann ein Link-Dialog geöffnet werden, um ein Formulare zu verwenden. Für jede erzeugte Verlinkung wird eine neue URL erzeugt. Über dieser URL kann das Formular vom Form-Solutions-Server geladen werden (Z.B. PDF). Der spt:formsolutions-Tag erzeugt einen Button über den das Formular konfiguriert werden kann. Nach Klick auf diesen Button öffnet sich eine Seite des Form-Solutions-Servers mit der das Formular konfiguriert wird.
Voraussetzungen
Um die Form-Solutions-Schnittstelle einrichten zu können müssen folgende Voraussetzungen gegeben sein:
- Der Kunde muss eine Form-Solutions Lizenz besitzen, um den den Form-Solutions-Server ansprechen zu können
- Der IES muss Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.
- Die Redakteure, die die Formulare Verknüpfen sollen, müssen Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.
- Es muß ein CMS-Key für die Form-Solutions-Schnittstelle bekannt sein der vom IES verwendet werden kann. Dieser Key wird den Kunden von Form-Solutions genannt. Der Key sollte keine Sonderzeichen enthalten!
- Die zu verwendenden Formulare werden zur Personalisierung mit einem Form-Solutions-Nutzer verknüpft. Hier muss ein Default-Nutzer bekannt sein, der initial für neue Formular-Links verwendet wird. Diese Nutzer kann bei der weiteren Konfiguration des Formulars geändert werden. Für die Form-Solutions-Schnittelle ist eine Default-Nutzer-Nummer erforderlich. Sie muss das Format
00000000-0001-0001
haben. - Es muss ein TemplatePool mit dem Anchor '
formsolutions.template.pool
' existieren, der unterhalb des Pools 'Seitentemplates' hinterlegt ist oder das Flag 'Dieser Pool enthält Seitentemplates' gesetzt hat. - In diesem TemplatePool müssen zwei Template erstellt werden. Zum einen das folgende Template mit dem Anchor '
formsolutions.template.config
':
<sp:io type="in">
<em>
Diese Konfigurationswerte werden über den Form-Solutions import gesetzt und können an dieser Stellen nicht geändert werden.
Ist eine Änderung der Werte nötig, muss diese Änderung am Importer vorgenommen werden.
</em>
<br/>
<br/>
Webservice Url<br>
<spt:text name="wsurl" readonly="false" size="80"/><br/>
CMS-Key<br>
<spt:text name="cms" readonly="true" size="80"/><br/>
Nutzer-Nummer<br>
<spt:text name="user" readonly="true" size="80"/><br/>
</sp:io>
- Und zum zweiten das Template mit dem Anchor '
formsolutions.template.form
':
<sp:io type="in">
Formular-Nummer<br/>
<spt:text name="fs_fnr"/><br/>
Anzahl der Seiten<br/>
<spt:text name="fs_pagecount"/><br/>
Erzeugt am<br/>
<spt:text name="fs_created"/><br/>
Letzte Änderung am<br/>
<spt:text name="fs_changed"/><br/>
Bemerkung<br/>
<spt:text name="fs_bem"/><br/>
Beschreibung<br/>
<spt:text name="fs_beschr"/><br/>
Typ<br/>
<spt:text name="fs_type"/><br/>
</sp:io>
- Es muss ein ArtikelPool mit dem Anchor '
formsolutions
' existieren. Dieser Pool besitzt den 'Standard Infosite Container' sowie das Template für die Eigenschaften 'nur Resourcen anlegen'. Der 'Templatepool für die Bearbeitung' ist der zuvor angelegte TemplatePool 'formsolutions.template.pool
'.
Konfiguration
Um den Import einrichten zu können müssen von dem Kunden folgende Informationen bereit gestellt werden:
- CMS-Key des Kunden-Accounts
- Kunden-Account: Login und Passwort
Dann sind die beiden folgende Dateien in /etc/sitepark/conf/
anzulegen:
1. form-solutions.xml
Hier müssen die Variablen cmskey und user entsprechend den Daten des Kunden ersetzt werden.
Außerdem müssen in der Zeile ies-connection
die Parameter login
, password
und anchor_of_the_client
gesetzt werden.
Vorsicht: Sollte der Key Zeichen wie '&' enthalten, muss der unten verwendete Platzhalter '${cmskey}' gegen den XML encodeten Key getauscht werden!
<?xml version="1.0" encoding="UTF-8"?>
<import>
<logging>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %m%n"/>
</layout>
<param name="File" value="${sitepark.home}/form-solutions.log"/>
<param name="MaxFileSize" value="10MB"/>
<param name="MaxBackupIndex" value="10"/>
</appender>
<logger name="com.sitepark.ies" additivity="false">
<appender-ref ref="FILE"/>
<priority value="DEBUG"/>
</logger>
</logging>
<ies-connection login="IMPORT-USER-LOGIN" password="IMPORT-USER-PASSWORD" client="IMPORT-CLIENT-ANCHOR" module="Form Solutions Importer"/>
<options>
<ignoreParents>false</ignoreParents> <!-- Objekte bei neuer Zuordnung auch verschieben -->
<createElements>true</createElements>
<deleteWorkDir>true</deleteWorkDir>
<createPools>true</createPools>
<updatePools>true</updatePools>
<updateElements>true</updateElements>
<deletePools>true</deletePools>
<deleteOnlyEmptyPools>true</deleteOnlyEmptyPools>
<deleteElements>true</deleteElements>
<xslt>${sitepark.home}/conf/form-solutions.xslt</xslt>
<syncFile>${sitepark.home}/conf/form-solutions.sync</syncFile>
<attributes>
<attribute name="wsurl">https://pdf.form-solutions.net/ws2</attribute>
<!-- cmskey und user sind nur Beispielwerte -->
<attribute name="cmskey">293478912hskdfh238</attribute>
<attribute name="user">12345678-1234-1234</attribute>
</attributes>
</options>
<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>
</import>
2. form-solutions.xslt
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xip="http://ies.sitepark.com/xip"
extension-element-prefixes="xip">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:function name="xip:getCategoryId"> <xsl:param name="s"/>
<!-- Erstes Zeichen ermitteln -->
<xsl:variable name="id" select="substring-before($s,' ')"/>
<xsl:value-of select="substring-before($s,' ')"/>
</xsl:function>
<xsl:key name="categoryId" match="item" use="xip:getCategoryId(kat)"/>
<xsl:template match="/">
<xip>
<resource parent="formsolutions" anchor="formsolutions.config" name="Form Solutions Konfiguration" template="formsolutions.template.config">
<text name="wsurl">${wsurl}</text>
<text name="cms">${cmskey}</text>
<text name="user">${user}</text>
</resource>
<!-- Schleife über Kategorien -->
<xsl:for-each select="//item[generate-id() = generate-id(key('categoryId', xip:getCategoryId(kat))[1])]">
<xsl:variable name="category" select="xip:getCategoryId(kat)"/>
<!-- gelöschte Formulare haben keine Kategorie -->
<xsl:if test="$category != ''">
<xsl:variable name="categoryName" select="kat/text()"/>
<articlepool parent="formsolutions" anchor="formsolutions.category.{$category}" name="{$categoryName}">
<resource>
<text name="container" anchor="is5:gui.container.infosite.standard"/>
<text name="registrationTemplate" anchor="is5:gui.container.infosite.standard.all"/>
<text name="editorTemplatePool" anchor="standard.container.editing"></text>
</resource>
<!-- Schleife über alle mit gleicher Kategorie -->
<xsl:for-each select="key('categoryId',$category)">
<resource anchor="formsolutions.form.{fnr}" name="{title}" template="formsolutions.template.form">
<comment><xsl:value-of select="bem"/></comment>
<text name="fs_fnr"><xsl:value-of select="fnr"/></text>
<text name="fs_pagecount"><xsl:value-of select="pagecount"/></text>
<text name="fs_created"><xsl:value-of select="created"/></text>
<text name="fs_changed"><xsl:value-of select="changed"/></text>
<text name="fs_beschr"><xsl:value-of select="beschr"/></text>
<text name="fs_type"><xsl:value-of select="type"/></text>
</resource>
</xsl:for-each>
</articlepool>
</xsl:if>
</xsl:for-each>
</xip>
</xsl:template>
</xsl:stylesheet>
Aktivierung
Der Import kann manuell durch Aufruf des Skriptes iespkg
gestartet werden:
server:# /srv/sitepark/bin/iespkg /srv/sitepark/conf/form-solutions.xml
- Zur regelmäßigen Synchronisation ist ein Cronjob in folgender Form notwendig:
# m h dom mon dow command
# Formulare von form-solutions aktualisieren.
1 1 * * * /srv/sitepark/bin/iespkg /srv/sitepark/conf/form-solutions.xml
- Auf Windows-Systemen müsste eine entsprechende 'Aufgabe' konfiguriert werden, die den beispielhaften Aufruf
c:/Programme/Sitepark/bin/iespkg c:/Programme/Sitepark/conf/form-solutions.xml
einmal täglich ausführt.