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> |
|
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"> |
Format-Umwandlung (Uhrzeit)
XML-Tag: |
createtimeofday |
|
Operanden: |
genau ein Wert |
|
Synopsis: |
<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"> nodetype="OT_FUNC" |
Format-Umwandlung (Zeitstempel)
XML-Tag: |
createtimestamp |
|
Operanden: |
ein oder zwei Werte (Datum oder Datum und Uhrzeit) |
|
Synopsis: |
<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> 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> |
|
Operanden: |
Operand 1: TIME (TIMESTAMP, DATE) oder DAY oder TIMEOFDAY |
|
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"> </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:
addFactoryTimeSpan("01.12.2011 12:00:00", "8 FACTORY_HOUR") = "02.12.2011 12:00:00"
addFactoryTimeSpan("01.12.2011 12:00:00", "5 FACTORY_HOUR") = "01.12.2011 17:00:00"
addFactoryTimeSpan{negfactorytimespan="TRUE"}("02.12.2011 12:00:00", "-8 FACTORY_HOUR") = "01.12.2011 12:00:00"
addFactoryTimeSpan{negfactorytimespan="TRUE"}("02.12.2011 12:00:00", "-3 FACTORY_HOUR") = "01.12.2011 17:00:00"
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> |
|
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"> 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. |