TransformerAction

XSL Transformationen mit der TransformerAction

Kurzbeschreibung

Die TransformerAction führt XSL Transformationen auf Elemente des Nachrichtenkontextes aus und speichert das Resultat als Kontext-Element. Dadurch ist die Konvertierung von beliebigen XML Dokumente in nahezu beliebige andere Textdokumente möglich. Die Konfiguration dieser Action erfordert grundsätzliche Kenntnisse vonXSL, da entsprechende XSL Transformationsskripte nicht mit der B2B ausgeliefert werden.

Das zu verwendende XSL Skript wird in der B2B als Content hinterlegt. Alternativ kann das Script auch als Extension konfiguriert werden, dazuspäter mehr.Der verwendete Content wird über die gesetzten Action-Eigenschaften, den Nachrichtenkontext und das Nachrichtenformat identifiziert. Dabei sind die Identifikatoren des Content wie folgt belegt:

  • Provider
    wird aus Action Eigenschaft B3P_CONTENT_PROVIDER eingelesen.
  • Version
    wird falls existent aus dem Attribut B3P_CONTENT_VERSION des Nachrichtenkontexts und sonst aus der Action Eigenschaft B3P_CONTENT_VERSION eingelesen. Der Standardwert ist leer.
  • Typ
    wird aus der Action Eigenschaft B3P_CONTENT_TYPE eingelesen.Der Standardwert ist “application/xslt+xml”.
  • Format
    wird falls existent aus dem Attribut B3P_CONTENT_FORMAT_TYPE des Nachrichtenkontexts und sonst aus der Action Eigenschaft B3P_CONTENT_FORMAT_TYPE eingelesen. Falls beide Werte leer sind, wird die aus der Nachricht identifizierte Formatversion genutzt. Der Standardwert ist leer.
  • Format Version
    wird falls existent aus dem Attribut B3P_CONTENT_FORMAT_VERSION des Nachrichtenkontexts und sonst aus der Action Eigenschaft B3P_CONTENT_FORMAT_VERSION eingelesen. Falls beide Werte leer sind, wird die aus der Nachricht identifizierte Formatversion genutzt. Der Standardwert ist leer.
  • Zielformat
    wird aus Action Eigenschaft B3P_CONTENT_DESTINATION_FORMAT eingelesen.

Zur XSL-Transformation wird standardmäßig die in der Java VM integrierte Funktionalität genutzt.

Einrichtung

Die TransformerAction wird als Java-Action eingerichtet (sieheActions Anlegen). Dabei müssen die folgenden Einstellungen der Action vorgenommen werden.

  • Klasse
    org.b2bbp.runtime.actions.managed.TransformerAction
  • Typ
    JAVA

Alle weiteren Einstellungen der Action, die nach Erstellen der Action gesetzt werden, finden sich in den nachstehenden Tabellen.

ActionEigenschaften (Erforderlich)

Hier genannte Eigenschaften müssen konfiguriert werden. Sonst wird bei der Ausführung der Action ein Fehler generiert.

Name der Eigenschaft erlaubte Werte Beschreibung
B3P_CONTENT_DESTINATION_FORMAT Zeichenkette der Länge 1..100 Diese Einstellung gibt das Zielformat an, das in der Adminstrationsansicht unter dem Reiter ‘Content’ zur Identifikation des zu verwendenden Skriptes genutzt wird.Velocity Template-Ausdrücke sind erlaubt.

ActionEigenschaften (Optional)

Hier aufgeführte Eigenschaften werden automatisch beim ersten Ausführen der Action mit den Standardeinstellungen initialisiert, falls sie nicht vom Benutzer gesetzt wurden.

Name der Eigenschaft erlaubte Werte Beschreibung
B3P_ADD_MESSAGE_CONTEXT true, false (default) Diese Eigenschaft kontrolliert, ob (falls Wert true ist) der Nachrichtenkontext innerhalb des XSLT Skripts als Parameter 'CONTEXT' bekannt gemacht werden soll.
B3P_PARAMETERS Durch Semikolon getrennte Liste von Schlüssel-Wert-Paaren der Länge 1..1000.
Beispiel: "schluessel1=wert1;schluessel2=wert2".
Die reservierten Zeichen ';', '=' und '\' müssen mit einem zusätzlichen Backslash ('\') als Präfix versehen werden, falls sie in einem Schlüsselnamen oder einem Wert vorkommen.
Diese Eigenschaft enthält Parameternamen und Werte für Parameter des aufgerufenen XSL Skriptes.Velocity Template-Ausdrücke sind erlaubt. Siehe auch die nächste Eigenschaft "PAR_<name>"
PAR_<name> z.B. PAR_ID Beliebiger Wert oder dynamischer Ausdruck Eigenschaften, die mit dem Präfix PAR_ beginnen, können als Parameter im XSL Skript verwendet werden (ohne Präfix). Z.B. mit der Eigenschaft "PAR_ID=12345" kann "ID" als Parameter in XSL verwendet werden und wird als Wert "12345" haben.
B3P_RESULT Zeichenkette der Länge 1..1000 (default: 'CURRENT_PAYLOAD') Die Eigenschaft bestimmt unter welchem Attribut das Ergebnis der Transformation gespeichert wird. Die Standardeinstellung überschreibt den Nachrichteninhalt.
B3P_SOURCE Durch Semikolon getrennte Liste von Attributsnamen der Länge 1..1000 (default: 'CURRENT_PAYLOAD').
Beispiel: "CURRENT_PAYLOAD;B3P_BASE_MESSAGE".
Die reservierten Zeichen ';' und '\' müssen mit einem zusätzlichen Backslash ('\') als Präfix versehen werden, falls sie in einem Attributsnamen vorkommen.
Die Eigenschaft bestimmt unter welchem Attribut der zu transformierende Inhalt gespeichert ist. Die Standardeinstellung transformiert den aktuellen Nachrichteninhalt.
B3P_TRANSFORM_ALL true, false (default) Falls der Wert false ist, wird nur der erste valide Inhalt aus der unter B3P_SOURCE angegebenen Liste transformiert. Wenn der Wert true ist, werden alle Inhalte transformiert und miteinander verkettet.
B3P_CONTENT_TYPE Zeichenkette der Länge 0..100 (default: "application/xslt+xml"). Diese Einstellung gibt den Typ an, der in der Adminstrationsansicht unter dem Reiter 'Content' zur Identifikation des zu verwendenden Skriptes genutzt wird. Falls im Nachrichtenkontext vorhanden, wird diese Eigenschaft aus dem Nachrichtenkontext eingelesen.
B3P_CONTENT_PROVIDER Zeichenkette der Länge 0..100 (default: ""). Diese Einstellung gibt den Provider-Namen an, der in der Adminstrationsansicht unter dem Reiter 'Content' zur Identifikation des zu verwendenden Skriptes genutzt wird.
B3P_CONTENT_VERSION Zeichenkette der Länge 0..100 (default: ""). Diese Einstellung gibt die Version an, die in der Adminstrationsansicht unter dem Reiter 'Content' zur Identifikation des zu verwendenden Skriptes genutzt wird. Falls im Nachrichtenkontext vorhanden, wird diese Eigenschaft aus dem Nachrichtenkontext eingelesen.
B3P_CONTENT_FORMAT_VERSION Zeichenkette der Länge 0..100 (default: "") Diese Einstellung gibt die Formatversion an, die in der Adminstrationsansicht unter dem Reiter 'Content' zur Identifikation des zu verwendenden Skriptes genutzt wird. Falls leer, wird stattdessen der Wert aus dem Nachrichtenformat genutzt. Falls die Eigenschaft im Nachrichtenkontext enthalten ist, überschreibt der Nachrichtenkontext die Service-Eigenschaft.
B3P_CONTENT_FORMAT_TYPE Zeichenkette der Länge 0..100 (default: "") Diese Einstellung gibt das Format an, das in der Adminstrationsansicht unter dem Reiter 'Content' zur Identifikation des zu verwendenden Skriptes genutzt wird. Falls leer, wird stattdessen der Wert aus dem Nachrichtenformat genutzt. Falls die Eigenschaft im Nachrichtenkontext enthalten ist, überschreibt der Nachrichtenkontext die Service-Eigenschaft.

XSL Skripte aus Extensions laden

Statt aus dem Content können die XSL Scripte auch aus Extensions geladen werden. Hierfür muss die Property B3P_USE_EXTENSION = false(default) / true gesetzt werden. Eine Extension muss die folgende Form haben: Version=<leer>, Type=<leer>, Provider = <XSL Dateiname>. Damit das Script aus der richtigen Extension genutzt wird, ist folgende Property zu konfigurieren: B3P_CONTENT_FORMAT_TYPE = <XSL Dateiname>.
Ein XSL Datei kann Abhängigkeiten auf andere XSL Dateien haben (siehe im Scriptxsl:import). Diese (ggf transitiven)Abhängigkeiten werden automatisch aufgelöst, wennalle Scripte als Extensions konfiguriert sind.

Service Eigenschaften (Experte)

Hier genannte Eigenschaften sollten nur in Ausnahmefällen oder durch Expertennutzer gesetzt werden, die mit dem Quellcode der TransformerAction vertraut sind.

Name der Eigenschaft erlaubte Werte Beschreibung
B3P_INPUT_FACTORY Zeichenkette der Länge 1..1000 Hier wird kann die ID angegeben werden, unter der eine Implementierung der abstrakten Klasse javax.xml.stream.XMLInputFactory bekannt gemacht worden ist. In der Regel handelt es sich bei dieser ID um den vollqualifizierten Klassennamen der InputFactory.
B3P_OUTPUT_FACTORY Zeichenkette der Länge 1..1000 Hier wird kann die ID angegeben werden, unter der eine Implementierung der abstrakten Klasse javax.xml.stream.XMLOutputFactory bekannt gemacht worden ist. In der Regel handelt es sich bei dieser ID um den vollqualifizierten Klassennamen der OutputFactory.
B3P_FAIL_ON_ERROR true (default), false Die Eigenschaft gibt an, ob ein Fehler oder Problem in der Ausführung der Transformeraction (z. B. keine zu transformierenden Daten gefunden) zu einem Abbruch der Kanalverarbeitung führen soll. Ist der Wert true, so müssen Daten erfolgreich transformiert werden oder die Verarbeitung schlägt fehl.
View Me   Edit Me