Zeitstempeltransformationen

In PPM stehen verschiedene Attributtransformationen vom Typ Zeitstempeltransformation zur Verfügung.

Die im PPM-System verfügbaren Zeitstempeltransformationen wandeln Quellsystem-Zeitstempelwerte, die in beliebigen Formaten vorliegen, in das zulässige, interne PPM-Format mit dem korrekten PPM-Zieldatentyp um. Die folgende Tabelle gibt einen Überblick über die verfügbaren Zeitstempeltransformationen:

Transformation

PPM-Zieldatentyp

timestamp

TIME

timestamp_epoch

TIME

timeofday

TIMEOFDAY

timeofday_epoch

TIMEOFDAY

day

DAY

day_epoch

DAY

SAGDateTime

TIME

Zeitstempeltransformation timestamp, timeofday, day

Die Vorgaben bezüglich der Konfiguration von Zeitstempeltransformationen sind in der Dokumenttypdefinition eventmapping.dtd festgelegt:

...

<!ELEMENT transformation EMPTY>

<!ATTLIST transformation

type NMTOKEN "timestamp"

format CDATA #REQUIRED

>

...

Im XML-Attribut type wird angegeben, welche der möglichen Zeitstempeltransformationen verwendet werden soll. Dabei ist die Attributtransformation timestamp voreingestellt. Im XML-Attribut format wird angegeben, in welchem Format der Zeitstempel im Quellsystemattribut vorliegt.

Die Angabe im Attribut format entspricht dem Zeitstempelformat von Java:

Symbol

Beschreibung

Datentyp

Beispiel

G

Epochenbezeichner

Text

AD

y

Jahr

Zahl

2003

MM

Kalendermonat

Zahl

09

MMM

Kalendermonat

Text

Sep

MMMM

Kalendermonat

Text

September

d

Kalendertag

Zahl

26

h

Stunde, amerikanische Notation (1-12)

Zahl

12

H

Stunde (0-23)

Zahl

14

m

Minute

Zahl

42

s

Sekunde

Zahl

57

S

Millisekunde

Zahl

978

E

Wochentag

Text

Donnerstag

F

Wochentagswiederholung im Monat

Zahl

2

D

Tag im Jahr

Zahl

189

w

Kalenderwoche

Zahl

27

W

Woche im Monat

Zahl

2 (2. Woche im Monat)

a

Tageszeitbezeichner

Text

PM

k

Stunde (1-24)

Zahl

24

K

Stunde, amerikanische Notation (0-11)

Zahl

7

z

Zeitzone

Text

GMT

´

Escape-Zeichen für Text

Zeichen

´Beispieltext´

´´

einfaches Hochkomma

Zeichen

´Beispiel´´Text´

Beispiel 1

Der Wert 2002-12-24 (<Jahr>-<Monat>-<Tag>) eines Quellsystemattributs wird durch die Formatzeichenkette yyyy-MM-dd in das PPM-Format transformiert:

...

<transformation type="timestamp" format="yyyy-MM-dd"/>

...

Beispiel 2

Zusammengesetzte Quellsystemattributwerte:

...

<attribute ppmattributetype="AT_END_TIME">

<eventattributetype>ERF_DAT</eventattributetype>

<eventattributetype>ERF_ZEIT</eventattributetype>

<transformation format="yyyyMMddHHmmss"/>

</attribute>

...

Im Quellsystemattribut ERF_DAT liegt das Erfassungsdatum im Format yyyyMMdd und im Quellsystemattribut ERF_ZEIT die Erfassungszeit im Format HHmmss vor. Auszug der XML-Ausgabedatei:

<event>

...

<attribute type='ERF_DAT'>20011230</attribute>

...

</event>

<event>

...

<attribute type='ERF_ZEIT'>120730</attribute>

<attribute type='ERF_DAT'>20011101</attribute>

...

</event>

Für das erste System-Event wird das Attribut AT_END_TIME nicht erzeugt, da das Attribut ERF_ZEIT nicht vorhanden ist.

Beim zweiten System-Event sind beide Attribute vorhanden. Die Attributwerte werden in der angegebenen Reihenfolge zu 20011101120730 zusammengefügt, anschließend mit dem angegebenen Format yyyyMMddHHmmss ausgewertet und in den PPM-konformen Zeitstempel 01.11.2001 12:07:30 umgewandelt.

Beispiel 3

Im Attribut ERF_STD wird nur die Stunde erfasst, in der das System-Event erzeugt wurde. Der Erfassungszeitpunkt liegt dabei immer dreißig Minuten nach der vollen Stunde.

...

<attribute ppmattributetype="AT_END_TIME">

<eventattributetype>ERF_DAT</eventattributetype>

<value>::</value>

<eventattributetype>ERF_STD</eventattributetype>

<value>30</value>

<transformation format="yyyyMMdd::HHmm"/>

</attribute>

...

Zugehöriges System-Event der Ausgabedatei:

...

<event>

...

<attribute type='ERF_STD'>12</attribute>

<attribute type='ERF_DAT'>20011001</attribute>

...

</event>

...

Die Attributwerte und konstanten Zeichenketten werden in der angegebenen Reihenfolge zur Zeichenkette 20011001::1230 zusammengesetzt und mit dem Format yyyyMMdd::hhmm in den PPM-konformen Zeitstempel 01.10.2001 12:30:00 umgewandelt, der an das PPM-Attribut AT_END_TIME geschrieben wird.

Zeitstempeltransformationen timestamp_epoch, timeofday_epoch und day_epoch

Die Zeitstempeltransformation timestamp_epoch wandelt einen Ganzzahlenwert, der die seit dem 1. Januar 1970 vergangenen Sekunden bzw. Millisekunden angibt, in das interne PPM-Format um. Im XML-Attribut format bestimmen Sie, ob der Ganzzahlenwert die Anzahl der Sekunden (Wert SECOND) oder Millisekunden (Wert MILLISECOND) seit dem 01.01.1970 0:00:00 GMT angibt. Bei der Berechnung wird die aktuelle Zeitzone des Systems berücksichtigt.

Die Attributtransformationen timeofday_epoch und day_epoch sind analog zu verwenden.

Beispiel (timestamp_epoch)

Im Quellsystemattribut WORK_ITEM-END_TIME ist die Anzahl der Sekunden seit dem 1. 1. 1970 angegeben.

...

<attribute type="WORK_ITEM-END_TIME">1221482578</attribute>

...

Um diesen Attributwert dem Wert des PPM-Attributs AT_END_TIME zuzuweisen, können Sie folgende Mapping-Regel verwenden:

...

<attribute ppmattributetype="AT_END_TIME">

<eventattributetype>
WORK_ITEM-END_TIME

</eventattributetype>

<transformation type="timestamp_epoch"

format="SECOND"/>

</attribute>

...

Attributtransformation SAGDateTime

Das Zeitformat SAGDateTime wird in sogenannten EDA Events verwendet. Event-Attribute vom Typ SAGDateTime werden bislang als Textattribute importiert, da das Datumsformat nicht ohne Weiteres von den bestehenden Zeitstempeltransformationen verarbeitet werden kann.

Transformatorklasse

Die Transformation SAGDateTime enthält die Funktionalität zum Transformieren von Zeitangaben im Format SAGDateTime in das PPM-interne Zeitformat.

Die Klasse kann im Attribut-Mapping im Rahmen des PPM-XML- und Process-Import verwendet werden. Dazu muss eine entsprechende Mapping-Regel definiert werden, die wie folgt aussehen könnte.

<attribute ppmattributetype="AT_TIMESTAMP_PPM">

<eventattributetype>TIMESTAMP_SAGDATETIME</eventattributetype>

<transformation type="SAGDateTime" format="yyyy-MM-dd'T'HH:mm:ss.SSSZ"/>

</attribute>

Die Anwendung dieser Regel führt dazu, dass der Inhalt des Event-Attributs TIMESTAMP_SAGDATETIME in einem PPM-kompatiblen Format an das PPM-Attribut AT_TIMESTAMP_PPM geschrieben wird. Dabei bleibt die Millisekundenangabe unberücksichtigt.

Die Anwendung der obigen Regel auf das Event-Attribut

<attribute type="TIMESTAMP_SAGDATETIME">2013-07-15T06:02:33.650Z</attribute>

würde in der Zeitzone UTC beispielsweise zur Erzeugung des folgenden PPM-Attributs führen:

<attribute type="AT_TIMESTAMP_PPM">15.07.2013 06:02:33</attribute>

Bei der Spezifikation der Mapping-Regel haben Sie zwei Optionen.

  1. Angabe des erwarteten Formats des Event-Attributes

    Wenn bekannt ist, ob die Zeitangabe im Event-Attribut millisekundengenau ist oder nicht, kann im Formatattribut der Transformation das erwartete Format (yyyy-MM-dd'T'HH:mm:ss.SSSZ für millisekundengenaue Zeitangabe, yyyy-MM-dd'T'HH:mm:ssZ für sekundengenaue Zeitangabe) angegeben werden. Die Anwendung einer Transformation für eine millisekundengenaue Zeitangabe auf eine sekundengenaue Zeitangabe und umgekehrt führt zu einem Fehler.

  2. Keine Format-Angabe

    Wenn Sie kein Format angeben, werden bei der Transformation beide Zeitformate (dd'T'HH:mm:ss.SSSZ und yyyy-MM-dd'T'HH:mm:ssZ) nacheinander angewendet. Wenn eines der Formate erkannt wird, wird ein entsprechender Wert an das PPM-Attribut geschrieben.