ArcherPoint Dynamics NAV Developer Digest - vol 154
The NAV community, including the ArcherPoint technical staff, is made up of developers, project managers, and consultants who are constantly communicating, with the common goal of sharing helpful information with one another to help customers be more successful.
As they run into issues and questions, find the answers, and make new discoveries, they post them on blogs, forums, social media...so everyone can benefit. We in Marketing watch these interactions and never cease to be amazed by the creativity, dedication, and brainpower we’re so fortunate to have in this community—so we thought, wouldn’t it be great to share this great information with everyone who might not have the time to check out the multitude of resources out there? So, the ArcherPoint Microsoft Dynamics NAV Developer Digest was born. Each week, we present a collection of thoughts and findings from NAV experts and devotees around the world. We hope these insights will benefit you, too.
Load Testing Performance in Dynamics NAV
We’ve had several requests lately (internal and external) from people looking for tools to help with load testing in Dynamics NAV. There is a framework for load testing. You can view the video on How Do I: Run NAV Load Tests Using Visual Studio in Microsoft Dynamics NAV and find sample tests in GitHub.
CALCSUMS Still Works in Dynamics NAV 2017
Kyle Hardin shares:
CALCSUMS still works in 2017 (and probably other recent versions), and it does not require the target field to be defined in a sumindexfield key as in versions past. I was able to make this work in a Customer Statistics FactBox Revenue field without looping through G/L Entries:
LOCAL GetRevenue() : Decimal
GLAccount.SETRANGE("Account Category", GLAccount."Account Category"::Income);
GLAccount.SETRANGE("Account Type", GLAccount."Account Type"::Posting);
AccountFilter := '';
X := 1;
IF X = 1 THEN
AccountFilter := GLAccount."No."
AccountFilter := AccountFilter + '|' + GLAccount."No.";
X += 1;
UNTIL GLAccount.NEXT = 0;
GLEntry.SETFILTER("G/L Account No.", AccountFilter);
GLEntry.SETRANGE("Posting Date", CALCDATE('CY-1Y+1D', WORKDATE), WORKDATE);
GLEntry.SETRANGE("Source Type", GLEntry."Source Type"::Customer);
GLEntry.SETRANGE("Source No.", Rec."No.");
Bill Warnke notes that it works as far back as 2013, sharing his blog from 2015, CALSUMS, and SIFT, and Addition! Oh My!
Issues Converting Delta Files in AL Environment
Saurav shares a great post by Waldo regarding the issue with converting Delta files from C/AL with VSCode. Get the gotchas like creating text files in the NewSyntax first as well as links to other posts to get started using VSCode.
Dynamics NAV – Restoring a Production Database
Matthew Ha: We have a client who took a backup of a production database and restored it, but it still points to the Production RTC Service. How do I disable these links as these RTC Services still point to the Production database?
Bill W: The middle tier makes these entries in the "Server Instance" table when it starts up and should be removing them when it's shutdown. In this case there was no shutdown. I think you'd be safe removing them manually.
Kyle H: Agreed. Those records are created when each NST service is started, so it's OK to start with a completely empty table.
Saurav D: Agreed. Clear active session table records from SQL. This is one of the first things to do while upgrading from NAV 2013 to future versions.
Stay abreast of what is new in the Microsoft Dynamics NAV community and at ArcherPoint by subscribing to our monthly newsletter, Better Business, by completing the form in our Resource Center.
And, if you are interested in NAV development, be sure to see our collection of NAV Development Blogs.