Diese Dokumentfunktion hilft, wenn eine Fremdapplikation beim Aufruf von primedocs keine sauberen Connect-Dateien, sondern XML-Dateien mit einer beliebigen Struktur übermittelt. Dabei muss beim Aufruf von primedocs zusätzlich der Name der Schnittstelle mitgegeben werden. Beim Client sieht ein solcher Aufruf so aus:
primedocs.exe /connector "C:\temp\testfile.xml" /interfaceType "myDefinedInterface"
In dieser Dokumentfunktion werden nun mit XSLT mittels Regeln definiert, wie das erhaltene XML-File (hier testfile.xml) für "myDefinedInterface" zu einer korrekten Connect-Datei umgeformt wird. Wir machen das anhand eines Beispiels.
Beispiel
In unserem Beispiel hat "testfile.xml" folgenden Inhalt:
<root> <anElement> <hereItIs>Test Content from XML file</hereItIs> </anElement> <anotherElement>This is an example.</anotherElement> </root>
Bei diesem Szenario wollen wir mit obigem testfile.xml ein Feld des Connect-Konverters abfüllen. Hierfür erstellen wir im Connect-Konverter eine Konfiguration für das Feld "TestCustomInterface.Field01" in der Schnittstelle "TestCustomInterface". Diese Konfiguration sieht so aus:
<CustomInterfaces> <!-- TestCustomInterface --> <InterfaceDescription Name="TestCustomInterface" Description="Test Interface..."> <Node Id="TestCustomInterface.Field01">[default text]</Node> </InterfaceDescription> </CustomInterfaces>
Das Feld "TestCustomInterface.Field01" kann nun im Word-Editor einer Vorlage eingefügt werden:
ACHTUNG
Es gibt sowohl im Schnittstellenkonverter als auch im Connect-Konverter "Interfaces"-Elemente. Diese dürfen jedoch nicht verwechselt werden.
Ziel
Das Ziel ist es nun, das "myDefinedInterface" (siehe Aufruf) im Connect-Konverter so zu definieren, dass primedocs beim obigen Aufruf eine Umformung vornimmt, sodass diese Connect-Datei entsteht und ausgeführt wird:
<OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Settings /> <Entries> <OneOffixxConnect> <Arguments> <TemplateId>804ea87d-37a4-4307-99d7-23d16032f426</TemplateId> <LanguageLcid>2055</LanguageLcid> </Arguments> <Function name="CustomInterfaceConnector" id="70E94788-CE84-4460-9698-5663878A295B"> <Arguments> <Interface Name="TestCustomInterface"> <Node Id="TestCustomInterface.Field01"> [Inhalt von "hereItIs"-Element: "Test Content from XML file"] </Node> </Interface> </Arguments> </Function> </OneOffixxConnect> </Entries> </OneOffixxConnectBatch>
Konfiguration
ACHTUNG
Für diese Konfiguration muss auf die Gross- und Kleinschreibung geachtet werden! Zum Beispiel muss der Wortanfang von "Id" gross ein, ansonsten funktioniert der Connect-Aufruf nicht.
Die Konfiguration vom Schnittstellen Konverter muss wie folgt aussehen:
<Configuration> <Interfaces> <!-- myTestInterface --> <Interface name="myTestInterface" version="1.0"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Settings /> <Entries> <OneOffixxConnect> <Arguments> <TemplateId>804ea87d-37a4-4307-99d7-23d16032f426</TemplateId> <LanguageLcid>2055</LanguageLcid> </Arguments> <Function name="CustomInterfaceConnector" id="70E94788-CE84-4460-9698-5663878A295B"> <Arguments> <Interface Name="TestCustomInterface"> <Node Id="TestCustomInterface.Field01"> <xsl:value-of select="/root/anElement/hereItIs" /> </Node> </Interface> </Arguments> </Function> </OneOffixxConnect> </Entries> </OneOffixxConnectBatch> </xsl:template> </xsl:stylesheet> </Interface> </Interfaces> </Configuration>
Beim Nachbauen dieses Beispiels muss darauf geachtet werden, dass sich zwischen <TemplateId>
und </TemplateId>
die korrekte Template-Id befindet.
Der Aufruf von oben
primedocs.exe /connector "C:\temp\testfile.xml" /interfaceType "myDefinedInterface"
erzeugt nun ein Dokument, bei dem das Feld TestCustomInterface.Field01
den Inhalt "Test Content from XML file" (stammt aus testfile.xml) hat: