Bodo's Dynamics NAV Blog
Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet. In diesem Blog veröffentlicht Bodo von Zeit zu Zeit technische Kabinettstückchen aus der Welt von Dynamics NAV und .NET.NAV 2009 – Funktion FORMAT, Datentyp OPTION und unterschiedliches Verhalten von Classic Client und Role Tailored Client
Der folgende Quellcode erscheint auf den ersten Blick unverdächtig, führt allerdings bei der Ausführung über den NAV Server, d.h. über den Role Tailored Client oder über einen Web Service, zu einer Fehlermeldung:

Kurze Erläuterung des Quellcodes: Wir nehmen eine Variable SalesHeader vom Typ Record der Tabelle 36, setzen den Status auf „Freigegeben“, lesen anschließend diesen Status über die Datentypen RecordRef und FieldRef wieder aus, weisen den Wert der Variable OptionNo vom Typ Integer zu und zeigen das Ergebnis an.
Leider fliegt Ihnen eine Fehlermeldung um die Ohren, wenn Sie diesen Code über den Role Tailored Client (oder über einen Web Service) ausführen:

Wo liegt das Problem? Der Ausdruck „FORMAT(FldRef.VALUE)“ liefert den Wert „Freigegeben“ also den OptionCaption zurück. Darüber kann man sich wundern. Dynamics NAV Versionen vor 2009 und der Classic Client von NAV 2009 liefern für den gleichen Ausdruck den Index der Option zurück. Das können Sie einfach testen, in dem Sie den Quellcode oben über den Classic Client ausführen:

Dieses Problem ist bei Microsoft bekannt und unter der Bug-ID 208030 registriert. Es soll mit einem Hotfix für Dynamics NAV 2009 SP1 bzw. R2 behoben werden. Sobald dieser Hotfix verfügbar ist, werde ich einen entsprechenden Link an dieser Stelle veröffentlichen.
Als Workaround bis zur Veröffentlichung des Hotfix müssen Sie die Zeile „EVALUATE(OptionNo, FORMAT(FldRef.VALUE));“ durch „OptionNo := FldRef.VALUE;“ ersetzen. Die implizite Typumwandlung führt in beiden Welten zum gleichen Ergebnis.
Mein besonderer Dank gilt Tobias. Wenn er mir nicht den Tipp gegeben hätte, das Änderungsprotokoll auszuschalten, würde ich wahrscheinlich heute noch nach dem Fehler suchen. In Codeunit 423 Change Log Management ist mit Dynamics NAV 2009 genau der oben beschriebene Workaround von Microsoft eingebaut worden. Nur leider war unser Quellcode noch auf Basis von Version 4…

Neueste Einträge
- Dynamics NAV und das Ausdrucken externer Dateien
- Fehlende Icons in der Toolbar der Seitenansicht für die Berichte
- Dynamics NAV Web Services und die Reihenfolge der Ereignistrigger
- Der Unterschied zwischen den Sicherheitsmodellen Standard und Enhanced
- NAV 2009 R2 – Login-Dialog für den Role Tailored Client
- [UPDATE] NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client
- NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client
- NAV 2009 – Security Filter, Buchungsdatum und Rec.READPERMISSION
- NAV 2009 – Funktion FORMAT, Datentyp OPTION und unterschiedliches Verhalten von Classic Client und Role Tailored Client
- NAV 2009 – Quellcode des Transformation Tools veröffentlicht
- NAV 2009 – Copy & Paste und böse Zeichen in Text- und Code-Feldern
- NAV 2009 – Unerwartetes Verhalten von Codeunit.RUN
- NAV 2009 – Notizen und Benachrichtigungen an Active Directory Gruppen
- NAV 2009 – Interner Fehler 12 in Modul 40
- NAV 2009 Form Transformation – Wo sind die deutschen (DEU) Captions hin?
- NAV 2009 und die Frage, warum die Anzahl der Inforegister PAGE.RUNMODAL beeinflusst
- NAV 2009 Web Services und das Geheimnis der Extension Codeunits
- Der NAV-Client zeigt in der Übersicht der aktiven Sessions nur die eigene Session an
- Der NAV-Client versucht, eine externe Komponente auszuführen
Nach Datum
Tag Cloud
2009 active directory add-in addin ascii bericht buchungsdatum caption classic codeunit copy drucken enhanced export extension form format gdpdu icons inforegister ldap login nav option page paste pdf r2 readpermission reihenfolge report rtc run runmodal securtiy service princial name session sicherheit sicherheitsmodelle spn sqlserver standard toolbar transformation transformation tool trigger webservices übersicht

