Nachdem ich einen alten, aber interessanten Beitrag über temporäre Tabellen in Microsoft Dynamics NAV auf Vjeko.com gelesen hatte, kam ich zum Schluss, es wäre eine gute Idee, eine Tabelle mit Beispielen für alle Kombinationen zu haben: "temporär-physisch" und "nach Referenz - nach Wert", um zu sehen, wie es praktisch funktioniert. Deshalb habe ich zwei Codeunits erstellt und eine einfache Funktion ausgeführt. Die Parametereigenschaften wurden entsprechend angepasst. Die Ergebnisse sind in der folgenden Tabelle zu finden. Alle Tests wurden in Microsoft Dynamics NAV 8.0 durchgeführt.
Codeunit 99001 hat die folgenden Variablen:
und der Kode:
// Case Cust1 is TEMP
Cust1."No.":='1';
Cust1.INSERT;
// Case Cust1 is PHYS
{
Cust1.SETFILTER("No.",'6*');
Cust1.FINDFIRST;
}
MESSAGE('Message1: %1 (%2)',Cust1.COUNT,Cust1."No.");
Function2.Function2(Cust1);
See the code here:
Codeunit 99002 hat eine Funktion 'Function2' mit zwei Parametern:
See the code here:
Nun werden wir mit "temporären" Parameter von der Variablen 'Cust1' und 'Cust2' spielen, um zu sehen, welche Informationen an die Funktion 2 zurückgegeben werden.
Die Meldungen Message1 / Message2 zeigt die folgenden Informationen an: Cust1.COUNT (Cust1."No.") / Cust2.COUNT (Cust2."No.")
Die Codeunit 99001 | übergibt von Cust1 nach Cust2 | in der Codeunit 99002 | Message1 / Message2 |
Cust1 = TEMP | by Value | Cust2 = TEMP | 1 (1) / 1 (1) |
Cust1 = TEMP | by Value | Cust2 = PHYS | 1 (1) / 69 (01121212) |
Cust1 = PHYS | by Value | Cust2 = TEMP | 3 (60000) / 1 (60000) |
Cust1 = PHYS | by Value | Cust2 = PHYS | 3 (60000) / Record exists. |
Cust1 = TEMP | by Reference | Cust2 = TEMP | 1 (1) / Record exists. |
Cust1 = TEMP | by Reference | Cust2 = PHYS | 1 (1) / Record exists. |
Cust1 = PHYS | by Reference | Cust2 = TEMP | 3 (60000) / Record exists. |
Cust1 = PHYS | by Reference | Cust2 = PHYS | 3 (60000) / Record exists. |
Also, was passiert in jedem Szenario:
Dynamics NAV TM Entwickler und Berater Konrad Buczkowski