Wertemenge erzeugende Operatoren

Folgende Operatoren stehen zur Verfügung: set, union, intersect, removeduplicates.

Mengenbildung

XML-Tag:

Set

Operanden:

mindestens ein Wert

Synopsis:

<set>
<Wert 1>

...
<Wert n>
</set>

Operanden:

Alle Datentypen, jedoch ist bei nicht numerischen Datentypen ein einheitlicher Datentyp innerhalb der Operandenliste notwendig. Unterschiedliche numerische Datentypen werden automatisch in den Datentyp DOUBLE konvertiert.

Ergebnis:

Wertemenge

Ergebnistyp:

DOUBLE bei gemischten, numerischen Operanden, Datentyp des ersten Operanden bei nicht numerischen Datentypen

Bezeichnung:

Bildet aus den angegebenen Werten eine Wertemenge.

Berechnung (PPM3/PPM4)

Ergebnis

Leermenge, wenn alle Operanden NULL liefern, d. h. die Ergebnismenge enthält niemals NULL

Fehler

Wenn mind. ein Operand mit unzulässigem Datentyp (Wertemenge oder ungleich Datentyp des ersten Operanden)

Beispiel:

<set>
<constant>
<dataitem value="2">
<datatype name="DOUBLE"/>
</dataitem>
</constant>
<Wert 1>
<Wert 2>
<Wert n>
</set>

Vereinigungsmenge

XML-Tag:

Union

Operanden:

mindestens zwei Wertemengen (<attribute ... /> oder <set>...</set> oder <union>...</union> oder <intersect>...</intersect>)

Synopsis:

<union>
<Wertemenge 1>
<Wertemenge 2>
...
<Wertemenge n>
</union>

Operanden:

alle Datentypen, jedoch keine Mischung von numerischen und nicht numerischen Datentypen

Ergebnis:

Wertemenge

Ergebnistyp:

DOUBLE bei gemischten, numerischen Operanden, Datentyp des ersten Operanden bei nicht numerischen Datentypen

Bezeichnung:

Bildet die Vereinigungsmenge aus den angegebenen Wertemengen.

Berechnung (PPM3)

Ergebnis

Leermenge, wenn alle Operanden Leermengen sind

Fehler

Wenn mind. ein Operand mit unzulässigem Datentyp oder mind. ein Operand gleich NULL

Berechnung (PPM4)

Ergebnis

Leermenge, wenn alle Operanden Leermengen sind. NULL, wenn mind. ein Operand gleich NULL ist.

Fehler

Wenn mind. ein Operand von unzulässigem Datentyp

Beispiel:

<union>
<attribute name="AT_START_TIME" nodetype="PROCESS"/>
<attribute name="AT_END_TIME" nodetype="PROCESS"/>
<attribute name="AT_START_TIME" nodetype="OT_FUNC"/>
<attribute name="AT_END_TIME" nodetype="OT_FUNC"/>
</union>

Schnittmenge

XML-Tag:

Intersect

Operanden:

mindestens zwei Wertemengen

Synopsis:

<intersect>
<Wertemenge 1>
<Wertemenge 2>
...
<Wertemenge n>
</intersect>

Operanden:

alle Datentypen, jedoch keine Mischung von numerischen und nicht numerischen Datentypen

Ergebnis:

Wertemenge, die alle Elemente enthält, die in allen Ausgangsmengen enthalten sind

Ergebnistyp:

DOUBLE bei gemischten, numerischen Operanden,
Datentyp des ersten Operanden bei nicht gemischten Datentypen

Bezeichnung:

Bildet die Schnittmenge der angegebenen Wertemengen.

Berechnung (PPM3)

Ergebnis

Leermenge, wenn ein Operand Leermenge ist.

Fehler

Wenn mind. ein Operand mit unzulässigem Datentyp oder mind. ein Operand gleich NULL

Berechnung (PPM4)

Ergebnis

Leermenge, wenn ein Operand Leermenge ist. NULL, wenn mind. ein Operand gleich Null ist.

Fehler

Wenn mind. ein Operand von unzulässigem Datentyp

Beispiel:

-

Duplikatentferner

XML-Tag:

Removeduplicates

Operanden:

genau eine Wertemenge

Synopsis:

<removeduplicates>
<Wertemenge>
</removeduplicates>

Operanden:

beliebige Datentypen

Ergebnis:

Wertemenge

Ergebnistyp:

Datentyp des Operanden

Bezeichnung:

Entfernt Elemente mit identischen Werten aus einer Wertemenge.

Berechnung (nur PPM4)

Ergebnis

Wertemenge, die alle Elemente enthält, die in der Ausgangsmenge enthalten waren, jedes aber nur einmal. Leermenge, wenn Operand gleich Leermenge ist.

Fehler

Wenn mind. ein Element der Wertemenge einen unzulässigen Datentyp hat

Beispiel:

Zählen der am Prozess beteiligten Werke:

<card>
<removeduplicates>
<attribute name="AT_WERK" nodetype"OT_FUNC" />
</removeduplicates>
</card>