do as server - rechnet falsch seit letztem Update !!
Meine Berechnungen sind plötzlich nicht mehr richtig!
Seit dem neuesten Update liefern Abfragen nach "last" nicht den richtigen Datensatz!
Bei mir liefert die Abfrage
"let Abschluss := last(select Kassenbuchungen where tagesabschluss = true);
den Datensatz 92 wenn es unter "do as server" läuft und 449 wen es lokal läuft.
Was kann man da eventuell einstellen?
2 Antworten
-
Guten Morgen Peter,
nein, kann man nicht. Zum Hintergrund:
Bisher bestand der "Bug", dass die Funktion nicht mathematisch sortiert, sondern alphanumerisch. Das bedeutet, eine 101 kann nicht nach der 99 sondern davon, denn die erste Ziffer "1" ist kleiner als die "9". Folglich führte last() immer zu falschen Werten, wenn im Array eine zusätzliche Ziffer dazu kam (99 zu 100, 999 zu 1000 usw.).
In deinem Fall ist der Sprung von 99 zu 100 drin, wobei ich jetzt mal behaupten würde, dass die Datensätze mit den ID´s 93 bis 99 nicht mehr existieren.
Diesen Bug scheint man nun behoben zu haben, aber nur wenn das Skript lokal läuft. Im do as server sagt die Funktion immer noch ein falsches Ergebnis, denn 9 > 4.
Eben auf Grund dieser Fehler (und nunmehr eines halbgaren Bugfixes) ist es so besser geschrieben
last(select Kassenbuchungen order by number(Nr))
für den Datensatz, bzw.
max((select Kassenbuchungen).number(Nr))
für die reine ID
VG
Ralf
-
Ich habe das Thema des halben Bugfixes mal an den Support herangetragen.
Content aside
- Status Answered
-
1
„Gefällt mir“ Klicks
- vor 2 JahrenZuletzt aktiv
- 2Antworten
- 65Ansichten
-
2
Folge bereits