Zeitumstellung / FuBa

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Zeitumstellung / FuBa

Beitrag von littleJohn (ForumUser / 53 / 0 / 0 ) »
Hallo,

ich ermittle mir die Zeit einer anderen Zeitzone über einen beliebigen FuBa im SAP.
Allerdings hab ich das Problem, das z.B. Mexiko eine Woche später die Zeit umstellt, und daher der FuBa eine Woche falsche Ergebnisse zurückliefert.

Hat dieses Problem schonmal jemand irgendwie gelöst?

Grüße
Je mehr wir voneinander wissen, um so höher ist unsere Chance zu überleben.


Re: Zeitumstellung / FuBa

Beitrag von jocoder (Specialist / 247 / 3 / 72 ) »
Es gibt eingebaute Befehle, um mit Zeitzonen zu rechnen. Eine lokale Uhrzeit wird in einen Zeitstempel konvertiert mit CONVERT DATE local_data TIME local_time INTO TIME STAMP timestamp TIME ZONE local_timezone. Dieser Zeitstempel kann wieder in eine Datumsangabe und eine Uhrzeit zurueckkonvertiert werden mit CONVERT TIME STAMP timestamp TIME ZONE mexico_timezone INTO mexico_date TIME mexico_time.
Dies sollte auch mit Sommer- und Winterzeit korrekt funktionieren.

Re: Zeitumstellung / FuBa

Beitrag von littleJohn (ForumUser / 53 / 0 / 0 ) »
Okay, aber die Woche dazwischen bekomme ich damit auch nicht abgefangen, oder? Da sind's ja kurzzeitig mal 8h Unterschied anstatt 7.
Je mehr wir voneinander wissen, um so höher ist unsere Chance zu überleben.

Re: Zeitumstellung / FuBa

Beitrag von DeathAndPain (Top Expert / 1523 / 171 / 339 ) »
Mich beschäftigt Deine Aussage "ich ermittle mir die Zeit einer anderen Zeitzone über einen beliebigen FuBa im SAP."

Ich bin sicher, dass es in SAP eine Menge Funktionsbausteine gibt, die sich dafür nicht eignen. Mit einem "beliebigen" wirst Du da also nicht weit kommen. Insofern stellt sich mir die Frage, was Du da überhaupt genau tust bzw. zu tun beabsichtigst.

Re: Zeitumstellung / FuBa

Beitrag von jocoder (Specialist / 247 / 3 / 72 ) »
@littlejohn Die Konvertierungsfunktionen lösen das Problem. Jede Zeitzone hat ein eigenes Regelwerk für Sommer- und Winterzeit in der Tabelle TTZDV.
Das folgende Testprogramm gab zwischen dem letzten Sonntag im März und dem ersten Sonntag im April acht Stunden Differenz an, sonst 7.

Code: Alles auswählen.

START-OF-SELECTION.

  WRITE: 'Winterzeit DE und Mexiko'. NEW-LINE.
  CONVERT DATE '20210325' TIME '080000' INTO TIME STAMP DATA(timestamp)
      TIME ZONE 'CET'.
  CONVERT TIME STAMP timestamp TIME ZONE 'CST' INTO DATE DATA(mexico_date)
    TIME DATA(mexico_time).
  WRITE: 'Erwartet 25.03.2021 01:00:00, tatsaechlich', mexico_date DD/MM/YYYY, mexico_time. NEW-LINE.

  WRITE: 'Sommerzeit DE und Winterzeit Mexiko'. NEW-LINE.
  CONVERT DATE '20210329' TIME '080000' INTO TIME STAMP timestamp
    TIME ZONE 'CET'.
  CONVERT TIME STAMP timestamp TIME ZONE 'CST' INTO DATE mexico_date
    TIME mexico_time.
  WRITE: 'Erwartet 29.03.2021 00:00:00, tatsaechlich', mexico_date DD/MM/YYYY, mexico_time. NEW-LINE.

  WRITE: 'Sommerzeit DE und Mexiko'. NEW-LINE.
  CONVERT DATE '20210412' TIME '080000' INTO TIME STAMP timestamp
    TIME ZONE 'CET'.
  CONVERT TIME STAMP timestamp TIME ZONE 'CST' INTO DATE mexico_date
    TIME mexico_time.
  WRITE: 'Erwartet 12.04.2021 01:00:00, tatsaechlich', mexico_date DD/MM/YYYY, mexico_time. NEW-LINE.
Die passende Zeitzone kann aus Tabelle TTZZ entnommen werden (in Mexiko müsste das die Zeitzone CST sein). Die nominale Abweichung zu UTC-Zeitzone befindet sich in Tabelle TTZR.
Zuletzt geändert von jocoder am 25.03.2021 14:41, insgesamt 1-mal geändert.

Re: Zeitumstellung / FuBa

Beitrag von black_adept (Top Expert / 3510 / 70 / 692 ) »
@jocoder: Aber woher weißt du wann Mexiko von CST nach CDT umstellt? In den USA wird am 1. oder 2. Wochenende im März umgestellt ( also ist dort schon von CST auf CDT umgestellt worden) wohingegen in Mexiko ( Mexico City ) erst am 1. Wochende im April umgestellt wird.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zeitumstellung / FuBa

Beitrag von jocoder (Specialist / 247 / 3 / 72 ) »
Die Zeitzone bleibt für Winter- und Sommerzeit konstant, die zusätzliche Stunde rechnet die CONVERT TIMESTAMP-Funktion hinzu. Die Zeitzone CST habe ich verwendet, da diese in meiner SAP-Auslieferung (Tabelle TTZDV) am 1. Wochenende im April auf Sommerzeit umstellt und im Bereich UTC-6 liegt. Man kann sich auch sein eigenes Regelwerk einrichten und damit das Problem der unterschiedlichen Umstellung von Winter- auf Sommerzeit zu umgehen.

Re: Zeitumstellung / FuBa

Beitrag von black_adept (Top Expert / 3510 / 70 / 692 ) »
@jocoder
Das ist aber so nicht korrekt. in TTZZ steht als Sommerzeitregel für CST die Regel "USA". In "meiner" SAP-Auslieferung stehen für die diese "USA" 2 Einträge in der Tabelle TTZDV - und zwar gilt seit 2007 wohl die Umstellung ab 1. WE März und nicht mehr 1. WE April.
Aber wie dem auch sei - der OP hat ja explizit nach Mexiko gefragt und Mexiko ist zwar "meist" auf CST - aber eben nicht immer, so dass ihm deine Umrechnungen zwar helfen könnten, er aber trotzdem aktuell nichts automatisch hinbekommt, da für Mexiko wohl keine expliziten Eintragungen von SAP ausgeliefert werden.

@littlejohn:
Leg dir im Customizing einen eigenen Eintrag für Mexiko an. Z.B. MXK, mit dem du dann die von jocoder vorgeschlagenen Konvertierungen machen kannst.
SPRO: NetWeaver -> General settings -> Time Zones -> Maintain Time Zones . Da kannst du dich dann richtig austoben und die korrekten Zeiten für die mexikanische Sommerzeit hinterlegen
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

Fuba
von Michi » 22.10.2003 07:23
Fuba-Druck
von Gast » 10.01.2006 18:10
FuBa material_maintain_dark_retail
von erubadhron » 24.05.2017 12:48
FuBa prow_change_doc
von erubadhron » 10.04.2017 14:41
FuBa gesucht
von chatty » 13.02.2006 10:52