As a follow up to my previous post, we are happy to announce that, from build 32942, the hotfix releases will detect if objects need to be recompiled and prompt you to recompile accordingly. This will happen when importing incompatible fobs files or when applying new platform hotfixes.
If you try to import fob files from previous (or possibly also newer versions), or if you export them from newer builds (32942 and newer) and back to NAV 2009 R2 or newer versions (up to build 32942), the system will detect that the metadata is incompatible and force a recompilation when imported. The same detection will happen if you apply a hotfix to your system, and your objects need to be recompiled.
In the future, the metadata version (which is now in the Object Metadata table in field 27) will be updated if a compilation will be needed after applying a hotfix, not making it necessary always to re-compile the objects every time you apply a new hotfix (and preventing the RTC client from losing the connection to the server). The current metadata version is 60300, whereas the R2 runtime metadata version is 60200.
Since we are changing a system table (table 2000000071), we need to do a database conversion. Moreover, since the objects are not recompiled with a database upgrade, you also need to recompile the objects that you need. The nice feature now, is that the RTC will prompt you on demand to recompile the objects that need recompilation (basically, the ones you use).
With NAV 2009 R2 it is now possible to set how many XML records to send to RoleTailored Client (RTC), bypassing the previous hardcoded limitation of 5000 records.
This could be done by installing platform hotfix KB 2492490 Build no. 32146 or higher.
I just would like to explain how this Hotfix works in short.
In order to bypass the previous hardcoded limit of 5000 Max no. of xml records to send, after installing the aforementioned platform hotfix or higher, you have to set a key like that on every RTC Client machine in the ClientUsersSettings.config file
<add key="MaxNoOfXMLRecordsToSend" value="integerValue" />
(where integerValue is an integer value that represents the max number of xml records to send when using the Export to Microsoft Office feature)
Since the Classic Client handles this value directly from the IDE changing “Max. no. of XML records to send” property from Tools > Options, I have been requested if there is a more flexible way to manage this key in the ClientUsersSettings.config file.
I have then tried, in this blog, to mimic what Classic Client does and developed a simple page and codeunit to let the user change dynamically the value for this key and if the key is not present, by adding it directly to the ClientUsersSettings.config file with the desired value (this would also make the Hotfix deployment faster).
The code in the attached .txt file is quite simple and is based on .NET interoperability using the following:
These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.
Duilio Tacconi (dtacconi)
Microsoft Dynamics Italy
Microsoft Customer Service and Support (CSS) EMEA
A special thanks to Jorge Alberto Torres - DK-MBS NAV Development
If you have recently applied a new hotfix and start running the RTC right away, your RTC client might eventually get disconnected, and a new log on the service tier host machine can appear stating that a new Exception of type “System.ArgumentNullException” has been raised. This can usually happens if you were trying to run a report that was last compiled with the pre hotfix version, and you have not recompiled it after applying the new hotfix bits.
This issue appears because the hotfix runtime has a different signature from what is expected from the previously compiled code and therefore, the .Net runtime will complain that it is not possible to execute the code (which is indeed true).
To resolve this issue, simply recompile the objects in question. It is strongly recommended to re-compile all objects after applying a new hotfix to prevent this from happening (this is especially true if you are applying a hotfix with a build number bigger than 32657).
The general issue will be resolved in an upcoming hotfix, so that the runtime itself will detect if a recompilation is needed, and a message will appear on the RTC stating which object type and number needs the recompilation (and obviously the client will not get disconnected), but until then, please recompile the objects.
The new Create PDF functionality is available as an option on the Print button on any report request page that prints through the Role Tailored Client once the associated hotfix (KB 2628466) has been installed. Since this feature was added at the executable level, there is no code that needs to be added to each report to get this new functionality.
This functionality automatically enables the ability to have the report be printed as an Adobe Portable Document Format (PDF) document on the Microsoft Dynamics NAV 2009 server and then be downloaded to the RoleTailored client (RTC). The first time you execute this functionality you may be prompted with a dialog box asking you to Open/Save/Cancel the document with the option to "Always ask before opening this type of file.". If you uncheck the option then you will no longer be prompted to Open/Save/Cancel the PDF file.
Once you open the PDF file and assuming that Adobe Acrobat has previously been installed, then the PDF document will be automaticaly rendered. From this point, you can either save or print the document or print to the desired printer.
This is related with How to work with "Warning icons" in Planning Worksheet
Here, we have an scenario where NAV does not respect order modifiers (maximum/multiple/minimum order quantity) when there are exceptions. As we mentioned in earlier post, exceptions are ... exceptions!!! Yeah, I know you might have an issue but, isn't this a situation that should occur exceptionally in your customer? If for whatever reason, these are not exceptions, you might have an issue with your planning parameters. When NAV flags the Warning Icon, it means there are exceptional situations like negative inventory, stock below safety stock, ...
The issue here is that customers treat all these scenarios differently. If we have the inventory level below safety stock, one customer might wait for the next planned replenishment to increase the ordered quantity. Other customers might create an urgent replenishment for the required quantity regardless of order modifiers since safety stock should not be rounded with order modifiers (it increases safety level in fact) ... Or ... whatever. Exceptions are treated differently. We mentioned this on that previous blog. What we also mentioned is that NAV design does not activate the "Accept Action Message" flag when this is an exception. What this means is that NAV is not suggesting a replenishment. It just warns the user of this exceptional situation for the user to take decission on how to address this. Thus, it should only be understood as NAV warning you that an exceptional situation exists.
And, that is why NAV does not respect order modifiers. It only warns the user about an exception situation (ie. inventory level is 20 pcs below safety stock). It does not suggest the user to replenish (ie. it does not suggest to replenish 20 pcs). Thus, user need to decide what is the best to address this exception ... and to consider order modifiers if required.
As stated, different customers treat exceptions differently. From a standard code, it is true we are not taking into consideration the order modifiers ... but this is an exception and should not occur but in very rare times. Thus, we need to manage customer in the fact that this should not happen to them frequently and that we are not suggesting anything ... we are only flaging the exceptional scenario for the user to decide action to take.
When the Microsoft Dynamics NAV 2009 Application Server (NAS) runs under the Network Service account, the NAS may to try to repeatedly restart. In this situation, the restarts of the NAS consume user sessions. Eventually, this will cause the users to receive the following error message when they log on to the system ...
"Your program license does not permit more users to work simultaneously. Wait until another user has stopped using the program. Contact your system administrator if you want to allow more simultaneous users on your system."
This problem occurs in the following products:
The issue is caused by a change in the operating system between Microsoft Windows Server 2003 and Microsoft Windows Server 2008 with regards to how security accounts are viewed. The easiest way to correct this issue is to change the NAS service login from NT Authority\NetworkService to a Domain Account. Once the service login account is changed and the NAS is restarted the NAS will only consume one user session as expected.
I want to describe few tips about filters usage in Dynamics NAV RTC. This can be useful for users who worked with classic client and came to RTC.
In Dynamics NAV Classic Client we can construct filters in filters window using following operators:
< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to
<> Different from
* Forms a part of value
Let’s say for example we want to find item in item list ending with “Front” then can construct filter on description: *front
And we have results
Now try the same in RTC. In RTC we have “Filter Pane” and we don’t need to call filter window. So here we just change filter field to description and ad the same filter value:*front
But wow, result is different:
It also includes items which starts with ‘front’ and even has ‘front’ in the middle of description.
What is wrong? Nothing, this is feature of RTC filters: whatever we add to this filter, it will be translated to string by adding ‘@’ in front and ‘*’ in end. So our filter string ‘*front’ becomes ‘@*front*’ and RTC filters for any description includes ‘front’ in upper or lower case.
We can see this transformation if open “About this page” filter section:
If we know this feature, then we can use it very smart: if we know how description starts, we just type begin of it without any filter operators and we have all description, which begins with this string, filtered. Fast work, is it?
But what to do if we really want to filter only descriptions which end with ‘front’. Then we have 2 options:1. Use apostrophes for filter string for example enter “ ‘*front’ ” instead of “ *front ”, then RTC filter exactly on this string:
or1. Expand Filter Pane and filter on exactly what we want:
That’s all what I want to say.
Ps. If you have question “why I filter on ‘front’, but results always includes ‘Front’”, then answer is: my db SQL collation is not cases sensitive, so SQL doesn’t see difference here and shows upper and lower case values.
Microsoft LithuaniaMicrosoft Customer Service and Support (CSS) EMEA
Visit the new Microsoft Blog on the Directions EMEA web site. Hear the latest Microsoft Dynamics NAV news, comments, and opinions from Dan Brown and Paul White – together “The Beige Blog”; ww.directionsemea.com/Blogs/The_Beige_Blog.htm.
The registration for Directions EMEA is open now at www.directionsemea.com. The conference takes place April 25-27 in Rome and is the largest Microsoft Dynamics NAV conference for partners organized by partners! Early Bird discounts are available. Read more about the event in Paul White’s introduction on “The Beige Blog” here: http://www.directionsemea.com/Blogs/The_Beige_Blog/2011/11/Microsoft_Dynamics_NAV__7__pre-release.htm.