Mathematische Operatoren

Folgende Operatoren stehen zur Verfügung: plus, minus, timespan, times, divide, abs, div, mod, squareroot und round.

Addition

XML-Tag:

plus

Operanden:

mindestens zwei Werte

Synopsis:

<plus>
<Wert 1>
<Wert 2>
<Wert n>
</plus>

Operanden:

numerische Datentypen (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Ergebnis:

Wert

Ergebnistyp:

Datentyp der Operanden bei einheitlichem Datentyp.
DOUBLE bei gemischten, numerischen Datentypen, die in diesem Fall automatisch nach DOUBLE konvertiert werden.

Bezeichnung:

Addiert die im XML-Element angegebenen Werte

Berechnung (PPM3)

Ergebnis

Summe aller Operanden

Fehler

Wenn mind. ein Operand gleich NULL oder mind. ein Operand mit nicht numerischem Datentyp

Berechnung (PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst Summe aller Operanden

Fehler

Nur bei nicht numerischem Datentyp

Beispiel:

-

Subtraktion

XML-Tag:

minus

Operanden:

genau zwei Werte

Synopsis:

<minus>
<Wert 1>
<Wert 2>
</minus>

Operanden:

numerische Datentypen (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Ergebnis:

Wert (Differenz)

Ergebnistyp:

Datentyp der Operanden bei einheitlichem Datentyp.
DOUBLE bei gemischten, numerischen Datentypen, die in diesem Fall automatisch nach DOUBLE konvertiert werden.

Bezeichnung:

Subtrahiert Wert 2 von Wert 1

Berechnung (PPM3)

Ergebnis

Ergebnis der Subtraktion des Operanden 2 von Operand 1

Fehler

Wenn mind. ein Operand gleich NULL oder mind. ein Operand mit nicht numerischem Datentyp

Berechnung (PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst Ergebnis der Subtraktion des Operanden 2 von Operand 1

Fehler

Nur bei nicht numerischem Datentyp

Beispiel:

-

Zeitspanne

XML-Tag:

timespan

Operanden:

genau zwei Werte (Zeitpunkte)

Synopsis:

<timespan>
<time 1>
<time 2>
</timespan>

Operanden:

TIME (TIMESTAMP, DATE)

Ergebnis:

Wert (Zeitspanne)

Ergebnistyp:

TIMESPAN oder
FACTORYTIMESPAN bei Verwendung eines Werkskalenders

Bezeichnung:

Berechnet die Zeitdifferenz zwischen Zeitpunkt 1 und Zeitpunkt 2. Entsteht eine negative Differenz, wird der Wert 0 zurückgegeben.
Wenn Sie zur Berechnung der Zeitdifferenz den Werkskalender verwenden möchten, geben Sie dem optionalen XML-Attribut type den Wert FACTORYCALENDAR.
Vorgabewert: NORMAL

Berechnung (PPM3)

Ergebnis

Zeitspanne zwischen Operand 1 und Operand 2 (Operand 1 minus Operand 2)

Fehler

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

Berechnung (PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst Zeitspanne zwischen Operand 1 und Operand 2 (Operand 1 minus Operand 2)

Fehler

Nur bei unzulässigem Datentyp

Beispiel:

<timespan type="FACTORYCALENDAR"
directoryname="custom/client/factorycal"
attributename="AT_FC_XYZ">
<max>
<attribute name="AT_GOODS_RECEIPT_DATE"
nodetype="OT_FUNC"
objectname="SAP.MM_WE_ANLEG"/>
</max>
<min>
<attribute name="AT_END_TIME"
nodetype="OT_FUNC"
objectname="SAP.MM_BANF_ANLEG"/>
</min>
</timespan>

Bei Verwendung eines Werkskalenders können durch Angabe des optionalen XML-Attributs negfactorytimespan="TRUE" auch nicht positive Zeitspannen berechnet werden.
Standardwert: FALSE

Sie können Zeitspannenberechnungen auch auf der Basis externer Werkskalender durchführen, indem Sie eine Werkskalender XML-Datei angeben. Im optionalen XML-Attribut directoryname spezifizieren Sie das Verzeichnis mit der zu verwendenden Werkskalenderdatei. Im Attribut attributename spezifizieren Sie den Namen des Attributtyps, der den Namen der zu verwendenden Werkskalenderdatei enthält. Der Attributtyp muss am entsprechenden Objekt bzw. der Prozessinstanz gepflegt sein. Die beiden XML-Attribute müssen immer zusammen angegeben werden.

Multiplikation

XML-Tag:

times

Operanden:

mindestens zwei Werte

Synopsis:

<times>
<Wert 1>
<Wert 2>
<Wert n>
</times>

Operanden:

numerische Datentypen (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Ergebnis:

Wert (Produkt)

Ergebnistyp:

Datentyp der Operanden bei einheitlichem Datentyp.
DOUBLE bei gemischten, numerischen Datentypen, die in diesem Fall automatisch nach DOUBLE konvertiert werden.

Bezeichnung:

Multipliziert die im XML-Element angegebenen Werte

Berechnung (PPM3)

Ergebnis

Ergebnis der Multiplikation der Operanden 1 bis n

Fehler

Wenn mind. ein Operand gleich NULL oder mind. ein Operand mit nicht numerischem Datentyp

Berechnung (PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst Ergebnis der Multiplikation aller Operanden

Fehler

Nur bei nicht numerischem Datentyp

Beispiel:

-

Division

XML-Tag:

divide

Operanden:

genau zwei Werte

Synopsis:

<divide>
<Wert 1>
<Wert 2>
</divide>

Operanden:

numerische Datentypen (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Ergebnis:

Wert (Quotient)

Ergebnistyp:

immer DOUBLE

Bezeichnung:

Dividiert Wert 1 durch Wert 2.

Berechnung (PPM3)

Ergebnis

Ergebnis der Division von Operand 1 durch Operand 2

Fehler

Wenn mind. ein Operand gleich NULL oder mind. ein Operand mit nicht numerischem Datentyp oder Operand 2 = 0

Berechnung (PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst Ergebnis der Division von Operand 1 durch Operand 2

Fehler

Wenn mind. ein Operand mit nicht numerischem Datentyp oder Operand 2 = 0

Beispiel:

-

Betrag

XML-Tag:

abs

Operanden:

genau ein Wert

Synopsis:

<abs>
<Wert 1>
</abs>

Operanden:

numerische Datentypen (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Ergebnis:

Wert (Betrag)

Ergebnistyp:

Datentyp des Operanden

Bezeichnung:

Bildet den Betrag eines Wertes.

Berechnung (PPM3)

Ergebnis

Absoluter Betrag des Operanden

Fehler

Wenn Operand gleich NULL oder mit nicht numerischem Datentyp

Berechnung (PPM4)

Ergebnis

NULL, wenn Operand gleich NULL, sonst absoluter Betrag des Operanden

Fehler

Nur bei nicht numerischem Datentyp

Beispiel:

-

Ganzzahlige Division

XML-Tag:

div

Operanden:

genau zwei ganzzahlige Werte

Synopsis:

<div>
<Wert 1>
<Wert 2>
</div>

Operanden:

LONG

Ergebnis:

Ganzzahliger Wert der Division

Ergebnistyp:

LONG

Bezeichnung:

Liefert den ganzzahligen Wert zurück, wie oft Wert 2 in Wert 1 enthalten ist. Divisionsreste werden ignoriert. Bei echten Brüchen wird 0 zurückgegeben.

Berechnung (nur PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst ganzzahliges Ergebnis der Division von Operand 1 durch Operand 2

Fehler

Wenn mind. ein Operand mit unzulässigem Datentyp (nicht LONG) oder Operand 2 = 0

Beispiel:

<div>
<max>
<attribute name="AT_COST"
nodetype="FUNCTION"/>
</max>
<constant>
<dataitem>
5
<datatype name="LONG">
Long
</datatype>
</dataitem>
</constant>
</div>

Modulo

XML-Tag:

mod

Operanden:

genau zwei ganzzahlige Werte

Synopsis:

<mod>
<Wert 1>
<Wert 2>
</mod>

Operanden:

LONG

Ergebnis:

Ganzzahliger Divisionsrest

Ergebnistyp:

LONG

Bezeichnung:

Liefert als Ergebnis den Rest der ganzzahligen Division von Wert 1 durch Wert 2 zurück. Bei echten Brüchen wird der Wert des 1. Operanden zurückgegeben. Wenn value 1= value 2, wird 0 zurückgegeben.

Berechnung (nur PPM4)

Ergebnis

NULL, wenn mind. ein Operand gleich NULL, sonst Rest der ganzzahligen Division von Operand 1 durch Operand 2

Fehler

Wenn mind. ein Operand mit unzulässigem Datentyp (nicht LONG) oder Operand 2 = 0

Beispiel:

<mod>
<filteredattribute name="AT_COST"
nodetype="FUNCTION"/>
<constant>
<dataitem>
3
<datatype name="LONG">Long</datatype>
</dataitem>
</constant>
</mod>

Quadratwurzel

XML-Tag:

squareroot

Operanden:

genau ein Wert

Synopsis:

<squareroot>
<Wert 1>
</squareroot >

Operanden:

numerische Datentypen (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE und benutzerdefinierte Typen, z. B. COST)

Ergebnis:

Quadratwurzel

Ergebnistyp:

Datentyp DOUBLE

Bezeichnung:

Berechnet die Quadratwurzel aus dem angegebenen Wert

Berechnung (nur PPM4)

Ergebnis

NULL, wenn der Operand gleich NULL, sonst Quadratwurzel des numerischen Operanden

Fehler

Wenn Operand mit unzulässigem Datentyp (nicht numerisch) oder Wert des Operanden kleiner 0

Beispiel:

-

Runden

XML-Tag:

round

Operanden:

genau ein Wert vom Typ TIMESPAN

Synopsis:

<round>
<Wert>
</round>

Operanden:

TIMESPAN

Ergebnis:

Gerundeter Zeitspannenwert

Ergebnistyp:

TIMESPAN

XML-Attribute

scale (MINUTE|HOUR|DAY|WEEK|MONTH|YEAR)

roundingkind (ROUND|FLOOR|CEIL) "ROUND"

Bezeichnung:

Liefert den gerundeten Wert von Zeitspannen zurück. Gerundet werden kann nur ein Wert vom Datentyp TIMESPAN. Die Skalierung (scale), in der gerundet werden soll, muss angegeben werden.

Es gibt folgende Rundungsarten:

ROUND (Nachkommastellen < 5 werden abgerundet bzw. wenn >= 5 aufgerundet)
CEIL (unabhängig vom Wert der Nachkommastelle wird zur nächsten Ganzzahl aufgerundet)
FLOOR (unabhängig vom Wert der Nachkommastelle wird zur aktuellen Ganzzahl abgerundet)
Vorgabewert ist ROUND.

Berechnung (nur PPM4)

Ergebnis

Der gerundete Wert in der angegebenen Skalierung

Fehler

Wenn Operand von unzulässigem Datentyp bzw. unzulässige Anzahl von Operanden

Beispiel:

<round scale="MINUTE" roundingkind="CEIL">
<constant>
<dataitem value="4284.0">
1,19
<datatype name="TIMESPAN">
Time span
</datatype>
<scale name="HOUR" factor="3600.0">
Hours
</scale>
</dataitem>
</constant>
</round>

Der Zeitspannenwert 1,19 Stunden wird gemäß Skalierungsangabe in 71,4 Minuten umgerechnet und gemäß angegebener Rundungsart auf 72 Minuten (Rückgabewert) aufgerundet.

Nullwert

XML-Tag:

nullvalue

Operanden:

genau zwei Werte

Synopsis:

<nullvalue>
<Wert 1>
<Wert 2>
</nullvalue>

Operanden:

Beliebiger Datentyp, beide Operanden müssen vom gleichen Datentyp sein.

Ergebnis:

Wert des ersten Operanden, wenn dieser nicht null ist, sonst Wert des zweiten Operanden

Ergebnistyp:

Datentyp des Operanden

Bezeichnung:

Ersetzt den ggf. nicht vorhandenen Wert des ersten Operators (Wert null) durch den Wert des zweiten Operators. Liefert der erste Operand einen Wert, wird dieser zurückgegeben, sonst der Wert des zweiten Operanden.
Wenn beide Operatoren keinen Wert liefern, wird null als Wert zurückgegeben. Der zweite Operator sollte also immer einen Wert liefern.

Berechnung (nur PPM4)

Ergebnis

Wert des ersten Operanden, wenn dieser nicht null ist, sonst Wert des zweiten Operanden.

Fehler

Wenn Operanden unterschiedlichen Datentyp aufweisen

Beispiel:

<nullvalue>

<subtext beginindex="3">

<filteredattribute name="AT_XYZ"Zeilenumbruch
nodetype="PROCESS"/>

</subtext>

<constant>

<dataitem>

ABC

<datatype name="TEXT">Text</datatype>

</dataitem>

</constant>

</nullvalue>

Falls der subtext-Operator keinen Wert liefert, wird die Konstante Zeichenkette ABC zurückgegeben.