Bodo's Dynamics NAV und Business Central Blog
Bodo ist ein Dynamics NAV Urgestein. Er programmiert Navision seit DOS Zeiten und hat auch keine Scheu vor .NET und schon gar nicht vor Dynamics 365 oder Azure. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu Entwicklern ausgebildet. In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics 365 Business Central / Dynamics NAV und Microsoft Azure.Dynamics NAV 2018 – SourceTableTemporary ohne Funktion
Tags: bug, 2018UPDATE: Auflösung folgt nächste Woche!
Ich bin erschüttert.
Ich hätte Haus & Hof verwettet, dass das Setzen der Eigenschaft »SourceTableTemporary« auf einer Page (vom Typ »Card«) eine einfache Funktion hat. Nämlich dafür sorgt, dass Eingaben nicht direkt auf die Datenbanktabelle, sondern nur auf das temporäre Abbild dieser Tabelle wirken.
Dem ist nicht so.
Hier ein einfaches Beispiel zum nachvollziehen (auch zum Download »Page50000.txt«):
Wir nehmen eine Page vom Typ »Card« auf Basis der Tabelle »Customer«, setzen die Spalten »No.«, »Name« und »Name 2« in das Layout und setzen »SourceTableTemporary« auf »Yes«.
Im Trigger »OnOpenPage« lesen wir den allseits bekannten Debitor aus der Datenbanktabelle und fügen ihn in unsere vermeintlich temporäre Tabelle ein. Das ist schon alles.
Jetzt die Page starten und Name oder Name 2 ändern, und Sie werden feststellen, dass jede Änderung nicht temporär stattfindet, sondern auf die Datenbanktabelle durchschlägt.
Epilog: Nachdem ich dieses Verhalten zunächst für ein neues Feature von NAV 2018 gehalten habe, habe ich die gleiche Page mit NAV 2017 (RTM) und NAV 2016 (RTM) ausprobiert. Das Verhalten ist identisch. Jede Änderung schreibt in die Datenbank.
Ich bin erschüttert. Oder ums es mit Loriot zu sagen, „beim Fußball erkennt man das Ergebnis nach 90 Minuten“.