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 2 Next »


ACHTUNG

Unstrukturiertes XML kann nur mit dem primedocs Client verwendet werden. Eine serverseitige Verarbeitung über den Document Creation Server ist nicht möglich.

Die Fachapplikation liefert folgendes XML:

<root>
  <company>
    <name>Contoso Ltd.</name>
    <division>Sales</division>
  </company>
  <changedate>2019-01-01</changedate>
</root>

Davon möchten wir den Inhalt von name weiterverwenden und in der Vorlage platzieren können. Dazu muss dieses unstrukturierte XML in einem nächsten Schritt ins Connect-Format transformiert werden. In diesem Beispiel werden wir vollständiges Connect-XML erstellen (nicht Type Data).


1. Connect-Schnittstellendefinition erstellen

<CustomInterfaces>
  <InterfaceDescription Name="ContosoInterface" Description="Interface Contoso">
    <Node Id="ContosoInterface.CompanyName">[CompanyName placeholder]</Node>
    <Node Id="ContosoInterface.CompanyDivision">[CompanyDivision placeholder]</Node>
  </InterfaceDescription>
</CustomInterfaces>

2. XML-Transformation erstellen

Jetzt muss das unstrukturierte XML in eine Form gebracht werden, dass es auf die Schnittstellendefinition aus dem vorherigen Schritt passt. Wir benötigen folgendes Ergebnis aus der Transformation:

<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="ContosoInterface">
            <Node Id="ContosoInterface.CompanyName">Contoso Ltd.</Node>
            <Node Id="ContosoInterface.CompanyDivision">Sales</Node>
          </Interface>
        </Arguments>
      </Function>
    </OneOffixxConnect>
  </Entries>
</OneOffixxConnectBatch>

Dazu wird im XML-Transformator ein neues Interface erstellt. In diesem wird der Connect-Rahmen vorgegeben und mittels XSLT und XPath die relevanten Daten extrahiert und transformiert.

<Configuration>
    <Interfaces>
        // ab hier
        <Interface name="ContosoTransformerInterface" 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="ContosoInterface">
                                            <Node Id="ContosoInterface.CompanyName">
                                                <xsl:value-of select="/root/company/company" />
                                            </Node>
                                            <Node Id="ContosoInterface.CompanyDivision">
                                                <xsl:value-of select="/root/company/division" />
                                            </Node>
                                        </Interface>
                                    </Arguments>
                                </Function>
                            </OneOffixxConnect>
                        </Entries>
                    </OneOffixxConnectBatch>
                </xsl:template>
            </xsl:stylesheet>
        </Interface>   
    </Interfaces>
</Configuration>

  • No labels