X4 Produktdokumentation

Status mit ConditionState dynamisch setzen

Mit einem XSL-Mapping können Sie abhängig von verarbeiteten Daten zusätzlich Ausführ-Statuswerte als Processing Instruction erzeugen, die innerhalb des Technical Processes von einem Condition-Baustein ausgewertet werden. Je nach Status können Sie so entsprechend definierte Verzweigungen ausführen lassen.

ConditionState_v7.3.png
  1. Leeres XSL-Mapping in einem Technical Process vor einem Condition-Baustein positionieren.

  2. Processing Instruction(s) im XSL-Mapping nach folgendem Muster definieren:

    <xsl:processing-instruction name="ConditionState">value</xsl:processing-instruction>
    
  3. value durch einen Wert z.B. aus dem verarbeiteten XML-Dokument ersetzen.
    Beispiel: <xsl:value-of select="data"/>

Hinweis

Zulässige Statuswerte ganze Zahlen (Integer) sowie negative Zahlen (z. B. -1) für einen Fehlerstatus; siehe Statuswerte für Prozesse und Prozess-Schritte

Nicht zulässig sind folgende Status-Nummern, da diese systemintern reserviert sind:

  • -999 (Fehlerstatus der Engine)

  • -998 (Prozess wurde aus Lizenzgründen nicht ausgeführt)

  • 999 (Status-ID für noch nicht ausgeführte Prozessbausteine)

  • 998 (wird vom Savepoint-Mechanismus verwendet und bewirkt die sofortige Beendigung des gesamten Prozesses)

  • 997 (bewirkt die sofortige Beendigung des gesamten Technical Processes)

Empfehlung: Verwenden Sie für benutzerdefinierte Statuswerte Zahlen größer als 1000, um mögliche Überschneidungen mit anderen Statuswerten zu vermeiden.

  1. Sicherstellen, dass das XSL-Mapping ein Wurzel-Element generiert, damit das XSL-Mapping ausgeführt und ein gültiges XML-Dokument erzeugt werden kann.
    Das XSL-Mapping gibt nun Processing Instructions nach dem Muster <?ConditionState value ?> aus.

  2. Im nachfolgenden Condition-Baustein für jede Verzweigung einen Status definieren, siehe (7.5.0_beta-de) Bedingungen erstellen und verwenden.

  3. Wenn Sie im weiteren Verlauf des Prozesses erneut ConditionStates erzeugen: die vorherigen Processing Instructions zunächst aus dem Input-XML-Dokument z.B. per <xsl:copy-of> entfernen, um unerwartetes Verhalten bei der Prozessausführung zu vermeiden.

Problemlösung: Das XSL-Mapping lässt sich nicht ausführen?

Möglicherweise ist der verarbeitete Wert einer der unzulässigen Statuswerte -999, -998999, 998, 997 oder ist eine Zeichenkette. Oder das vom XSL-Mapping erzeugte XML-Dokument enthält kein Wurzel-Element.

  • Verwenden Sie nur zulässige Statuswerte (siehe oben).

  • Fügen Sie z. B. ein leeres Element <root/> nach den ConditionState-Definitionen ins XSL-Mapping ein.