Attributs dépendants du fuseau horaire

Les attributs dépendants du fuseau horaire sont des attributs qui tiennent compte du fuseau horaire au moment de leur affichage. Les valeurs de ces attributs sont ajustées en fonction du fuseau horaire dans lequel elles sont affichées.

Les attributs dépendants du fuseau horaire sont les suivants :

Enregistrement

Dans la base de données, ces attributs sont enregistrés au format GMT (temps moyen de Greenwich + 0). Lorsque ces attributs sont affichés à des utilisateurs dans l'Éditeur d'attributs, Designer, le Visionneur de modèles, etc., ils sont tout d'abord convertis en fonction de l'heure locale du client.

Si des valeurs sont modifiées par un utilisateur dans le fuseau horaire de son client local, elles sont converties en interne au format GMT + 0 et enregistrées dans la base de données.

Rapports

Quand un rapport est lancé à partir d'un client, le fuseau horaire de ce client est transféré au serveur. Le serveur convertit les attributs dépendants du fuseau horaire au moment de la création de la sortie.

Quand un rapport est lancé sous forme de rapport programmé, aucune information sur le client n'est disponible et aucune conversion ne peut donc être effectuée. Par conséquent, l'attribut dépendant du fuseau horaire est affiché comme si le serveur se trouvait dans le fuseau horaire GMT + 0.

API de script de rapport

Il est préférable de toujours utiliser des méthodes acceptant une chaîne comme paramètre afin de modifier la valeur des attributs d'heure. Exemple :

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

Recommandation

Nous recommandons de ne pas utiliser java.util.Date, surtout les méthodes setValue(), qui acceptent un objet Date comme paramètre : la plupart des nombreux constructeurs de Date effectuent une conversion automatique en fonction du fuseau horaire du client. La conversion d'une date en chaîne de caractères (avec toString(), par exemple) effectue également une conversion dans le fuseau horaire du client.

Exemple

Cet exemple part du principe que les deux utilisateurs accèdent au même serveur.

Un utilisateur en Allemagne crée un objet le 19 nov. 2018 à 16h12. (Son système d'exploitation local affiche l'heure de création comme suit : 19.11.2018 16:12.) Si un autre utilisateur à San Francisco regarde l'attribut Moment de création, sa valeur n'est pas le 19 nov. 2018 à 16h12, mais le 19 nov. 2018 à 7h12, du fait des 9 heures de décalage horaire entre San Francisco et l'Allemagne.