XSLT-Erweiterungsfunktionen

Bei der Verwendung der Aktivität Adapter für Dateisystem (XSLT) können Erweiterungsfunktionen aus der XSLT heraus aufgerufen werden, um über die Standard XSLT-Funktionalität hinaus gehende Aufgaben erledigen zu können.

Folgende Erweiterungsfunktionen sind vorhanden. (Variablen in den Beispielen müssen gegebenenfalls im XSLT-Skript definiert werden.)

SetFileName(fileName)

Festlegen des Ausgabedateinamens. Die Angabe kann absolut oder relativ erfolgen. Bei relativer Angabe gilt das konfigurierte Basisverzeichnis als Bezugspunkt.

Aufrufparameter:

  • fileName – Der Ausgabedateiname.

Beispiel:

<xsl:variable name="dummy" select="XBOUNDCustomFunctions:SetFileName (concat('xbBatch\', $BatchID,'\',$xmlFile))"/>

SetPerBatchTriggerFileName(fileName)

Durch Aufruf dieser Funktion kann die Bereitstellung einer Steuerdatei veranlasst werden. Die Steuerdatei wird am Ende der Verarbeitung der Basisdokumente erzeugt um dem Folgesystem anzuzeigen, dass das Basisdokument komplett bereitgestellt wurde.

Die Angabe kann absolut oder relativ erfolgen. Bei relativer Angabe gilt das konfigurierte Basisverzeichnis als Bezugspunkt.

Aufrufparameter:

  • fileName – Der Ausgabedateiname.

Beispiel:

<xsl:variable name="dummy" select="XBOUNDCustomFunctions:SetPerBatchTriggerFileName (concat('xbBatch\', $BatchID,'\',$xmlFile))"/>

SetPerDocTriggerFileName(fileName)

Durch Aufruf dieser Funktion kann die Bereitstellung einer Steuerdatei – pro Dokument – veranlasst werden. Die Steuerdatei wird am Ende der Verarbeitung eines jeden Dokuments erzeugt um dem Folgesystem anzuzeigen, dass das Dokument komplett bereitgestellt wurde.

Die Angabe kann absolut oder relativ erfolgen. Bei relativer Angabe gilt das konfigurierte Basisverzeichnis als Bezugspunkt.

Aufrufparameter:

  • fileName – Der Ausgabedateiname.

Beispiel:

<xsl:variable name="dummy" select="XBOUNDCustomFunctions:SetPerDocTriggerFileName (concat('xbBatch\', $DocID,'\',$xmlFile))"/>

CreateDirectory(directoryName)

Erzeugt alle Verzeichniss und Unterverzeichnisse des gegebenen Pfades. Wenn ein Verzeichnis schon existiert, wird kein Fehler gemeldet.

Aufrufparameter:

  • directoryName – Pfad der zu erzeugenden Verzeichnisse. Relativ oder absolut.

Beispiel:

<xsl:variable name="dummy" select="XBOUNDCustomFunctions:CreateDirectory ('c:\temp\export\')"/>

DeleteDirectory(directoryName)

Löschen des angegebenen Verzeichnisses und aller Unterverzeichnisse. Ist das Verzeichnis nicht vorhanden, kommt kein Fehler. Erfolgt erst am Ende. Durch mehrfachen Aufruf können mehrere Verzeichnisse gelöscht werden.

Aufrufparameter:

  • directoryName – Name des zu löschenden Verzeichnisses (letzter Bestandteil des Pfades). Relativ oder absolut.

Beispiel:

<xsl:variable name="dummy" select="XBOUNDCustomFunctions:DeleteDirectory ('c:\temp\export\')"/>

GetOrCreateDocID(documentNode, counterName)

Erzeugt für das durch documentNode spezifizierte XBOUND-Dokument eine pro Prozess und dem in counterName gegebenden Namen eindeutige Zahl und gibt diese zurück.

Bei mehrfachem Aufruf wird die beim ersten Aufruf ermittelte Zahl zurückgegeben.

Die Zählung beginnt bei 1.

Der Maximalwert beträgt 9,223,372,036,854,775,807.

Am Prozess wird eine Zähler mit dem Namen aus counterName angelegt bzw. verwendet.

An dem Dokument wird ein Feld mit dem Namen aus counterName und Wert des Zählers angelegt.

Aufrufparameter:

  • documentNode – XPath, der auf das Bezugs-Dokument zeigt.

  • counterName – Name des Counters, entsprechend den XBOUND-Feld-Benennungsregeln.

Rückgabe:

  • Die ermittelte Zahl.

Beispiel:

<xsl:variable name="batchID" select="format-number (XBOUNDCustomFunctions:GetOrCreateDocID (/document, 'BatchID'), '000000000')"/>

SaveMedium(mediumNode, fileName)

Export eines Mediums als Datei.

Aufrufparameter:

  • mediumNode – XPath, der auf das XML-Element des zu exportierenden Mediums verweist.

  • fileName – Filename (inclusive Pfad – absolut oder relativ) der zu erzeugenden Datei.

Beispiel:

<xsl:variable name="dummy" select="XBOUNDCustomFunctions:SaveMedium (.,$CompleteFileName)"/>

CreateArchive(type, includedFiles, fileBusy, fileReady)

Diese Methode kann aufgerufen werden, um im Anschluß an die XSLT ein TAR-Archiv erzeugen zu lassen.

Die Pfadangaben im TAR-Archiv sind relativ zu dem im Parameter 'includedFiles' enthaltenen Verzeichnis-Pfades.

Bei mehrfachem Aufruf gilt nur der letzte Aufruf.

Aufrufparameter:

  • type – Angabe des gewünschten Archivierungsverfahrens: 'tar'.

  • includedFiles – Spezifikation der in das Archiv aufzunehmenden Files. Platzhalter (*) erlaubt.

  • fileBusy – Name des Archivfiles während der Erstellung.

  • fileReady – Name des Archivfiles nach der Erstellung.

Beispiel:

<xsl:variable name="dummy3" select="XBOUNDCustomFunctions:CreateArchive ('tar','C:\temp\export','export.bsy', 'export.tar')"/>

GetCurrentDateTime(format)

GetCurrentDateTime(format)–Interpretiert einen gegebenen Datum-/Zeitwert anhand des in 'givenFormat' beschriebenen Formates und konvertiert den resultierenden Wert anhand des in 'resultFormat' gegebenen Formates in die gewünschte Darstellung.

Aufrufparameter:

  • format – Formatangabe nach der .NET-Syntax.

Rückgabe:

  • Den formatierten Datums/Zeit-Wert.

Beispiel:

<xsl:variable name="DateTimeNow" select="XBOUNDCustomFunctions:GetCurrentDateTime ('dd.mm.yyyy hh:MM:ss')"/>

ConvertDateTime(givenDateTime, givenFormat, resultFormat)

Interpretiert einen gegebenen Datum-/Zeitwert anhand des in givenFormat beschriebenen Formates und konvertiert den resultierenden Wert anhand des in resultFormat gegebenen Formates in die gewünschte Darstellung.

Aufrufparameter:

  • givenDateTime – Der gegebene Datum-/Zeitwert

  • givenFormat – Format, nach dem givenDateTime interpretiert werden soll (.NET-Format).

  • resultFormat – Format, nach dem givenDateTime für die Rückgabe formatiert werden soll (.NET-Format)

Rückgabe:

  • Den umformatierten Datums/Zeit-Wert.

Beispiel:

<xsl:variable name="DateTimeNow" select="xboundCustomFunctions:GetCurrentDateTime ('dd.mm.yyyy hh:MM:ss')"/>

XbCreateField(parentNode, fieldName, fieldValue)

Erzeugt ein XBOUND-Feld in dem gegebenen Dokument oder der gegebenen Feldgruppe mit dem gegebenen Namen und dem gegebenen Wert.

  • parentNode – XPath, der auf das XML-Element des Dokuments oder der Feldgruppe zeigt, wo das Feld erzeugt werden soll.

  • fieldName – Name des zu erzeugenden Felds

  • fieldValue – Wert des zu erzeugenden Felds

Beispiel:

<xsl:variable name="dummy2" select="XBOUNDCustomFunctions:XbCreateField (., $xbMyFieldName, $xbMyFieldValue)"/>

XbUpdateField(parentNode, fieldName, fieldValue)

Aktualisiert ein XBOUND-Feld in dem gegebenen Dokument oder der gegebenen Feldgruppe mit dem gegebenen Namen und dem gegebenen Wert (das Aktualisieren ist durch Entfernen und Neuanlegen implementiert, wobei Feldwerte gegebenenfalls aufgeteilt werden, wenn sie länger als 255 Zeichen sind).

  • parentNode – XPath, der auf das XML-Element des Dokuments oder der Feldgruppe zeigt, wo das Feld aktualisiert werden soll.

  • fieldName – Name des zu aktualisierenden Felds.

  • fieldValue – Wert des zu aktualisierenden Felds.

Beispiel:

<xsl:variable name="dummy2" select="XBOUNDCustomFunctions:XbUpdateField (., $xbMyFieldName, $xbMyFieldValue)"/>

XbDeleteField(parentNode, fieldName)

Löscht alle XBOUND-Felder in dem gegebenen Dokument oder der gegebenen Feldgruppe mit dem gegebenen Namen.

  • parentNode – XPath, der auf das XML-Element des Dokuments oder der Feldgruppe zeigt, wo das Feld gelöscht werden soll.

  • fieldName – Name des zu löschenden Felds

Beispiel:

<xsl:variable name="dummy2" select="XBOUNDCustomFunctions:XbDeleteField (., $xbMyFieldName, $xbMyFieldValue)"/>

XbCreateDocument(parentNode, documentName)

Erzeugt ein XBOUND-Dokument mit dem gegebenen Namen und null-Dokumenttyp in dem gegebenen Dokument.

  • parentNode – XPath, der auf das XML-Element des Dokuments zeigt, in dem das Dokument erzeugt werden soll.

  • documentName – Name des zu erzeugenden Dokuments.

Beispiel:

<xsl:variable name="dummy3" select="XBOUNDCustomFunctions:XbCreateDocument (., $xbMyDocumentName)"/>

DBBeginTransaction(connectionString)

Öffnet eine Verbindung zur SQL-Server-Datenbank mit der gegebenen Verbindungszeichenfolge und beginnt eine Transaktion.

  • connectionString – Verbindungszeichenfolge für die SQL-Server-Datenbank, zu der verbunden werden soll.

Beispiel:

<xsl:variable name="DB-Transaction-Open" select="XBOUNDCustomFunctions:DBBeginTransaction ('Server=localhost; Database=Northwind; Trusted_Connection=True;')"/>

DBInsert(connectionString, columnsCommaSeparated, valueSet)

Fügt einen neuen Datensatz in die Tabelle mit dem gebebenen Namen ein.

  • tableName – Name der Tabelle, in die der Datensatz eingefügt werden soll.

  • columnsCommaSeparated – Namen der Spalten der Tabelle, durch Komma getrennt.

  • valueSet – Werte, die in die gegebenen Spalten eingefügt werden sollen.

Beispiel:

<xsl:variable name="table" select="EC:node-set($TABLE)"/> <xsl:variable name="DB-Insert" select="XBOUNDCustomFunctions:DBInsert ('TEST','A,B', $table/row[1]/col/text())"/>

ReadCSVFromFile(file, delimiters)

Liest Daten aus einer CSV-Datei.

  • file – Datei, aus der die Daten gelesen werden sollen.

  • delimiters – Ein oder mehrere Begrenzerzeichen.

Beispiel:

<xsl:for-each select="XBOUNDCustomFunctions:ReadCSVFromFile
('D:\Testdaten\XSLT\Personen.csv',',')/record">
<xsl:value-of select="field[3]"/>::
<xsl:value-of select="field[2]"/>::
<xsl:value-of select="field[1]"/>
<xsl:text> </xsl:text> </xsl:for-each>

Send[Warning|Info|Debug]LogMessage(message, category, docGUID)

Sendet eine Logmeldung.

  • message – Meldung, die gesendet werden soll.

  • category – Kategorie der Meldung (optional).

  • docGUID – Identifier des Dokuments, um das es geht (optional).

Beispiel:

<xsl:variable name="dummy"
select="xboundCustomFunctions:SendInfoLogMessage
(concat('SendInfoLogMessage', ./@txt))"/>

ThrowException(message, category, docGUID)

ThrowException(message, category, docGUID) – Wirft eine Ausnahme.

  • message – Meldung, die geworfen werden soll.

  • category – Kategorie der Meldung (optional).

  • docGUID – GUID des Dokuments, um das es geht (optional).

Beispiel:

<xsl:variable name="dummy"
select="xboundCustomFunctions:ThrowException
(concat('Export Abort ', ./@txt))"/>

XML-Stapel-Struktur

XSLT-Datei

Der XSLT Script Editor