NAV 5.0 just for Group 1 countries?

Based on MS info the NAV 5.0 will be localized and released just for countries in Group 1. For other countries only the NAV 5.1 (including NAV 5.0) will be released!

 This is big disappointment for me, because it means that all companies in Gr2 and Gr3 will have new version one year after Gr1. This market will be one year behind others and partners will have difficulties with managing that. It will be hard to explain to customer that the version we were talking about that will be released in 2007 will be one year later. I recommend to all who are in Gr2 and Gr3 to use WW1 version for preparing their products for the next version. But yes, this means BIG OUTRAGE for all of us outside the Gr1 countries. MS wants to save money? Or it is too big job for them to localize two versions in one year? (but it is not really localization of two versions, 5.1 is still 5.0 + new client. It means, if 5.0 is localized, just few things must be localized for 5.1). Nobody knows, but it seems that this decision was made and there is no way back…[:@]

 UPDATE (27.1.2007): It seems like Gr1 and part of Gr2 will be localized. On the NAV 5.0 release page are prepared links for these countries:

AT – Austria GR2B
AU – Australia GR1
BE – Belgium GR2B
CA – Canada GR1
CH – Switzerland GR2C
DE – Germany GR1
DK – Denmark GR1
ES – Spain GR1
FR – France GR1
IE – Ireland GR1
IT – Italy GR1
NL – Netherlands GR1
NO – Norway GR2A
NZ – New Zealand GR1
SE – Sweden GR2A
UK – United Kingdom GR1
US – United States GR1

we will see…


NAV 5.0 Preview – Part 3 – Export to external application

Today I will try to show you one new cool feature of NAV 5.0 for end-users. NAV 5.0 is able to export any form into XML and using XSLT (template, stylesheet, transformation – you can name it in different ways) can be this XML transformed into another XML. And because MS Word and MS Excel is able to open documents defined in XML, you can create Word and Excel documents in this way (and for any other application).

How it is working

On the toolbar there are three new shortcuts, which can be used in any time when you have some form opened (Last three shortcuts on the picture, behind the watermark).

NAV 5.0 Toolbar

For example, when you open the G/L Account card, and you click on the first shortcut (Word), you will get the Word document with all data accessible on the G/L Account card.

NAV 5.0 G/L Account cardNAV 5.0 MS Word document with G/L Account card

In this Word document, there are all tabs from the form and all controls from these tabs. If you use the second shortcut (Excel), you will get slightly different result:

NAV 5.0 G/L Account exported to Excel

Each tab has own Sheet, but there are same data like in the MS Word. In both applications you can open the original NAV form through clicking on the title in exported document. It means that this document is still “linked” with the original and you don’t need to search in NAV for the original form and record.

This was example of using defualt template, which is usable for all forms. But you can attach new templates for specific NAV form and than the user can select this template for exporting within template selection form (third shortcut). In the demo DB there are templates for Customer letter (on Customer card), Contact letter (on Contact card), Vendor letter (on Vendor card) and Sales Quote (on Sales quote card) and Sales Order Confirmation (on Sales order card).

NAV 5.0 Customer letter in MS WordNAV 5.0 Sales Order confirmation in MS Word

You can see that the result can include additional data that are not part of the form in NAV (e.g. Company name, Payment terms description etc.). It means that the result can be complex and you do not need to include all data on the form just because you need to export it.

What is behind

From designer point of view is this feature very complex. Developer needs to understand XML, XSLT and target application XML. If you want to customize this feature, you have two possibilities. You can change the functions in CU1 which are used for this export (you can change how it transforms the data, which template is selected etc.), or you can modify or create own XSLT template (you can change the result of the transformation).NAV 5.0 CU1 new functions

 In the functions, when exporting some form, the XML with description of this form is passed into function which will apply the transformation from selected XSLT template, and the result is sent into the application itself. On the screenshot of the Data XML (the XML describing the form) you can see that all controls are included with some informations. From position or size is there just the width of the control (if you change width of column on the form, the excel column in exported document will have similar width)

.NAV 5.0 Form data XML

In the example there are data from Sales order card form. There is header tab control, line subform, Info panel frame etc. This XML file than can be transformed through XSLT file. Result of this transformation can look like this:

 NAV 5.0 resulting Word XML document

On the screenshot is part of the Sales quote XSLT used to transform the XML data into MS Word XML file:

NAV 5.0 Sales quote XSLT 

In the stylesheet you can include other data from NAV into the result (Object/ResponsibilityCenter/Name, Object/CompanyInfo/Name) without being part of the source XML file describing the form. I do not know more info about that (I have no access to this new codeunit yet) but if you can include any data from NAV, this will be very cool tool for creating exports. 

After you prepared some XSLT template, you can import the template into NAV through Stylesheet setup form. You need to select the xslt file, for which application the stylesheet is prepared (which app will be launched, you can add your own), the description and if the template is for all forms or just for selected (depends on which option is selected on the setup card when you run the import).

NAV 5.0 Stylesheet setup formNAV 5.0 Stylesheet setup form

One bigges issue I have with that is, that I am not able to find any user-frendly tool for creating the stylesheet in some visual way (I am novice in XSLT and XML things…). And second thing is that the logo bitmap is part of the stylesheet and it means that you need to customize the stylesheet for each customer. And because I have no good tool  for XSLT, I do not know how I can replace the bitmap in the stylesheet…

 I hope that after documentation for NAV 5.0 is released, I will have more info to be able to create own stylesheet and to work with that like with C/AL and that customization of XSLT will be easy for me.


I do not know what will be in next part now.

 All screenshots you can find in fullsize in my library at

NAV 5.0 Preview – Part 2 – Links

In this part I will describe the new possibility to attach any URL to any record in database. This can be very usefull for connecting the word of documents with data in ERP. There are tools for managing these links through C/AL code (see previous part, the rec.ADDLINK command etc.)

 How it is working

At first, there is new shortcut on the toolbar (Clip). NAV 5.0 Toolbar

Through this shortcut, any user can open form, where you can enter the URL you want (HTTP, Sharepoint, local filesystem, network filesystem, anything you want). From same form you can open attached URL. Count of the atached links is not limited, length of URL can be max.  1000 chars. NAV 5.0 Related links form

For example, you can add scanned Invoice to your purchase order and when the order is posted, the attached links will be copied to Posted Invoice. All users can easilly find and open the document without searching through folders with thousends of files. User can recognize that on actual record are some links in status bar, where is new flag “LINK” near the “FILTER” flag.

NAV 5.0 part of Statusbar

 What is behind

For saving the links new virtual table is used (2000000068 – Record Link). NAV 5.0 Virtual tables

NAV 5.0 Record Link table

As you can see, links are numbered and related to the record through RecordID. Long URLs are splited into 4 fields, with possibility to enter 250 chars of description. The type and BLOB is not used yet, in my opinion the type “Note” and the BLOB “Note” is prepared for version 5.1 for the Work-flow notes. The links can be added, deleted and copied through C/AL commands.


That’s all. It is easy but smart solution. I know that many partners used similar way for attaching the documents, but this solution is much better, because you do not need any change in C/AL code and you can attach the document to any record without customization.


Next part will be about possibility to export any form into Word or Excel and possibility to create templates for this export.

NAV 5.0 Preview – Part 1 – The C/AL

In this article, I will describe you what is new in C/AL and C/Side in Microsoft Dynamics NAV 5.0. It will be brief, but I do not like long texts about nothing. Let’s go!

New C/AL keywords:

  • COMMANDLINE  – Use this function to return a list of the parameters used to start Microsoft Dynamics NAV . The command will return something like “database=xyzco,id=NAV50,NTauthentication=0” – it means all parameters used when starting NAV client.
  • APPLICATIONPATH – Use this function to return the path to the directory where the executable file for Microsoft Dynamics NAV is installed. MAX 255 chars!!!
  • TEMPORARYPATH – Use this function to return the path to the directory where the temporary file for Microsoft Dynamics NAV is installed.
  • ISSERVICETIER – Use this function to find out whether the code you are executing is running on the new Dynamic NAV three-tier architecture or on the old two-tier architectureThis is the first command connected with NAV 5.1 three-tier architecture!
  • VARIABLEACTIVE (Automation) – Use this function to determine if a variable, such as field or a control, is active or inactive. I personally have no idea when I will need that. I am using ISCLEAR now. But may be in the  future…
  • [Ok :=] UPLOADINTOSTREAM(DialogTitle, FromFolder, FromFilter, FromFile, NVInStream) – Not described in on-line help yet. In my opinion it is function prepared for NAV 5.1, for service tier to be able to transfer files between client PC and service-tier (local file for service tier is not anymore local file for client, this will be used in connection with ISSERVICETIER command).
  • [Ok :=] DOWNLOADFROMSTREAM(NVInStream, DialogTitle, ToFolder, ToFilter, ToFile) – see UPLOADINTOSTREAM
  • [Ok :=] UPLOAD(DialogTitle, FromFolder, FromFilter, FromFile, ToFile) – see UPLOADINTOSTREAM
  • [Ok :=] DOWNLOAD(FromFile, DialogTitle, ToFolder, ToFilter, ToFile) – see UPLOADINTOSTREAM
  • KEYGROUPENABLE(Groupname) – Use this function to enable a key group. – Yes, now you can enable and disable keygroups through C/AL code.E.g. you can use it in report running once per year, which need some special keys to run faster.
  • KEYGROUPDISABLE(Groupname) – Use this function to disable a key group.
  • KEYGROUPENABLED(Groupname) – Use this function to check whether or not a specific key group is enabled.
  • GETLASTERRORTEXT – Use this function to return the text that was contained in the last error message displayed by the system. Coolest new command in version 5.0 for me! Now, you are able to find which error was called when calling codeunit in IF-THEN statement! Used for example when running Cost Adjustment batch to prevent stopping the batch on first error! Now the job continues after the error and you see the error in the report!
  • CLEARLASTERROR – Use this function to remove the last error message from memory.
  • [ID] := Rec.ADDLINK(URL[, Description]) – Use this function to add a link to a record. Connected to the new Link functionality in v5.0. You are able to add any URL to any record in NAV. User can see the URLs and can easily open the documents. I will describe this module in some upcomming part.
  • Rec.DELETELINK(ID) – Use this function to delete a link that has been added to a record in a table.
  • Rec.DELETELINKS – Use this function to delete all of the links that have been added to a record.
  • Rec.COPYLINKS(FromRecord) – Use this function to copy all the links from a particular record.
  • Ok := Rec.HASLINKS – Use this function to find out whether or not a record contains any links.

This is the list of all new commands I found in the NAV v5.0 for now. I hope, that you are excited to see some commands from this list. The text is copied from On-line C/AL help available with this beta version.


New features in C/SIDE


New Properties

  • Form.SourceTableTemporary(Yes/No) – No description – if set to Yes, Rec will be temporary table! You do not need to modify OnFindRecord and OnNextRecord anymore!
  • Form.LinksAllowed – settings connected to the new Link functionality, which can be disabled per form…


  • For all C/AL developers – now you can indent whole block of code just with selecting the lines and pressing Tab key (or Shift+Tab to unindent)!

This is what I found in this Beta version for now. May be there are some new things which are still hidden for me, but what I found I found as usefull. I hope that you as well.


Do not hesitate and share your thought about these new things! I am looking forward your comments!


I do not know, what will be in next Part of the preview yet, may be something about the Link functionality.

NAV 5.0 Preview – Part 0

Hello everybody!

 Because I received DVD with VPC image with Microsoft Dynamics NAV 5.0 Beta version as part of MVP program, I will be able to give you some preview of new things in this version. I will try to show you screenshots and descriptions of cool things which are prepared for you. Please, do not hesitate and write your reaction into post comments! I want to know if you are looking for the version or not, if you will like the features or not and everything what comes to your mind during reading the articles! (in generally, I do not know why there are no reactions on all NAV blogs. It is common to comment articles on blogs, but not on NAV blogs…)

I hope, that first part, about news in C/AL code, will be ready for you today…