Tilläggsfunktioner för XSLT

När du använder Adapter for File System (XSLT)-aktiviteten kan tilläggsfunktionerna köras av XSLT-funktionen för att utföra åtgärder som inte utförs som standard i XSLT.

Följande tilläggsfunktioner finns tillgängliga. Variablerna i exemplen nedan ska definieras i XSLT-skriptet.

SetFileName(fileName)

Anger utdatafilens namn.

Sökvägen kan vara absolut eller relativ. Vid en relativ sökväg används den konfigurerade baskatalogen som rot.

Parametrar:

  • fileName – Utdatafil.

Exempel:

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

SetPerBatchTriggerFileName(fileName)

Skapar en triggerfil i slutet av bearbetningen för att signalera till målsystemet att rotdokumentet har exporterats helt.

Sökvägen kan vara absolut eller relativ. Vid en relativ sökväg används den konfigurerade baskatalogen som rot.

Parametrar:

  • fileName – Triggerfilens namn.

Exempel:

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

SetPerDocTriggerFileName(fileName)

Skapar en triggerfil för varje dokument som signalerar till målsystemet att dokumentet har exporterats.

Sökvägen kan vara absolut eller relativ. Vid en relativ sökväg används den konfigurerade baskatalogen som rot.

Parametrar:

  • fileName – Triggerfilens namn.

Exempel:

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

CreateDirectory(directoryName)

Skapar alla kataloger och underkataloger för den angivna sökvägen. Om en katalog redan finns rapporteras inte något fel.

Parametrar:

  • directoryName – Sökvägen till katalogerna som ska skapas. Relativ eller absolut.

Exempel:

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

DeleteDirectory(directoryName)

Tar bort den angivna katalogen och alla dess underkataloger. Om katalogen inte finns rapporteras inte något fel. Detta utförs mot slutet. Flera kataloger kan tas bort om funktionen körs mer än en gång.

Parametrar:

  • directoryName – Namnet på katalogen som ska tas bort (sökvägens sista komponent). Relativ eller absolut.

Exempel:

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

GetOrCreateDocID(documentNode, counterName)

Skapar och returnerar ett nummer för varje dokument som anges i documentNode och är unikt för varje process och för varje counterName.

Om funktionen körs flera gånger returneras numret från den första räkningen.

Räknaren börjar med 1. Det maximala värdet är 9 223 372 036 854 775 807.

För processer skapas en räknare, om den inte redan finns, med namnet counterName som sedan används.

För dokument skapas ett fält med namnet counterName och räknarens värde.

Parametrar:

  • documentNode – XPath som hänvisar till referensdokumentet.

  • counterName – Namnet på räknaren enligt reglerna för fältnamn i XBOUND.

Returnerar:

  • Räknarens värde.

Exempel:

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

SaveMedium(mediumNode, fileName)

Exporter ett medium som en fil.

Parametrar:

  • mediumNode – XPath som hänvisar till XML-elementet i mediet som ska exporteras.

  • fileName – Filnamnet (med sökväg, relativ eller absolut) för filen som ska skapas.

Exempel:

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

CreateArchive(type, includedFiles, fileBusy, fileReady)

Skapar ett tar-arkiv efter XSLT-bearbetningen.

Sökvägarna i tar-arkivet är relativa till sökvägen i parametern includedFiles.

Om funktionen körs flera gånger är endast den sista gången giltig.

Parametrar:

  • type – Önskad arkivtyp: tar.

  • includedFiles – Vilka filer som ska ingå i arkivet. Jokertecken (*) kan användas.

  • fileBusy – Namnet på arkivfilen när den skapas.

  • fileReady – Namnet på arkivfilen när den är klar.

Exempel:

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

GetCurrentDateTime(format)

Returnerar ett aktuellt värde för DateTime med angivet format.

Parametrar:

  • format – Format enligt .NET-syntax.

Returnerar:

  • Ett formaterat aktuellt värde för DateTime.

Exempel:

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

ConvertDateTime(givenDateTime, givenFormat, resultFormat)

Konverterar ett värde för DateTime med formatet givenFormat till ett värde för DateTime med formatet resultFormat.

Parametrar:

  • givenDateTime – DateTime som anges.

  • givenFormat – Format för givenDateTime (.NET-syntax).

  • resultFormat – Format som resultatet ska ha (.NET-syntax).

Returnerar:

  • Värdet i det nya formatet.

Exempel:

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

XbCreateField(parentNode, fieldName, fieldValue)

Skapar ett XBOUND-fält i angivna dokument eller fältgrupper med ett specifikt namn och värde.

Parametrar:

  • parentNode – XPath som hänvisar till XML-elementet i ett dokument eller en fältgrupp där fältet ska skapas.

  • fieldName – Namnet på fältet som ska skapas.

  • fieldValue – Värde för fältet som ska skapas.

Exempel:

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

XbUpdateField(parentNode, fieldName, fieldValue)

Uppdaterar ett XBOUND-fält i angivna dokument eller fältgrupper med ett specifikt namn och värde. (Detta görs genom att ta bort och återskapa fält med det angivna namnet. Om det angivna fältvärdet överstiger 255 tecken, delas det upp över två fält.)

Parametrar:

  • parentNode – XPath som hänvisar till XML-elementet i ett dokument eller en fältgrupp där fältet ska uppdateras.

  • fieldName – Namnet på fältet som ska uppdateras.

  • fieldValue – Värde för fältet som ska uppdateras.

Exempel:

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

XbDeleteField(parentNode, fieldName)

Tar bort alla XBOUND-fält i angivna dokument eller fältgrupper med ett specifikt namn.

Parametrar:

  • parentNode – XPath som hänvisar till XML-elementet i ett dokument eller en fältgrupp där fält ska tas bort.

  • fieldName – Namnet på fältet som ska tas bort.

Exempel:

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

XbCreateDocument(parentNode, documentName)

Skapar ett XBOUND-dokument med ett specifikt namn och en null dokumenttyp i det angivna överordnade dokumentet.

Parametrar:

  • parentNode – XPath som hänvisar till XML-elementet i det överordnade dokumentet där det nya dokumentet ska skapas.

  • documentName – Namnet på dokumentet som ska skapas.

Exempel:

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

DBBeginTransaction(connectionString)

Upprättar en anslutning till SQL Server-databasen med den angivna anslutningssträngen och startar en transaktion.

Parametrar:

  • connectionString – Anslutningssträngen för SQL Server-databasen.

Exempel:

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

DBInsert(tableName, columnsCommaSeparated, valueSet)

Infogar en ny post i tabellen med det angivna namnet.

Parametrar:

  • tableName – Namnet på tabellen där posten ska infogas.

  • columnsCommaSeparated – Namnet på tabellens kolumner separerade med komma.

  • valueSet – Värde som ska infogas i de angivna kolumnerna.

Exempel:

<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, delimiter)

Läser data från en kommaavgränsad fil (CSV).

Parametrar:

  • file – Fil som data ska läsas in från.

  • delimiter – Ett eller flera avgränsande tecken.

Exempel:

<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)

Skickar ett loggmeddelande.

Parametrar:

  • message – Meddelandet som ska skickas.

  • category – Meddelandets kategori (valfritt).

  • docGUID – Dokumentets identifierare (valfritt).

Exempel:

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

ThrowException(message, category, docGUID)

Orsakar ett undantag.

Parametrar:

  • message – Meddelande som skapas med undantaget.

  • category – Undantagets kategori (valfritt).

  • docGUID – Dokumentets identifierare (valfritt).

Exempel:

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

XML-buntstruktur

XSLT-filer

XSLT Skripteditorn