Anmelden

View Full Version : User mit anderer Zeitzone



hs
03-11-15, 08:39
Hallo

kann die AS400 mit OS 7.1 mittlerweile mit User aus verschiedenen Zeitzonen umgehen oder benötigt man da immer noch eine spezielle Software wie TimeZoNe/400?

Hintergrund:
Wir setzen grad auf einem deutschen System eine ERP-Umgebung für unserer chinesische Tochterfirma auf - und die müssen in Ihrer Zeit arbeiten.
Obige Software würde das erledigen, kostet aber nicht grad wenig.

Läuft überigens alles im selben LPAR, sind nur andere Bibliotheken.
Es gibt da im Userprofile wohl entsprechende LOCALE settings für die Zeitzone?

Danke
HS

Fuerchau
03-11-15, 09:24
Nein, die gibt es immer noch nicht als Standard.
Die Zeitzone kann nur über eine Environment-Variable "TZ" jobspezifisch gesetzt werden.
Leider wird diese dann auch nur von C-Functionen (getlocaltime) ausgewertet.
Die Standardfunktion in RPGLE (%time(), %timestamp()), COBOL, CLP und SQL greifen immer nur auf die Systemzeit zu.
Selbst QUTCOFFSET wird nicht berücksichtigt! Dieser Wert dient nur dazu, dass das System die Systemzeit korrekt verwaltet.

Zusatzprodukte waren allerdings nie erforderlich, da man dies in der Anwendung mit einem kleinen Serviceprogramm für Datum/Zeit/Zeitmarke hinbekommt (ja, Datum ist auch wichtig).

holgerscherer
03-11-15, 09:42
Es gibt da im Userprofile wohl entsprechende LOCALE settings für die Zeitzone?


Wenn ich das richtig sehe, hat die IBM das fast fertig implementiert, aber aus (hüstel) gewissen Gründen wohl nur über nicht dokumentierte APIs...

Mit selbst definierten Locales könnte/hätte es gehen können, da es seit mindestens V5R2 vorgesehen war.

https://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/nls/rbagsinstalllocales.htm

Auch die Jobattribute geben es her, aber man kann eine Job-spezifische Zeitzone nicht setzen.

Wäre ja mal eine massive Intervention bei IBM wert. Die paar Zeilen könnten die ja auch noch realisieren.

-h

hs
03-11-15, 09:43
Ok, danke für die Info.
Das ERP-System wollen wir nicht neu programmieren, dann werden wir die Software wohl kaufen müssen.
Oder kann man das Serviceprogramm einmalig nach der Anmeldung ausführen und dann hat man die andere zeit?

Fuerchau
03-11-15, 09:49
Ja, das mit den "locale"s habe ich schon bei V5 ausprobiert.
Allerdings kann ich damit auch nur die TZ-Variable für Zeitzonen automatisch User-Spezifisch setzen.
An der Aussage bzgl. der Zeitabfragen wird sich wohl nichts ändern da hier ja grundsätzlich von der "Systemzeit" die Rede ist.
Für lokale Zeit gibt's ja die C-Funktion "getlocaltime()", die leider nicht als normale und/oder SQL-Funktion zur Verfügung steht.

Allerdings muss man massiv aufpassen, wenn man lokale Zeiten in der Datenbank speichert.
Dies führt unweigerlich zu falschen Berechnungen.

Die lokale Zeit lässt sich halt nur per TZ ausrechnen.
Wobei hier es schon bei Sommer/Winterzeit-Umstellungen zu Veränderungen bzgl. der Vergangenheit kommt.
Man bedenke, lokale Zeit ist userspezifisch und nicht anwendungsspezifisch!