Bedingte Attributtypberechnung

Die bedingte Berechnung von Attributtypen ermöglicht die Steuerung der Attributtypberechnung. Die Steuerung basiert dabei auf der Existenzprüfung von Attributtypen oder dem Ergebnis von Vergleichen. Die Existenzprüfung unterscheidet die beiden Fälle Attributtyp vorhanden (XML-Element exists) und Attributtyp gepflegt (XML-Element filled).

Im folgenden Beispiel liefert das Berechnungselement <if> den Wert Null, wenn es in der Prozessinstanz kein Funktionsattribut AT_B gibt. Die vom XML-Element attribute erzeugte Ergebnismenge ist in diesem Fall leer.
Existiert mindestens ein Attribut AT_B an einer beliebigen Funktion der Prozessinstanz, wird der Wert des XML-Elements filteredattribute weitergegeben.

<if>

<exists>

<attribute name="AT_B" nodetype="OT_FUNC"/>

</exists>

<then>

<filteredattribute name="AT_C" nodetype="OT_FUNC"

filter="EARLY"/>

</then>

</if>

Durch Verknüpfen von Bedingungen mittels logischer Operatoren lassen sich auch komplexere Bedingungen formulieren. Das gezeigte Beispiel soll so erweitert werden, dass auch auf einen vorhandenen Attributwert getestet wird.

<if>

<and>

<exists>

<attribute name="AT_B" nodetype="OT_FUNC"/>

</exists>

<filled>

<attribute name="AT_B" nodetype="OT_FUNC"/>

</filled>

</and>

<then>

<filteredattribute name="AT_C" nodetype="OT_FUNC"

filter="EARLY"/>

</then>

</if>

Da ein existierender Attributwert die Existenz des entsprechenden Attributtyps voraussetzt, kann die Prüfung auf Existenz entfallen und die Bedingung optimiert werden.

Im folgenden Beispiel liefert das Berechnungselement <if> den Wert NULL, wenn an keiner der vorkommenden Funktionen ein Attributtyp mit dem Bezeichner AT_G gepflegt ist.

<if>

<exists>

<filteredattribute name="AT_G" nodetype="OT_FUNC"

filter="LATEST"/>

</exists>

</if>