Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »


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:

  • No labels