TECHNISCHER BLOG

Eine Tabelle mehr in der Diskussion über temporäre Tabellen
 

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.

Voraussetzungen
 
Die physische Tabelle Nr. 18 (Customer) enthält 68 Datensätze und 3 davon passen zum Filter '6*' im Feld "No.".
Der erste Datensatz im Filter '6*' hat einen Wert 60000 im Feld "No.".
Der erste Datensatz in der Tabelle Nr. 18 hat einen Wert 01121212 im Feld "No.".

Codeunit 99001 hat die folgenden Variablen:

 
Name: Cust1; Type: Record; Subtype: Customer
Name: Function2; Type: Codeunit; Subtype: Function 2

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:

 
Name: Cust2; DataType: Record; Subtype: Customer.
 
und der Kode:
 
Cust2.INSERT;
Cust2.RESET;
Cust2.FINDFIRST;
MESSAGE('Message2: %1 (%2)',Cust2.COUNT,Cust2."No.");

See the code here:

Logik
  • Die Function1 entweder ruft Datensätze aus der physischen Tabelle auf oder speichert einen Datensatz in der temporären Tabelle "Cust1".
  • Danach wird der aktuelle Datensatz als Parameter an die Funktion 2 übergegeben.
  • Die Funktion 2 versucht, einen neuen Datensatz in die Tabelle einzufügen.
  • Am Ende werden die Ergebnisse in Meldungsdialogen angezeigt.

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.

Ergebnistabelle

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:

  • Der Fall 1 - Ein erfolgreicher Eintrag von der temporären in die temporäre Tabelle.
  • Der Fall 2 - Ein erfolgreicher Eintrag von der temporären in die physische Tabelle.
  • Der Fall 3 - Ein erfolgreicher Eintrag von der physischen in die temporäre Tabelle.
  • Der Fall 4 - Ein Versuch, einen doppelten Eintrag von physischer Tabelle zu physischer Tabelle einzufügen.
  • Der Fall 5 & 6 - Ein Versuch, einen duplizierten Datensatz von der temporären in die temporäre Tabelle einzufügen.
  • Die Fälle 7 & 8 - Ein Versuch, einen duplizierten Datensatz von der physischen in die physische Tabelle einzufügen.

Dynamics NAV TM Entwickler und Berater  View Konrad Buczkowski's LinkedIn profile Konrad Buczkowski

Wir verwenden Cookies
Einige von ihnen sind essenziell (z.B. speichern von gewählten Optionen des Lizenzrechners), während andere uns helfen unsere Website bei Werbung zu analysieren. Sie können dies akzeptieren oder ablehnen sowie diese Einstellungen jederzeit aufrufen und Cookies auch nachträglich abwählen (im Fußbereich unserer Website unter "Cookies Einrichtung"). Nähere Hinweise in unserer Datenschutzerklärung.
Individuelle Cookie Einstellungen
Notwendig ( 3 / 3 )
Notwendige Cookies helfen dabei, eine Webseite nutzbar zu machen, indem sie Grundfunktionen wie Seitennavigation und Zugriff auf sichere Bereiche der Webseite ermöglichen. Die Webseite kann ohne diese Cookies nicht richtig funktionieren.
v
Details in dieser Gruppe einblendenDetails in dieser Gruppe ausblenden
  • AkzeptiertNameKonfigurierungscookieAnbieterseccount.comZweckSpeichert vom Besucher in einem Feld ausgewählte Einstellungen.Cookie Namemod_cookies_125Cookie Laufzeit1 Jahr
  • AkzeptiertNameSessionAnbieterSeccount.comZweckCookies, die für die Sessionsitzung auf der Website verantwortlich sind.Cookie Names81a877_vv, s81a877_verify, s81a877, s81a877_v, c_verifyCookie Laufzeit1 Tag, Session
  • AkzeptiertNameCookiesAnbieterSeccount.comZweckCookies, die die Verwendung von Cookies bestätigen.Cookie Namec_verifyCookie Laufzeit38 Monate
Statistiken ( 1 / 1 )
Statistik-Cookies helfen Webseiten-Besitzern zu verstehen, wie Besucher mit Webseiten interagieren, indem Informationen anonym gesammelt und gemeldet werden.
v
Details in dieser Gruppe einblendenDetails in dieser Gruppe ausblenden
  • AkzeptiertNameGoogle AnalyticsAnbieterGoogle LLCZweckRegistriert eine eindeutige ID, die verwendet wird, um statistische Daten dazu, wie der Besucher die Website nutzt, zu generieren.Datenschutzerklärunghttps://policies.google.com/privacyCookie Name_ga,_gat,_gidCookie Laufzeit24 Monate
aaa1604053742