XML Transformator


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:

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:

 

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland