BigText.ADDTEXT loop is slow in RTC

I had a code where I was combining several XML documents into one and used a BigText variable for the job.  At design time everything looked fine but when I executed the code in the Role Tailored Client everything was slow.  I sent this issue to Microsoft and the product team has responded.

It is true that AddText used in a loop is slower in RTC than in CC. The reason is the underlying .Net string type. As mentioned in the immutability section in: http://msdn.microsoft.com/en-us/library/system.string.aspx#Immutability the creation of many immutable strings can be very time consuming. Since the backing field in NAV is a string we have the same problem – and it would be vastly inefficient in all other scenarios to create a StringBuilder for each BigText variable – and you only save instantiating strings if you do more than one concatenation.

This leaves us the following options:
–          If partner is adding texts – consider using .Net Interop and use the StringBuilder class – and document the changed behavior of BigText
–          Refactor code to avoid hundreds / thousands of small additions (e.g. by building the total big text in chunks of e.g. 1000 – but will have to look at perf of that)
–          Create a new feature for a StringBuilder class in A/L (would possibly have to work for the other text types as well?)

  • I doubt that this would be prioritized in Sicily

I know that this is an unwanted side effect of using .Net strings – but that is also what buys us Unicode etc., so I would prefer that we document this new behavior.

So I rewrote this bit and am now using OutStream instead.  Just wanted you to know.

[CurrLanguage :=] LANGUAGE([NewLanguage]) support in XMLPorts

It is commonly used option to change the reporting language according to a customer, vendor og an employee.  However, some reports are XML files.  I found that I also needed to change the data language in XML files.

The workaround is to change the GLOBALLANGUAGE before executing the xmlport.  To get similar language support in xmlports as in reports would be ideal.

Just created a suggestion on Microsoft Connect.  Go ahead and vote if you agree.

Microsoft Connect is working

On July 31, 2012 I posted a patch to codeunit 5895 to be able to execute inventory adjustment with NAS.  I also suggested that this solution should be implemented in NAV and now I am receiving a knowledge base article from Microsoft with ID: 2763255 that handles this issue.

Was Microsoft listening to my comments or did someone else suggest this to Microsoft.  At least I can see that the solution that they provide does not match exactly the solution that I suggested – but a solution anyway.

A message from Dan Brown, General Manager Dynamics NAV

This is a message to you all from Dan Brown General Manager, Dynamics NAV:

Hi, everyone.

Over the past several months the NAV team has worked hard getting ready to release Microsoft Dynamics NAV 2013. We’ve run hundreds of thousands of performance-, stress-, unit- and regression-tests daily. We’ve monitored the comments you’ve made on our first-ever public Beta of NAV and incorporated the feedback as much as possible. And, we’ve worked with partners bringing several customers live on NAV 2013. All of this has been to ensure that the product is of the highest possible quality before we ship. We’re looking forward to getting the RTM version in your hands as soon as possible!

Microsoft Dynamics NAV 2013 is probably the biggest launch of the product ever. It concludes the transition from the classic client/server 2-tier proprietary architecture developed in the 1990’s to a state-of-the-art, 4-tier Microsoft architecture capable of rendering multiple clients and facilitating multiple modes of integration. It also means that Microsoft Dynamics NAV now is a full-blown member of the Microsoft server family and adheres to all Microsoft standards in terms of security, reliability and scalability. Finally, it signals the beginning of a new era of “NAV in the cloud,” opening up an array of new opportunities using NAV and integrating it with Microsoft and non-Microsoft products.

With Microsoft Dynamics NAV 2013 coming out this fall, the NAV TechDays conference is a great opportunity for everybody in the NAV developer community to learn more about and get ready for the release. All the sessions at NAV TechDays are technical and long enough to allow the speakers to go into enough detail for the developers in the audience to understand what the features in the product are about and how to use them. Since NAV TechDays is a conference for developers by developers with deep technical content, we are sending some of our best developers who designed and wrote the code to attend and speak at the conference. If you have questions about your favorite feature, you will have an opportunity to give your feedback on Microsoft Dynamics NAV 2013 and provide input on what you would like to see in future releases.

I hope to see you all at NAV TechDays in Antwerp, Belgium on September 27th.

-Dan

____________________________________
Daniel C. Brown
General Manager, Dynamics NAV

DropDown in RTC

In the table designer the fields that appear in the drop down list are defined.  For example the Customer table.

I found a feedback in Microsoft Connect and added a few comments to that.  What I would like the drop down window to be able to do is;

  • remember the last position and default to that one
  • allow multi select that will result in a filter

I would love this to be applied to both pages and the report “Show results:” area.

 

Ommit Zero in Calculation Formula

There are a few calculation methods available in for a flowfield.  This is a great feature in NAV to aggregate amounts from ledger entries.  I would like Microsoft to add an option to the flowfield declaration.  I would like to be able to omit zeros when using methods; Average, Exist, Count, Max and Min.  In a normal SQL it is possible to use NULL to archive this result but not in NAV.

The solution that I am using now is to create a boolean field for each of the amount fields that indicate if the amount is zero.  Then I have to add that boolean field to the sum-index enabled key and filter on that field.

Microsoft, please add this option to your upcoming releases of Dynamics NAV.  You can vote for this here.

 

 

Database File Group selection for keys

I sure would like to be able to split large Dynamics NAV databases into multiple file groups that reside on separated disks.  I suggest that the available file groups can be selected for each key in the table designer.

Please vote here if you would also like this possibility.