web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :

Microsoft Visual Studio nutzen, um im Microsoft Dynamics NAV RTC zu debuggen

German NAV Developer Team Profile Picture German NAV Develope... 1,081

Manchmal ist es notwendig auch den Code einer Page zum Beispiel Schritt für Schritt durchzugehen. Genutzt werden kann dazu das Visual Studio mit folgenden einfachen Schritten. In der CustomSettings.config muss das Debuggen aktiviert werden, indem „EnableDebugging“ von „false“ auf „true“ geändert wird.

<add key="EnableDebugging" value="true"></add>

1. Der Service muss nun neu gestartet werden.

2. Ebenso muss der RTC neu gestartet werden.

Der erste Start des RTC wird nun länger dauern, da im Verzeichnis

C:\ProgramData\Microsoft\Microsoft Dynamics NAV\60\Server\MicrosoftDynamicsNavServer\source

für jedes Objekt eine Code Datei im C# Format angelegt wird. In diesem Beispiel wollen wir Code in der Page18 Schritt für Schritt durchgehen. Dafür öffnen wir die entsprechende Datei im Visual Studio die wir später Debuggen wollen. Dafür muss das Visual Studio schon mit Administratorrechten gestartet worden sein.

clip_image002

In den Kommentaren sind die C/AL Kommandos angegeben und darunter der entsprechende C# Code. So ist der Code auch für C/AL Entwickler lesbar und die entsprechenden Code Stellen können in der Entwicklungsumgebung von Microsoft Dynamics NAV auch einfach gefunden werden. Ich habe nun Beispielhaft in der Page30 eine Zeile angefügt und möchte, dass der Debugger genau an der Stelle startet, wenn in der Page der Code ausgeführt wird. Hier im OnValidate() der Beschreibung. Im Visual Studio kann ich mit „F9“ einen Haltepunkt setzen:

clip_image003

Die Zeile wird nun rot markiert. Jetzt muss Visual Studio noch wissen, welches Programm überhaupt Untersucht werden soll. Dazu muss der laufende Prozess des RTCs mit Visual Studio verbunden werden. Wichtig ist, das Visual Studio dazu vorher als Administrator gestartet worden ist, sonst wird dies automatisch beim Auswählen des Prozesses nachgeholt – allerdings muss die Source Code Datei neu geöffnet werden und auch das „Attach to Process…“ muss neu aufgeführt werden.

clip_image004

In der Übersicht den Prozess vom Client wählen: Microsoft.Dynamics.Nav.Server.exe und

clip_image005

mit „Attach“ bestätigen. Laufen mehrere NAV Server, natürlich den richtigen auswählen.

Jetzt im RTC das entsprechende Objekt öffnen:

clip_image007

Ändere ich nun in der Beschreibung den Text, greift der Code, den ich in den OnValidate() Trigger platziert habe:

clip_image008

Und der Debugger springt an meine markierte Stelle und ich kann mir die Belegung der Variablen anschauen und mit F11 / F10 durch den Code steppen. Lasse ich mir zu viel Zeit, meldet sich der RTC mit einer Timeout Meldung, ich kann dort jedoch einfach bestätigen, dass er es doch bitte weiter versuchen soll und kann „normal“ weiter arbeiten. Springe ich im Debugger von einem Objekt in ein anderes, zum Beispiel durch einen Funktionsaufruf, so wird automatisch die richtige Source Code Datei geöffnet. Mit F5 kann ich den normalen Ablauf wieder starten.

Die Informationen im Debugger sind sehr ausführlich, wie man zum Beispiel an der Variable unten im „Watch“ sehen kann, wo ich eine Buchblattzeile aus der Codeunit 12 eingefügt habe.

clip_image010

 

Herzliche Grüsse,

Andreas Günther
EMEA Customer Support & Services - SMS&P

Comments

*This post is locked for comments