Was sind zeitzonenabhängige Attribute?

Zeitzonenabhängige Attribute sind Attribute, die die aktuelle Zeitzone berücksichtigen, wenn sie angezeigt werden. Die Werte der Attribute werden abhängig von der Zeitzone, in der sie angezeigt werden, angepasst.

Zeitzonenabhängige Attribute sind:

Speicherung

Diese Attribute werden in der Datenbank in Greenwich Mean Time (GMT + 0) gespeichert. Wenn die Attribute Benutzern im Editor, Designer, Model Viewer, usw. angezeigt werden, zeigen sie die umgerechnete lokale Zeit des Clients an.

Falls ein Benutzer die Werte in seiner lokalen Client-Zeitzone ändert, werden diese intern auf GMT +0 umgestellt und in der Datenbank gespeichert.

Reporte

Wenn ein Report von einem Client aus gestartet wird, wird die Zeitzone des Clients auf den Server übertragen. Der Server wandelt die zeitzonenabhängigen Attribute bei der Ausgabeerstellung um.

Wenn ein Report als zeitgesteuerter Report ausgeführt wird, sind keine Client-Informationen verfügbar und somit keine Umrechnung möglich. Deshalb wird das zeitzonenabhängige Attribut so angezeigt, als ob der Server in der Zeitzone GMT +0 läge.

Reportskript-API

Sie sollten zum Ändern der Werte von Zeitattributen immer Methoden verwenden, die eine Zeichenfolge als Parameter akzeptieren. Beispiel:

oDef.Attribute(Constants.AT_SAP_TIME_GEN, 0).setValue("07:12:45;11/19/2018");

Empfehlung

Sie sollten weder die Methode java.util.Date und im Besonderen nicht die Methode setValue() verwenden, die ein Datum-Objekt als Parameter akzeptieren: Die meisten unterschiedlichen Konstruktoren für das Datum führen eine automatische Umrechnung basierend auf der Zeitzone des Clients durch. Die Umrechnung eines Datums in eine Zeichenfolge, z. B. mithilfe von toString(), führt auch zu einer Umrechnung in die Zeitzone des Clients.

Beispiel

In diesem Beispiel wird angenommen, dass beide Benutzer auf denselben Server zugreifen.

Ein Benutzer in Deutschland legt am 19. Nov. 2018 16:12 ein Objekt an. (Der Erstellzeitpunkt wird auf der Grundlage seines lokalen Betriebssystems als 19. 11. 2018 16:12 angezeigt.) Wenn sich ein anderer Benutzer in San Francisco das Attribut Erstellzeitpunkt anschaut, ist der angezeigte Wert nicht 19. 11. 2018 16:12 sondern Nov. 19 2018 7:12 AM, da San Francisco 9 Stunden hinter der deutschen Zeit liegt.