Datums-/Uhrzeitproblem mit "do as server"

Ninox Profile

Guten Abend.

Ich habe ein Script erstellt, in dem Datumsangaben miteinander verglichen werden. Um das Script zu beschleunigen, habe ich es mit "do as server" versehen. Das lief monatelang wunderbar und schnell. Nun funktioniert es nicht mehr. Mit Hilfe von Birger haben wir gesehen, dass ein Datumsfeld, welches im Formular mit "1.12.2019" gefüllt wurde, auf dem Server als "30.11.2019" verarbeitet wurde. Birger sagte, dass der Server offensichtlich in einer anderen Zeitzone betrieben wird. Birger hat daraufhin einige Änderungen im Script vorgenommen aber das hat leider nur wenig Erfolg gebracht. Offensichtlich sind hauptsächlich meine globalen Scripte für die Fehlfunktion verantwortlich. Kann es sein, dass das Script während der Sommerzeit funktioniert hat und nun in der Normalzeit nicht mehr?

Wenn ich das Script ohne "do as server" betreibe, funktioniert alles wunderbar - dauert auf dem iMac halt relativ lange, auf dem iPad zu lange.

Hat jemand von euch ein ähnliches Problem? Ansonsten muss ich mit Birger wohl noch ein paar Runden drehen...

Danke im Voraus und viele Grüße, Jörg

M

Hallo Jörg,

ja das Problem kenne ich zu gut bei mir ist das Enddatum nicht so wichtig daher lasse ich das Script einfach immer bis myDatum +1 laufen.

konnte es bis jetzt aber noch nicht auf Sommer und Winterzeit zurückführen währe aber interessant.  dann ließe sich mit Datumseinschränkung ein passendes Script basteln.

Ich hatte nur mit datetime() Feldern ein riesen Problem an den Tagen der Zeitumstellung das verhaut es immer die Uhrzeit wenn ich es aus date und time zusammen setze.

Bei Zeitberechnungen hat NINOX noch vieles zu verbessern um es komfortabel zu gestalten.

Ninox Profile

Hallo Micha,

danke für deine Antwort. Ich habe schon gedacht, ich bin der einzige mit solch einem Problem. Es liegt wohl nicht an Sommer-/Winterzeit, sondern an Einstellungen zum verwendeten Team. Sehr mysteriös. Ich berichte, wenn ich näheres weiß.

Ninox Profile

Ich melde mich noch einmal zu dem Thema, um vielleicht dem einen oder anderen einen Tipp zu geben, falls ähnliche Probleme aufgetaucht sind. Hier ein Beispiel, um das Ganze verständlich zu machen. In einem Script soll herausgefunden werden, ob ein eingegebenes Datum eine "1" oder eine "15" in der Tagesangabe hat, also z.B. der 01.12.2019 oder der 15.12.2019 eingegeben wurde:

Script 1:
let me := this;
if day(Datum) = 1 or day(Datum) = 15 then
  Test := true
else
  Test := false
end


Script 2:
do as server
  let me := this;
  if day(Datum) = 1 or day(Datum) = 15 then
    Test := true
  else
    Test := false
  end
end

Während das erste Script prima funktioniert, klappt es beim zweiten nicht, weil offensichtlich der Server in einer anderen Zeitzone steht. Ein eingegebenes Datum wird wohl z.B. mit "01.12.2019 00:00:00" zum Server geschickt, der aber dieses Datum als "30.11.2019 23:00:00" interpretiert. Aus meiner Sicht ist das ein echtes Problem. Denn wenn der Server mit GMT-Zeit arbeitet, sollte man eher 12:00:00 Uhr nehmen, die Datumsgrenze ist ja auf der anderen Seite der Erdkugel.

Für mich ist das ein riesiges Problem, weil wir Datumsvergleiche benötigen. Der Ninox-Support hat Änderungen versprochen. Ich kann nur hoffen, dass die sehr zeitnah eingebracht werden.

Falls jemand ähnliche Erfahrungen gemacht hat, würde ich mich freuen zu hören, wie derzeit damit umgegangen wird.

Viele Grüße, Jörg

Ninox Profile

Hallo Forum. Ich würde mich freuen, wenn jemand das o.g. Problem nachvollziehen kann. Vielleicht hat ja irgendjemand Lust, die beiden Mini-Scripte bei sich zu testen und hier eine Rückmeldung zu geben. Für uns ist das Problem ein echter Projekt-Killer, da wir bei monatlichen Beitragsrechnungen mehrere Datumsvergleiche machen müssen (ist ein Vertrag zu einem bestimmten Termin aktiv oder nicht) und das ist bei mehreren hundert Datensätzen sehr zeitintensiv. Deshalb haben wir "do as server" verwendet.

Vielen Dank im Voraus, Jörg

Antworten