Relativer Datumsbereich mit Zeit
Wertauflöser - Kurzfassung
Zweck: Liefert einen "Datumsbereich mit Zeit", der durch vordefinierte oder benutzerdefinierte Zeitberechnungsausdrücke relativ zur Systemzeit oder dem Eingabewert (nur für "Benutzerdefiniert") berechnet wird.
Siehe auch: Typ Datumsbereich (Dynamische Aufzählung), Relatives Datum mit Zeit (Wertauflöser)
Der Relativer Datumsbereich mit Zeit-Wertauflöser liefert einen "Datumsbereich mit Zeit", der abhängig vom ausgewählten Typ relativ zu einem der folgenden Bezugszeiträume ermittelt wird:
Per Standard gilt die aktuelle Systemzeit als Bezugszeitraum (mit demselben Wert für "Von" und "Bis") für die durch den Typ bestimmte "relative" Berechnung des Rückgabewerts.
►HINWEIS◄ Abhängig vom Ausführungskontext kann entweder die Systemzeit des Servers (z. B. in Ereignisbehandlungen) oder des Clients (z. B. in einem Client Workflow) ausschlaggebend sein.Der Eingabewert wird ausschließlich in Verbindung mit dem Typ "Benutzerdefiniert" (CUSTOM) als Bezugszeitpunkt berücksichtigt, sofern dieser einem der folgenden Datentypen entspricht:
Eingabewert-Typ |
Klasse |
Bezugszeitraum |
Zeitzone (aus Eingabewert) |
"Datumsbereich mit Zeit" |
core:DateRange |
Feld "Von" (start) - "Bis" (end) |
Feld "Zeitzone" (timeZone) wird für Rückgabewert nur dann berücksichtigt, falls keine Auswahl für den Parameter Zeitzone besteht |
"Datum mit Zeit" |
core:DateTime |
Feld "Datumswert" (dateValue) |
|
"Long" |
java.lang.Long |
Eingabewert |
n/a |
"Timestamp" |
java.sql.Timestamp |
||
"Date" |
java.util.Date |
Der Rückgabewert wird abhängig vom gewählten Typ (s. Typ Datumsbereich) ausgehend vom Bezugszeitraum durch je einen Zeitberechnungsausdruck für Startwert ("Von"-Zeitpunkt) und Endwert ("Bis"-Zeitpunkt) ermittelt:
Typ |
Konfigurationsbeispiel |
Berechnung des Rückgabewerts |
"Benutzerdefiniert" |
|
Auf den Bezugszeitraum (entweder geeigneter Eingabewert oder die Systemzeit) werden in den Parametern Startwert und Endwert definierten Zeitberechnungsausdrücke angewendet. Im Beispiel wird ausgehend von der Systemzeit oder einem geeigneten Eingabewert der Zeitraum berechnet, der um 22:00 Uhr am Kalendertag vor dem "Von"-Datum beginnt und am auf das "Bis"-Datum folgenden Kalendertag um 6:00 Uhr endet. ►WICHTIG◄ Die für den Rückgabewert anwendbare Zeitzone ist auch ausschlaggebend für die Interpretation der Zeitberechnungsausdrücke. Da im Beispiel (links) der Parameter Zeitzone keine Auswahl vorgibt, wird die Zeitzone aus dem Eingabewert übernommen, sofern dieser eine spezifiziert (s. Tabelle oben). Liegt für den Parameter Zeitzone eine Auswahl vor, dann wird stattdessen die betreffende Zeitzone für die Umrechnung verwendet und dem Rückgabewert zugewiesen. Wirkung von Zeitzonen auf die Interpretation im Zeitwert des Zeitberechnungsausdrucks
|
alle anderen Typen |
|
Die für den ausgewählten Typ in der Dynamischen Aufzählung Typ Datumsbereich hinterlegten Zeitberechnungsausdrücke wird jeweils auf die aktuelle Systemzeit des Servers oder Clients angewendet. Im Beispiel wird das Ende des aktuellen Kalendertags (s. Typ Datumsbereich, "Nächster Tag") in der Zeitzone "Europe/Lisbon" zurückgegeben.
|
Konfiguration
►HINWEIS◄ Der Eingabewert wird ausschließlich in Verbindung mit dem Typ "Benutzerdefiniert" (CUSTOM) berücksichtigt. Dann muss ein "Datumsbereich mit Zeit" oder als Datum interpretierbarer Wert vorliegen.
Parameter |
Konfiguration |
Beschreibung |
Typ |
|
Der Parameter Typ ermöglicht die statische Einfachauswahl eines Werts aus der Dynamischen Aufzählung Typ Datumsbereich. Wie im Bild (links) gezeigt, wird die Auswahl durch eine Suchfunktion unterstützt. Dynamische Aufzählungsfilter können die Verfügbarkeit von Optionen im Dropdown für den Kontext der Konfiguration einschränken. Sie haben keine Einfluss auf das Laufzeitverhalten des Wertauflösers. ►HINWEIS◄ Wird kein Typ ausgewählt, dann wird immer der Datumsbereich Systemzeit - Systemzeit zurückgegeben. |
Zeitzone |
|
Der Parameter Zeitzone ermöglicht optional die statische Einfachauswahl einer von Java unterstützten Zeitzone. Wie im Bild (links) gezeigt, wird die Auswahl durch eine Suchfunktion unterstützt. Die Auswahl einer Zeitzone beeinflusst die Interpretation der zur Laufzeit angewendeten Zeitberechnungsausdrücke. Außerdem wird die ausgewählte Zeitzone für den Rückgabewert verwendet. Wird keine Zeitzone ausgewählt, dann wird im Allgemeinen die im Kontext anwendbare Standardzeitzone verwendet, die (mit absteigender Priorität) durch ein der folgenden Einstellungen definiert wird:
Falls in Verbindung mit dem Typ "Benutzerdefiniert" (CUSTOM) ein Eingabewert vorliegt, der explizit eine Zeitzone beinhaltet, wird diese berücksichtigt, wenn keine Auswahl für den Parameter Zeitzone getroffen wurde. ►HINWEIS◄ Die Auswahloptionen für die Zeitzonen sind nicht lokalisierbar und sie können auch nicht durch Dynamische Aufzählungsfilter eingeschränkt werden. Die angezeigten Texte entspringen direkt der Java-Umgebung. |
Startwert |
|
Die Parameter Startwert und Endwert unterstützten die Eingabe je eines statischen Texts, der zur Laufzeit als Zeitberechnungsausdruck (Details s. Relatives Datum mit Zeit, Abschnitt "Zeitberechnungsausdrücke") interpretiert wird. ►HINWEIS◄ Diese Parameter erscheinen nur, wenn der Typ "Benutzerdefiniert" (CUSTOM) ausgewählt ist. Für alle anderen Typen sollten in der Dynamischen Aufzählung Typ Datumsbereich geeignete Zeitberechnungsausdrücke für "Start" und "Ende" hinterlegt sein. Dort können auch eigene Typen mit spezifischen Zeitberechnungsausdrücken ergänzt werden. Im Beispiel verweist der Startwert auf den Beginn eines Kalendertags in der Zeitzone "Asia/Tokyo", der abhängig vom Bezugszeitraum entweder durch die Systemzeit, den Eingabewert oder das darin enthalte "Von"-Feld bestimmt ist. Der Endwert wird als Beginn des Quartals in derselben Zeitzone ermittelt, das nach dem Ende des Bezugszeitraums (bestimmt durch Systemzeit, Eingabewert oder darin enthaltenes "Bis"-Feld) beginnt. Wird kein Zeitberechnungsausdruck als Startwert oder Endwert angegeben, dann wird die entsprechende Komponente aus dem Bezugszeitraum ggf. unter Berücksichtigung der ausgewählten Zeitzone ausgegeben. |
Beispiele
Einfacher Anwendungsfall: Abgrenzen einer Suche durch einen relativen Datumsbereich
In einer Übersicht für Ereignisbehandlungen kann über Filter oder Sortierungen für die Spalte "Änderungsdatum" (lastModified)einfach festgestellt werden, welche der angezeigten Ereignisbehandlungen gestern zuletzt geändert wurden.
Laufzeitbeispiel:
Im Dropdown zum Filtern für die Spalte "Änderungsdatum" erscheinen die über die Dynamische Aufzählung Typ Datumsbereich definierten "Datumsbereichstypen" zur Auswahl, weil dies für den Datentyp der Spalte (Timestamp) so vorgesehen ist.
Im Bild wurde "Vergangener Tag" gewählt, so dass die Liste nur noch Ereignisbehandlungen als Zeilen auflistet, deren "Änderungsdatum" in dem Datumsbereich liegt, der zur aktuellen Systemzeit als "gestern" gilt.
Die Definition für den systemseitig vordefinierten relativen Datumsbereich "Vergangener Tag" (YESTERDAY) soll nun auch verwendet werden, um für die Übersicht eine Zeilenformatierung einzurichten, die alle Zeilen mit "gestern geänderten" Ereignisbehandlungen gelb schattiert.
Konfiguration:
Der Screenshot rechts zeigt die Konfiguration für die Zeilenformatierung, die innerhalb der bestehenden Datengrid-Einstellungen für den Kontext der Ereignisbehandlungen hinzugefügt wurde:
|
|
►HINWEIS◄ Entsprechende Einschränkungen können auch zur Definition einer Suche für ein Import-Profil im Lobster_data verwendet werden. Die XML-Struktur rechts zeigt wie einfach der Zugriff auf vordefinierte Datumsbereiche (hier: YESTERDAY) über das DateRangeValue-Objekt (hier als value-Element einer Feld Einschränkung) innerhalb einer Suche ist. |
<?xml version="1.0" encoding="UTF-8"?> |
Einfacher Anwendungsfall: Abbilden der Terminzusage "Bin gleich da!"
Wenn einer Sendung der Arbeitsstatus "Bin gleich da!" (ON_FINAL) zugewiesen wird, soll einer Variable deliverySlot ein Datumsbereichsobjekt zugeordnet werden, der sofort - also mit der aktuellen Systemzeit - beginnt und 15 Minuten später endet.
Konfiguration:
Innerhalb einer Ereignisbehandlung wird eine Setze Wert-Ereignisaktion wie rechts abgebildet konfiguriiert:
|
|
Die Konfiguration soll im nächsten Schritt dahingehend optimiert werden, dass der Datumsbereich für den deliverySlot nicht mehr relativ zur Systemzeit, sondern relativ zum "Datum mit Zeit"-Wert im Feld "Realisierungszeit" (realization) für den betreffenden Arbeitsstatus-Eintrag berechnet wird.
Die bestehende Konfiguration wird dazu wie rechts abgebildet angepasst:
►HINWEIS◄ Falls beim beim Hinzufügen eines Arbeitsstatus keine "Realisierungszeit" für den Arbeitsstatus-Eintrag angegeben wird, weist Lobster Data Platform / Orchestration automatisch die aktuelle Systemzeit als "Realisierungszeit" zu. Daher sollte dieses Feld für einen Arbeitsstatus-Eintrag nie leer sein, wenn die Ereignisbehandlung beim Setzen eines Arbeitsstatus (s. Arbeitsstatus (Ereignisse)) ausgelöst wird. Im Allgemeinen ist allerdings zu berücksichtigen, dass ein Relativer Datumsbereich mit Zeit-Wertauflöser mit dem Typ "Benutzerdefiniert" auf die Systemzeit zurückgreift, falls der Eingabewert leer ist oder auch nur dem Typ nach ungeeignet. |
|