Zeitoperatoren

Folgende Operatoren stehen zur Verfügung: createday, createtimeofday, createtimestamp, addtimespan, addfactorytimespan und weekday.

Format-Umwandlung (Datum)

XML-Tag:

createday

Operanden:

genau ein Wert

Synopsis:

<createday>
<Wert>
</createday>

Operanden:

TIME (TIMESTAMP, DATE)

Ergebnis:

Wert (Datum im Format dd.MM.yyyy)

Ergebnistyp:

DAY

Beschreibung:

Extrahiert ein Datum aus einem PPM-Zeitstempel

Berechnung (PPM3)

Ergebnis

Datum, das vom Operanden geliefert wird

Fehler

Wenn Operand von unzulässigem Datentyp oder gleich NULL

Berechnung (PPM4)

Ergebnis

Datum, das vom Operand NULL geliefert wird, wenn der Operand gleich NULL ist

Fehler

Wenn Operand von unzulässigem Datentyp

Beispiel:

<calcattr name="AT_DAY" type="PROCESS">
<calculation>
<createday>
<filteredattribute name="AT_TIME"
nodetype="OT_FUNC"
objectname="this" filter="EARLY"/>
</createday>
</calculation>
</calcattr>

Format-Umwandlung (Uhrzeit)

XML-Tag:

createtimeofday

Operanden:

genau ein Wert

Synopsis:

<createtimeofday>
<Wert>
</createtimeofday>

Operanden:

TIME (TIMESTAMP, DATE)

Ergebnis:

Wert (Uhrzeit im Format hh:mm:ss)

Ergebnistyp:

TIMEOFDAY

Beschreibung:

Extrahiert die Uhrzeit aus einem PPM-Zeitstempel

Berechnung (PPM3)

Ergebnis

Uhrzeit, die vom Operanden definiert wird

Fehler

Wenn Operand von unzulässigem Datentyp oder gleich NULL

Berechnung (PPM4)

Ergebnis

Uhrzeit, die vom Operanden NULL definiert wird, wenn der Operand NULL liefert

Fehler

Wenn Operand von unzulässigem Datentyp

Beispiel:

<calcattr name="AT_DAY" type="PROCESS">
<calculation>
<createtimeofday>
<filteredattribute name="AT_TIME"

nodetype="OT_FUNC"
objectname="this" filter="EARLY"/>
</createtimeofday>
</calculation>
</calcattr>

Format-Umwandlung (Zeitstempel)

XML-Tag:

createtimestamp

Operanden:

ein oder zwei Werte (Datum oder Datum und Uhrzeit)

Synopsis:

<createtimestamp>
<Datum>
<Uhrzeit> [optional]
</createtimestamp>

Operanden:

DAY, TIMEOFDAY

Ergebnis:

Wert (Zeitstempel im Format dd.MM.yyyy hh:mm:ss)

Ergebnistyp:

TIME (TIMESTAMP, DATE)

Beschreibung:

Erzeugt einen PPM-Zeitstempel aus einem Datum bzw. aus einem Datum und einer Uhrzeit

Berechnung (PPM3)

Ergebnis

Zeitstempel, der durch die Operanden definiert wird

Fehler

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

Berechnung (PPM4)

Ergebnis

Zeitstempel, der durch die Operanden definiert wird. NULL, wenn Operand vom Typ DAY NULL liefert oder wenn erster Operand vom Datentyp TIMEOFDAY und zweiter Operand NULL liefern

Fehler

Wenn mind. ein Operand von unzulässigem Datentyp

Beispiel:

<createtimestamp>
<constant>
<dataitem>
<datatype name="DAY">
25.01.2004
</datatype>
</dataitem>
</constant>
</createtimestamp>

Erzeugt den Zeitstempel 25.01.2004 00:00:00.

Addition einer Zeitspanne

XML-Tag:

addtimespan

Operanden:

genau zwei Werte (Zeitstempel und Zeitspanne, Datum und Zeitspanne oder Uhrzeit und Zeitspanne)

Synopsis:

<addtimespan>
<Zeitstempel oder Datum oder Uhrzeit>
<Zeitspanne>
<addtimespan>

Operanden:

Operand 1: TIME (TIMESTAMP, DATE) oder DAY oder TIMEOFDAY
Operand 2: TIMESPAN

Ergebnis:

Wert (Zeitstempel im Format dd.MM.yyyy hh:mm:ss)

Ergebnistyp:

Zeitpunkt: TIME (TIMESTAMP, DATE) oder DAY oder TIMEOFDAY

Beschreibung:

Addiert zu einem PPM-Zeitstempel eine Zeitspanne in der Basisskalierung (SECOND). Das Ergebnis ist ein Zeitstempel.

Berechnung (PPM3)

Ergebnis

Zeitpunkt, der sich aus der Addition der angegebenen Zeitspanne (Operand 2) zum angegebenen Zeitpunkt (Operand 1) ergibt

Fehler

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

Berechnung (PPM4)

Ergebnis

NULL, wenn mind. ein Operand NULL; Zeitpunkt, der sich aus der Addition der angegebenen Zeitspanne (Operand 2) zum angegebenen Zeitpunkt (Operand 1) ergibt

Fehler

Bei unzulässigem Datentyp

Beispiel:

<calcattr name="AT_NTOFD" type="PROCESS">

<calculation>

<addtimespan>

<constant>

<dataitem>

<datatype name="TIMEOFDAY">
08:35:41
</datatype>
</dataitem>
</constant>
<constant>
<dataitem>
<datatype name="TIMESPAN">
-30 MINUTE
</datatype>

</dataitem>

</constant>

</addtimespan>

</calculation>

</calcattr>

Zur angegebenen Uhrzeit wird eine negative Zeitspanne von dreißig Minuten addiert. Der Ergebniswert 08:05:41 wird im Zielattribut AT_NTOFD gespeichert.

Addition einer Zeitspanne mit Werkskalender

Addiert zu einem PPM-Zeitstempel eine Werkskalenderzeitspanne. Das Ergebnis ist ein Zeitstempel. Konfiguration und Verwendung des Operators addfactorytimespan sind ähnlich zu addtimespan. Bei der Berechnung wird von einem Startzeitpunkt ausgehend die angegebene Werkskalenderzeitspanne addiert. Standardmäßig unterstützt der Operator nur die Addition positiver Werkskalenderzeitspannen. Wenn Sie auch Zeitpunkte in der Vergangenheit berechnen möchten, können Sie durch Angabe des optionalen XML-Attributs negfactorytimespan="TRUE" auch nicht positive Zeitspannen addieren (Standardwert: FALSE). Liegt der berechnete Zeitpunkt genau auf einer Arbeitszeitgrenze, liefert der Operator den frühest möglichen Zeitpunkt.

Beispiele

Unter der vereinfachten Voraussetzung einer täglichen Arbeitszeit von 9:00-17:00 Uhr:

Wenn Sie einen anderen als den Standardwerkskalender (factorycalendar.xml) verwenden möchten, können Sie optional eine XML-Datei angeben, die den zu verwendenden Werkskalender enthält. Im XML-Attribut attributename geben Sie das Funktions- bzw. Prozessinstanzattribut an, das den Namen der zu verwendenden XML-Werkskalenderdatei bestimmt. Das Attribut muss an der jeweiligen Funktions- bzw. Prozessinstanz gepflegt sein, für die die Berechnung durchgeführt wird. Im XML-Attribut directory geben Sie das Verzeichnis an, in dem die angegebene Werkskalenderdatei gesucht wird. Die beiden XML-Attribute attributename und directory müssen immer gemeinsam angegeben werden.

Das entsprechende Verzeichnis mit der zu verwendenden Werkskalenderdatei geben Sie relativ zum PPM-Datenverzeichnis an. Das PPM-Datenverzeichnis data_ppm liegt unter <PPM-Installationsverzeichnis>\ppm\server\bin\work\.

Beispiel

...

<addfactorytimespan directory="calc\fc" attributename="AT_FC_NAME">

...

Wenn das Attribut AT_FC_NAME den Wert myFactoryCalendar.xml enthält, wird zur Berechnung der in der Datei myFactoryCalendar.xml definierte Werkskalender verwendet. Die Datei liegt im Verzeichnis <PPM-Installationsverzeichnis>\ppm\server\bin\work\data_ppm\calc\fc\.

Die Addition der Werkskalenderzeitspannen erfolgt immer in der Basiseinheit Personensekunde. Die hierfür verwendeten Umrechnungsfaktoren sind unabhängig vom Werkskalender und werden in der mandantenspezifischen Konfigurationsdatei transformationfactors.xml definiert. Wenn Sie diese nicht verwenden möchten, dürfen Sie zur Addition einer Zeitspanne unter Berücksichtigung eines Werkskalenders nur Werkskalenderzeitspannen in der Einheit Personensekunde, -minute oder -stunde verwenden.

Wochentagermittlung (aus Datum)

XML-Tag:

weekday

Operanden:

genau ein Wert

Synopsis:

<weekday>
<Wert>
</weekday>

Operanden:

Genau ein Operand: TIME oder DAY

Ergebnis:

Zeichenkette im Format MO, TU, WE, TH, FR, SA bzw. SU

Ergebnistyp:

TEXT

Beschreibung:

Ermittelt den Wochentag aus einem PPM-Datumstyp und liefert ihn als Zeichenkette zurück.

Berechnung (PPM4)

Ergebnis

Eine der Konstanten MO, TU, WE, TH, FR, SA oder SU, entsprechend dem Wochentag des übergebenen Datums

Fehler

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

Beispiel:

<calcattr name="AT_WEEKDAY" type="PROCESS">
<calculation>
<weekday>
<constant>
<dataitem>
<datatype name="DAY">
25.08.2007
</datatype>
</dataitem>
</constant>
</weekday>
</calculation>
</calcattr>

Ermittelt den Wochentag zum angegebenen Datum ('saturday') und liefert ihn als TEXT-Zeichenkette SA zurück.

Werte von Textdimensionen, die Ergebnisse des Operators weekday verwenden, können nicht sortiert werden.