text: Dynamics NAV 2018 – Temporär oder nicht temporär, das ist hier die Frage (*) » Dynamics 365 Business Central Superhelden - Comporsys
  Dynamics NAV 2018 – Temporär oder nicht temporär, das ist hier die Frage (*)
  Verfasst von Bodo am Montag, 27. August 2018
  Tags: trigger, bug, 2018
  Nach dem ich letzte Woche an der Funktionsweise der Page-Eigenschaft »SourceTableTemporary« gezweifelt habe, ist der Glaube zurückgekehrt.
  Die Page-Eigenschaft »SourceTableTemporary« funktioniert einwandfrei. Sie sorgt dafür, dass Änderungen am Record-Inhalt nicht in die Datenbanktabelle geschrieben werden, sondern nur in das temporäre Abbild der Tabelle.
  Allerdings darf man eines nicht vergessen. Die Page führt alle Ereignistrigger wie z.B. »OnInsert«, »OnModify« oder »OnDelete« aus. Die dort vorhandene Programmierung arbeitet eventuell mit der gleichen Datenbanktabelle, die dann unter Umständen nicht temporär ist.
  Nehmen wir das konkrete Beispiel von letzter Woche. Bei der Tabelle »Customer« findet man unter »OnModify« den unten abgebildeten Quellcode. Es wird die Funktion »OnModify« der Codeunit 5056 »CustCont-Update« aufgerufen und der (temporäre) »Customer« übergeben:
  »OnModify« wiederum ermittelt den zugehörigen »Contact«, kopiert die Daten von »Customer« um, und ruft dann »OnModify« der Tabelle »Contact« auf:
  Und »OnModify« der Tabelle »Contact« delegiert die Verarbeitung an Codeunit 5055 »CustBankVend-Update« weiter.
  Und nun sind wir geplatzt. Die Funktion »UpdateCustomer« macht ein »GET«, um »Customer« zu lesen. Ab jetzt sind wir nicht mehr temporär, sondern persistent auf Tabelle »Customer«. D.h., das anschließende umkopieren der Daten von »Contact« und der »MODIFY« sorgen dafür, dass temporär gemeinte Änderungen bis auf die Datenbank durchschlagen.
  (*) Frei nach Hamlet von William Shakespeare, https://de.wikipedia.org/wiki/Sein_oder_Nichtsein,_das_ist_hier_die_Frage