Operatoren

In Berechnungsvorschriften für Attributtypen bzw. Berechnungsfunktionen werden die einzelnen Operandentypen (Wertemengen, Werte, Konstanten) mittels Operatoren untereinander verknüpft. Wenn beim Verknüpfen von Attributtypen alle Operanden denselben Datentyp haben, werden die Ergebnisse der Attributtypberechnungen in diesem Datentyp zurückgegeben.

Sie können für jeden Operator über das XML-Attribut mode das Verhalten der Ausnahmebehandlung angeben (z. B. <addtimespan mode="PPM4">). Mögliche Werte sind PPM3 für das Verhalten bis einschließlich PPM 3.2.1 und PPM4 für das fehlertolerantere Verhalten ab PPM 4.0.
Aus Gründen der Abwärtskompatibilität ist der Vorgabewert PPM3.
In Berechnungsvorschriften, die Sie mit PPM Customizing Toolkit erstellen, wird den verwendeten Operatoren standardmäßig der Wert PPM4 zugewiesen.

Das Berechnungs- bzw. Fehlerverhalten der beiden verschiedenen Modi ist ab Kapitel Mathematische Operatoren für jeden Operator beschrieben.

Definieren Sie in Ihren Attributtypberechnungen jeweils einen Standardrückgabewert defaultvalue, der dem zu berechnenden Attributtyp zugewiesen wird, wenn die Attributtypberechnung fehlschlägt.

Warnung

Kombinieren Sie in einer Berechnungsvorschrift keine numerischen Werte mit nicht-numerischen Werten (z. B. TEXT mit DOUBLE), da solche Berechnungsvorschriften zum Abbruch der Berechnung führen.

Numerische Datentypen sind untereinander frei kombinierbar (z. B. mit dem Operator set). Die Bildung von Werten erfolgt immer in der Basiseinheit des Attributtyps. Bei Attributtypberechnungen mit gemischten numerischen Datentypen (z. B. DOUBLE, TIMESPAN, FACTORYTIMESPAN) werden alle Werte ohne Einheiten verwendet und das Ergebnis wird im Datentyp DOUBLE gespeichert. Diesen Wert können Sie anschließend in einem PPM-Zielattributtyp eines anderen Datentyps in der jeweiligen Basiseinheit speichern.

Die Angabe einer Verknüpfung wird in Form der Umgekehrten Polnischen Notation (UPN) spezifiziert, das heißt, zuerst wird die Verknüpfungsart (Operator) und anschließend werden die Operanden angegeben. In XML-Notation sieht dies folgendermaßen aus:

<operator 1>

<operand m>

...

</operand m>

<operand m+1>

...

</operand m+1>

<operator 2>

<operand n>

...

</operand n>

<operand n+1>

...

</operand n+1>

</operator 2>

</operator 1>

Das XML-Element operator liefert den berechneten Zahlenwert (numerisches Ergebnis der durch den Operator verknüpften Operanden). Die Einheit des Ergebnisses wird durch den Datentyp des Attributtyps bestimmt, dem der Ergebniswert zugewiesen wird. Operatoren können selbst Teil eines übergeordneten Operators sein.

Beispiel

Berechnung des Umfanges eines Kreises mit einem Radius von 6
(Kreisumfang = 2 * p * Radius):

<times>

<constant>

<dataitem value="2">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

<constant>

<dataitem value="3.1415">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

<constant>

<dataitem value="6">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

</times>

Eine alternative Möglichkeit, die zum selben Ergebnis führt, ist, aus den Operanden eine Menge zu bilden und alle Elemente der Menge miteinander zu multiplizieren:

<product>

<set>

<constant>

<dataitem value="2">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

<constant>

<dataitem value="3.1415">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

<constant>

<dataitem value="6">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

</set>

<product>

Zur Berechnung von Attributtypwerten stehen die in den folgenden Kapiteln beschriebenen Operatoren zur Verfügung.