Dynamische Parameter verwenden
Wie kann ich dynamische Parameter verwenden?
Innerhalb eines Technical Processes können Sie in Abhängigkeit von verarbeiteten Daten mit sogenannten dynamischen Parametern Prozessbausteine ansteuern und ggf. bereits gesetzte Parameter zur Prozesslaufzeit überschreiben.
Dynamische Parameter werden in XSL-Mappings als Processing Instruction erzeugt und vom darauf folgenden Prozessbaustein (beispielsweise einem Adapter) verarbeitet.
Hierbei haben Sie mehrere Möglichkeiten:
- Parameter via XSL-Mapping setzen: Hier können Sie ein einzelnes XSL-Daten-Mapping einsetzen, das XML-Daten transformiert und gleichzeitig dynamisch Processing Instruction-Definitionen enthält.
- Dynamisch parametrieren ohne Datentransformation: Sie können auch ein separates XSL-Mapping erstellen, das nur die Processing Instructions generiert.
- Dynamisch parametrieren mit Processing Instructions und Dynamic Parameter: Sie können auch ein separates XSL-Mapping erstellen, das die Processing Instruction-Definitionen mit dynamischen Parametern enthält.
Hinweis
Beachten Sie folgende Priorisierung bei der Nutzung von Component-Parameter und dynamischen Parametern:
- Component-Parameter überschreiben die Konfiguration von Prozessbausteinen im Repository (beispielsweise Funktions-Adapter) während der Prozesslaufzeit.
Dynamische Parameter überschreiben gesetzte globale, Projekt- und System-Parameter sowie die Konfiguration von Prozessbausteinen im Repository (beispielsweise Funktions-Adapter) zur Prozesslaufzeit.
Parameter dynamisch via XSL-Mapping setzen
Positionieren Sie ein XSL-Mapping im Technical Process vor dem Adapter oder der Datenbank-Verbindung.
Definieren Sie die Processing Instruction im XSL-Mapping nach folgendem Muster:
<xsl:processing-instruction name="DynamicParameter">ParameterName="ParameterValue"</xsl:processing-instruction>
Ersetzen Sie
ParameterName
durch den gewünschten Parameternamen.Ersetzen Sie
ParameterValue
durch den gewünschten Wert, meist in Form eines XSL-Befehls.Wenn das XSL-Mapping ausschließlich dynamische Parameter erzeugen soll: Lesen Sie zusätzlich mit
<xsl:processing-instruction name="NoResult"/>
fest, dass das XSL-Mapping kein Ergebnis-Dokument erzeugt.
Hinweis
Das XSL-Mapping muss in jedem Fall ein Wurzel-Element generieren, damit das XSL-Mapping ausgeführt werden kann.
Dynamisch parametrieren ohne Datentransformation
Wenn ein Input-Dokument direkt an einen dynamisch parametrierten Adapter übergeben werden soll, ist es erforderlich, eine Gabelung (mithilfe des Fork
-Bausteins) in das Diagramm des Technical Processes einzufügen:
- Setzen Sie ein XSL-Mapping in einen Ausführzweig.
- Setzen Sie den zu übergebenden Prozessbaustein in einen zweiten Ausführzweig.
- Setzen Sie den Adapter direkt hinter den
Join
-Baustein.
Beispiel
Ein aus einem XML-Dokument ausgelesener Dateiname soll als dynamischer Parameter an einen Filesystem Transfer Adapter übergeben werden:
Im Beispiel besteht das XSL-Mapping aus folgendem Quelltext:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/" version="1.1">
<xsl:output method="xml" media-type="text/xml"/>
<xsl:template match="/">
<xsl:processing-instruction name="DynamicParameter">path="
<xsl:value-of select="data"/>"
</xsl:processing-instruction>
<xsl:processing-instruction name="NoResult"/>
<root/>
</xsl:template>
</xsl:stylesheet>
Dynamische Parameter mit DynamicParameter
Mit XSL-Mappings können Sie die Konfiguration von Adaptern und Datenbank-Verbindungen zur Laufzeit beeinflussen. Innerhalb des XSL-Mappings wird eine Logik implementiert, die in Abhängigkeit von den verarbeiteten Daten benutzerdefinierte Parameterwerte ausgibt. Diese benutzerdefinierten Parameterwerte können von einem nachfolgenden Adapter-, Transfer-Adapter- oder Datenbank-Baustein verarbeitet werden und überschreiben bereits gesetzte Werte.
Parameterwerte erzeugen
Um dynamische Werte innerhalb von Technical Processes zu setzen, können Sie mithilfe von XSL-Mappings Processing Instructions erzeugen, die an den nachfolgenden Prozess-Schritt übergeben werden und entsprechend interpretiert werden können.
<xsl:processing-instruction name="DynamicParameter">
parameterName="parameterValue"</xsl:processing-instruction>
Die Ausgabe des XSL-Mappings:
<?DynamicParameter parameterName="parameterValue" ?>
Parameter und Parameterwerte
Im XSL-Mapping können Sie beliebig viele unterschiedliche dynamische Parameter mit jeweils einem zugehörigen Wert definieren:
parameterName
: Zu überschreibender ParameternameparameterValue
: Zu überschreibender Parameterwert; immer innerhalb von Anführungszeichen
Hinweis
Beachten Sie, dass das XSL-Mapping ein Wurzel-Element generieren muss, damit das XSL-Mapping ausgeführt und ein gültiges XML-Dokument erzeugt werden kann.
Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output encoding="UTF-8" method="xml" indent="yes" version="1.0"/>
<xsl:template match="/">
<xsl:processing-instruction
name="DynamicParameter">key="i"</xsl:processing-instruction>
<root/>
</xsl:template>
</xsl:stylesheet>