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 Mont |
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 Formatzeichenfolge 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 Zeichenfolge werden in der angegebenen Reihenfolge zur Zeichenfolge 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 Millisekunde) 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>
...