In Dynamics NAV reports we use SetData and GetData functions to retrieve data certain data in page headers and footers due to different scopes. In this blog post I’m not going to explain why and how but I’m going to give links to some good posts that does it at the bottom this post. Instead I’m going to give you a tip on how to make the process of adding/finding which data that has a certain index in the SetData function call by using line numbers.
Dynamics NAV 2009 R2: DotNet System.String
If you are having the need to use DotNet in an older client such as Dynamics NAV 2009 R2 you will problably run into troubles which they have fixed for later versions of Dynamics NAV. I had the problem that I tried to downgrade code using the DotNet type System.String. I didn’t get very far until the compiler started to complain…
Dynamics NAV: How To Run Tables From RTC (Role Tailored Client)
In the classic version we could run tables straight from the object designer and the object designer was always included in the client. In the Role Tailored Client (RTC) however we don’t have an object designer. Instead it is located in the developement environment. But sometimes you need to run a table but you don’t have access to the development environment (end user computer, ClickOnce and so on..).
So what to do then?
Dynamics NAV: How To Run Objects From RTC (Role Tailored Client)
In the pre RTC versions of Dynamics NAV it was really simple to run/view objects from the client. Nowadays when we are using RTC it is not quite that simple since by standard we don’t have object designer in RTC (Role Tailored Client). At least yet 🙂
But there is a trick that you can use to achieve this. You need to create a page on the table object. After that add a button that runs the current record. Microsoft described this a couple of years ago in a blog post (How to start any object in Role Tailored Client)
But how about tables and querys?
Dynamics NAV: Field List
The last couple of years I have started to use an new trick to make my everyday life with Dynamics NAV easier.
Usually I have the problems like this:
- How do I easy see all the locations of a certain field name in the database?
- How can I quick look up a datatype for a certain field?
- How can I quick see if a field is a flowfield?
- How can I search on database fields using captions?
For me the solution became to make a page on the virtual table field (How to: Create a Page to View a Virtual Table).This is real handy when you have an addon table with 355 fields were the captions don’t really match the field names.
XMLPort: Import Into Temporary Table
Earlier today I wrote a blog post XMLPort: Export from temporary tables. The principle is the same when you want to import to a temporary table. Instead of calling a function in XMLPort before you call the export that inserts values into the temporary table you do the opposite, call a function after the import has completed that copies all the temporary data to your temporary record parameter. Read the rest of this entry »
XMLPort: Export from temporary tables
You can export data from tables to XML by using XMLPorts. But you can also use XMLPorts to export data from temporary tables.
The principle is to set the Temporary property on the table line and then create a function in XMLPort that inserts all the data into the temporary record.
Dynamics NAV System.StackOverflowException: NST crashes
We had this scenario were had new update of a partner addon that we should implement in the production environment. Before the implementation we had done a couple of tests to verify that the addon was working. But on the day we put update in the production environment the NST (NAV Service Tier) started to crash after 1,5h and continued to crash every five minutes. It was really bad, we had no clue about what was causing this except that it must come from the update. It was actually so bad that we decided to do a rollback by restoring a SQL backup.
When we looked in the eventviewer and we found three event that tells us about the crash.
The first one says:
Faulting application name: Microsoft.Dynamics.Nav.Server.exe, version: 8.0.38457.0, time stamp: 0x5452bd3b
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc00000fd
Fault offset: 0x00007ffbcab200d7
Faulting process id: 0x31bc
Faulting application start time: 0x01d0a33d1cface2b
Faulting application path: C:\Program Files\Microsoft Dynamics NAV\80\Service\Microsoft.Dynamics.Nav.Server.exe
Faulting module path: unknown
Report Id: a4e43f71-0f30-11e5-80c8-0050569da38d
Faulting package full name:
Faulting package-relative application ID:
The second and the third message from the source “Windows Error Reporting” gave the error message:
Fault bucket , type 0
Event Name: CLR20r3
Response: Not available
Cab Id: 0
Problem signature:
P1: Microsoft.Dynamics.Nav.Server
P2: 8.0.38457.0
P3: 5452bd3b
P4: RecordXXXXX
P5: 0.0.0.0
P6: 5577c927
P7: 4
P8: 0
P9: System.StackOverflowException
P10:
Attached files:
These files may be available here:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_Microsoft.Dynami_XXXX
Analysis symbol:
Rechecking for solution: 0
Report Id: a4e43f71-0f30-11e5-80c8-0050569da38d
Report Status: 4100
The interesting part of this message is P4 and P9. Here we can see that error appears in recordXXXXX and that it is a System.StackOverflowException.
System.StackOverflowException is: “The exception that is thrown when the execution stack overflows because it contains too many nested method calls. This class cannot be inherited.”
After a lot of more testing we finally found the error. The reason was that we had a loop of infinity. We had function1 that called a function2 that in its turn called function1. A loop that never stops. This code was originally run from a OnValidate trigger in recordXXXXX. So to summarize this, look for a loop of infinity in the object that was stated in P4.
I hope this help you solve the problem. Good luck!
Dynamics NAV ClickOnce: Failed while downloading…
If you try to install your ClickOnce application and get errors like this I’ll show you what Microsoft recomends you to do:
SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://xxx.xxx.xxx.xxx/App.application resulted in exception. Following failure messages were detected:
+ Failed while downloading http://xxx.xxx.xxx.xxx/App.exe.manifest
+ The remote server returned an error: (404) Not Found.
Your problem is probably that your deployment contain files that the webserver (if a webserver installation) doesn’t support download. The fix is to change the mime types to the current webserver. Read the rest of this entry »
Net.TCP Port Sharing: Dynamics NAV 2015 and Azure
If you come from the Dynamics NAV community you probably have seen the blog post from one of my favorite bloggers: Port Sharing with NAV2013. This blog describes in detail on how to set up port sharing to several NAV service tiers (NST).
So what is new then? If you run the 1VM/2VM script it will by default install a NST service with a local user account instead of using one of the system accounts. So if you follow Waldo´s instructions on how activate port sharing you will get an error like this:
The service MicrosoftDynamicsNavServer$DynamicsNAV80_Instance1 failed to start. This could be caused by a configuration error. Detailed error information:System.ServiceModel.CommunicationException: The service endpoint failed to listen on the URI ‘net.tcp://SERVERNAME:9001/DynamicsNAV80_Instance1/Service’ because access was denied. Verify that the current user is granted access in the appropriate allowAccounts section of SMSvcHost.exe.config. —> System.ComponentModel.Win32Exception: Access is denied
at System.ServiceModel.Activation.SharedMemory.Read(String name, String& content)