ArcherPoint Dynamics NAV / Business Central Developer Digest - vol 251
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.
Working on a Hybrid AL/CAL Project? Read this Developer Tip
Kyle shares this Developer Tip of the Day: “If you have to do a hybrid AL/CAL project (which you should never do, except when you run up against the limitations imposed by not being able to modify base objects that Matt Traxinger doesn't think exist), check your service tier settings.
You must have the setting called ‘Enable symbol loading at service startup’ (Development tab in D365BC) enabled. What that flag should really be called is, ‘I will ignore any and all CAL changes until you turn me on.’
Naming aside, make sure that is turned on and restart your service tier before attempting to deploy an AL app that references your changed CAL.
If you are using a Freddy Docker container, you are fine—that is enabled by the scripts by default.”
Matt T responds: “Throwing the shade on the standards, I see how it is. :) Of course, there are limitations. They are few and far between from what I have experienced, but to say they don't exist would be crazy. There have been at least a couple of instances of modifying base objects on at least one project that I know of.
For one of them, it was decided to modify base and put in a request with Microsoft to add an Event into the base code. That should be the typical path forward.
On another, it was decided to change the primary key of a base table because it would have cost too much for the customer to build it from scratch. But that wasn't a development limitation.
In both of these instances, we had options. Hopefully, those options were presented to the customer, and they made an informed decision. It's not up to us to tell a customer what to prioritize between features and cost, but we do have to make sure they make an informed decision.”
Kyle appends: “Bill and I talked about requesting events. The two use cases we have on my project are:
- Allow production orders to consume to negative quantities
- Buy resources on purchase orders
In both cases, the base code halts the operation with an ERROR. Adding an event wouldn't work unless Microsoft did a whole lot of restructuring of the base code to allow some sort of ‘handled’ flag that only skips those error statements but executes the rest of the code.”
Bill adds: “Hybrid is not bad at all. Just don't try to do an application/executable mismatch. That should be forbidden.”
Kyle shares this funny with the developers:
Figure 1 - Problems with Recursion comic from https://www.smbc-comics.com/comics/1562409923-20190706.png
Matt T responds: “Bonus points if you're super geeky and know a place in NAV where recursion is used. :)”
Michael H answers: “Adjust Cost. I like to use recursion for stuff on the Job Queue, so success is always returned and errors are logged elsewhere. :)”
Jon Long adds: “Reports.”
If you are interested in Dynamics NAV and Business Central development, be sure to see our collection of NAV/BC Development Blogs.
Read the "How To" blogs from ArcherPoint for practical advice on using Microsoft Dynamics NAV and Dynamics 365 Business Central.