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 – 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:

blog-2018-08-27-image1.png

»OnModify« wiederum ermittelt den zugehörigen »Contact«, kopiert die Daten von »Customer« um, und ruft dann »OnModify« der Tabelle »Contact« auf:

blog-2018-08-27-image2.png

Und »OnModify« der Tabelle »Contact« delegiert die Verarbeitung an Codeunit 5055 »CustBankVend-Update« weiter. 

blog-2018-08-27-image3.png

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.

blog-2018-08-27-image4.png

(*) Frei nach Hamlet von William Shakespeare, https://de.wikipedia.org/wiki/Sein_oder_Nichtsein,_das_ist_hier_die_Frage

 

 


Mitglied der Dynamics NAV
Community

Microsoft Dynamics NAV community Comporsys 365 - Cloud ERP powered by Dynamics NAV
Comporsys 365 - Cloud ERP
powered by Dynamics NAV


Kontakt

Comporsys Hansa GmbH
Schulauer Moorweg 25
22880 Wedel, Deutschland

Tel. +49 (0)4103 12117 - 0
Fax +49 (0)4103 12117 - 29
E-Mail: info@comporsys.de