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.
Matt T. shares, “I ran into an interesting issue between C/AL and AL over the weekend. NAV 2018 installed. Two service tiers, each pointing to separate databases.
I had been developing an AL extension in one. No issues there. And I had been developing a traditional C/AL modification in the other. The key is that both were using the same object range. Having never published or installed that AL extension into my second service tier, it still knew about it. I had to restart said service tier and that's when it hit the fan. Two mods with same object id, "co-existing" in the same database. That poor service tier didn't know what hit it.
At no time was there ever an error in the development process. I even executed my C/AL code without issue. But when I restarted the service tier...no bueno. Here's the issue I see: we don't know what AL objects are in the database. I couldn't connect to the database to uninstall the extension. That left me with one choice: delete my C/AL objects, which happened to have some tables with some data in them. Scary ramifications there, and potential to a lot of free work if we mess up.
Would love to hear anyone's thoughts on ways we might keep this from happening.”
Kyle responded, “I know a customer's NAV license specifies which range of custom C/AL objects they are allowed to access. Is there a similar restriction for AL extensions?”
Matt: “Yes, but when I saved C/AL Table 50000 it didn't say AL Table 50000 already existed.”
Kyle: “I wonder if it is possible to have 50000...50099 for C/AL objects, and 60000...60099 for AL extensions.”
Bill W. chimes in, “Wait until the May 2018 update. This bug has been reported on GitHub.”
Tim L asks, “Relating to Kyle's comment, would we ever want to mix C/AL and AL in a customer environment? It sounds like nothing but confusion.”
Matt: “No, we ideally would not. But the bigger issue I was pointing out is that this happened between two separate databases and service tiers. A database and service tier that should have had no idea about an AL extension did know about it, and that impacted the C/AL development.”
Kyle: “That sounds like a code bug. As in the separate NSTs are using some manner of shared directory in ProgramData that should not be shared.”
Tammy asks, “Does anyone know how to alphabetize the tabs in an Excel Workbook or if it is even possible? I have an ever-growing workbook I use to take notes in and the tabs have gotten out of control.”
Crystal T. responds, “Looks like there are a couple of postings on a work-around but 'no built in functionality' is repeated in all of these postings from How-To Geek.”
Constantine: “Thanks for posting that Crystal, I tried out that Macro myself and it works like a charm.”
Kyle offers sound advice in these tips for Dynamics NAV developers:
Developer Tip of the Day, Part 1: When making changes to a customer MenuSuite, always make sure to modify the Partner object, not the Company object. The Company object was intended for the customer to modify themselves (assuming they have some sort of developer license). We should use MenuSuite 1080.
Developer Tip of the Day, Part 2: Any time a MenuSuite is changed - any MenuSuite - recompile all of them.
If you are interested in NAV development, be sure to see our collection of NAV Development Blogs.
Read the "How To" blogs from ArcherPoint for practical advice on using Microsoft Dynamics NAV.